问题标签 [picketlink]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
102 浏览

java - Picketlink:查找具有给定角色的用户

我配置了一个 JPA 存储,当我调用相关的 picketlink (2.7.1) API 时,看到用户和角色被正确添加到数据库中

我的问题是:如何获得具有给定角色的所有用户的列表?

我尝试使用以下方法执行此操作RelationshipQuery

但是生成的授权列表包含一个分配授权,它指的是数据库中具有该角色的最后一个用户。

我检查了文档和测试中的示例查询,但没有发现任何我想要的。我知道该项目不再活跃,但我希望找到解决方案。

0 投票
1 回答
75 浏览

jboss - Picketlink 从

这是 Jboss 6.4 附带的 Picketlink Federation 2.5.4 SP4 类 org.picketlink.identity.federation.web.handlers.saml2.SAML2AuthenticationHandler 的摘录(2.5.4 SP4 的 picketlink.org github 上没有标签?)。我的问题是第一行 request.getRequestDocument() 返回 null。对象本身,请求(SAML2HandlerRequest)看起来很好(不为空):

仅供参考,我需要此文档的原因是,正如您在代码中看到的那样,如果 responseDocument 为 null,则 asserionElement 为 null。如果 assertionElement 为空,那么我的 SAML 令牌将不在给定键下的 HTTPSession 中,这就是我所需要的。

身份提供者是 PingIdentity。在我必须学习整个 PicketLink 代码库之前,这里可能会发生什么提示或技巧?

谢谢!

仅供参考,我的设置是 jboss 6.4,带有它附带的纠察链接(2.5.4 SP4),带有用于 SAML 令牌(IdP)的 PingIdentity。仅供参考,一切都在从 WebApp 1 到 WebApp 2 的 SSO 场景中工作,唯一的事情是我需要从 WebApp 2 上的 SSO 会话中获取 SAML 令牌......

0 投票
0 回答
88 浏览

jakarta-ee - 使用 Picketlink 为 Wildfly 应用程序设置 Arquillian 测试时遇到问题

我正在尝试为要使用 Picketlink 部署在 Wildfly 上的 Web 应用程序编写 Arquillian 测试。我的设置在我添加 Picketlink 之前工作,看起来我可以打包和部署我的应用程序而无需任何测试(它不起作用,这就是我想要测试以便开发的原因)。这是我的部署:

由于缺少大量 CDI 依赖项,运行测试会导致部署失败;此处的相关日志输出:https ://pastebin.com/sTD1x1Ag

beans.xml添加org.apache.deltaspike.security.impl.extension.SecurityInterceptorjboss-web.xml将我的应用程序绑定到上下文根,web.xml添加 resteasy,这是arquillian.xml

0 投票
1 回答
538 浏览

jsf-2 - Shiro 和客户证书

对于我的 JSF/TomEE 应用程序,我有一个 NoSQL 数据库,其中包含用户和角色,这些用户和角色指定用户如何以只读或写入的方式访问资源(基本上是 url 参数中的 ID)。

我想实现安全性,这篇文章给了我一些想法,但我很想尝试第三方库——可能是 Shiro 或 PicketLink。规则是用户将使用客户端证书对自己进行身份验证,如果未提供,他们将作为默认访客用户进行身份验证。

令人惊讶的是,我在寻找有关如何在 Shiro 中执行此操作的一些信息时遇到了一些麻烦,它看起来并不直截了当。Shiro 中没有“开箱即用”的东西来实现客户端证书身份验证,这让我有点惊讶。

所以我想我必须创建一个领域来“连接” Shiro 和我的数据库。然后我读到我可能需要扩展org.apache.shiro.authc.UsernamePasswordToken以阅读证书并将其传递给 Shiro。然后我想我必须限制对 JSF xhtml 页面中内容的访问(rendered例如使用属性),我想即使在Named托管 bean 的所有方法中我也需要检查权限。

另外,我不清楚在未提供证书时如何分配来宾用户,因为显然是验证客户端的是 TomEE,所以如果没有提供证书,我的代码将不会被执行以分配来宾用户。我可以在 TomEE 中打开两个不同的端口,但是访问将不会统一,因为我想将访客用户与系统中的任何其他用户一视同仁。如何才能做到这一点?

这是否在 PicketLink 中以更简单的方式实现?(这也为 JSF 做好了更好的准备)

0 投票
1 回答
371 浏览

java - 用于 Struts2 WebApp 的 Picketlink Wildfly 10 始终重定向到 home.action

我正在 Jboss Wildfly 10 上使用 struts2 开发一个简单的 Web 应用程序。为了安全起见,需要将 Picketlink 与 SAML2 一起使用,以使用外部身份服务器(由 WSO2IS 公开)。
我使用 WSO2IS 创建了一个自定义服务提供程序,在 Web 应用程序中定义了安全性,并在 JBoss 中配置了 picketlink 以使用在 WSO2IS 中配置的服务提供程序。
安全过滤器工作,当我尝试打开 localhost:8087/MyApp SSO 工作并在 WSO2IS 登录页面上重定向,但登录后总是有 samlsso 提供者的直通,https:// localhost:9446/samlsso,显示重定向到目标操作的页面(还有一个“POST”按钮)。

问题是按下按钮或使用自动重定向称为返回 home.action 的操作,我无法在应用程序的页面中导航。我调用的任何链接,通过 Web 按钮,调用正确的操作,然后使用令牌(例如 https://localhost:9446/samlsso?SAMLRequest= 令牌)在 samlsso 上重定向(我想是通过 picketlink),然后返回回家。行动。

所有动作都有返回类型“tyles”,以及 ajax 调用的 2 个 json 结果。

这是我配置的详细信息:

Jboss-web.xml

Web.xml 配置如下:

角色Application/MyAppRole被定义到 wso2 身份服务器中,用于配置一个名为 MyAppRole 的新服务提供者。我在上面添加了一些用户。

在 Jboss 中,在 configuration->subsystem->security 我创建了一个 Security Domain MyApp_SD,身份验证代码为“
org.picketlink.identity.federation.bindings.jboss.auth.SAML2LoginModule”

即使在 Jboss 中,在 configuration->picketlink 中,我在安全域“ MyApp_SD ”(受信任域 localhost:8087)上创建了一个新的“MyApp_Federation”,并在联邦中创建了一个名为MyApp.war的新服务提供程序,甚至超过MyApp_SD作为安全域,并且 SAMLHandler 配置如下:

  • SAML2LogOutHandler:类名 org.picketlink.identity.federation.web.handlers.saml2.SAML2LogOutHandler
  • RolesGenerationHandler:类名 org.picketlink.identity.federation.web.handlers.saml2.RolesGenerationHandler
  • SAML2AuthenticationHandler:类名
    org.picketlink.identity.federation.web.handlers.saml2.SAML2AuthenticationHandler,具有以下处理程序参数:
    1. ASSERTION_SESSION_ATTRIBUTE_NAME:org.picketlink.sp.assertion
    2. DISABLE_ROLE_PICKING:假
    3. CLOCK_SKEW_MILIS:120000
    4. ROLE_KEY: http://wso2.org/claims/role
  • SAML2AttributeHandler:类名 org.picketlink.identity.federation.web.handlers.saml2.SAML2AttributeHandler,具有以下处理程序参数:
    1. ATTRIBUTE_CHOOSE_FRIENDLY_NAME:假

那么,我的配置有问题吗?是 web.xml 约束、struts2 动作配置还是 picketlink 配置的问题?

0 投票
1 回答
53 浏览

jboss - 对 JBoss 的 PicketLink 支持

下载JBoss EAPWildFly
PicketLink 可以在两台服务器上使用。使用 PicketLink 安装程序为它们配置最新版本的 PicketLink 模块和库。

这是否隐含的意思

它对我有用Red Hat JBoss Enterprise Application Platform - Version 6.4.5.GA吗?

我找不到有关版本支持的任何进一步信息,也许有人有经验,可以给我一个提示。

0 投票
0 回答
113 浏览

java - Java 安全性 Apache Shiro 与 Picketlink

我有一个运行 Apache Shiro 的 Java EE 应用程序来保护网站并对其进行身份验证。

但是我想用 Picketlink 实现单点登录。

是否可以“在顶部”实现它,还是我必须禁用 Shiro 并使用 Picketlink 进行整个身份验证?

在网上我找不到任何参考。

0 投票
0 回答
84 浏览

jpa - 具有自定义模型和长 ID 的 Picketlink

我有一个现有的模型并希望将它与 Picketlink 一起使用。但我使用 Long 作为@Id字段。但Picketlink 期望这是一个字符串字段。我发现了一些使用另一个实体的提示,该实体映射到我的模型的相应实体。但实际上我现在不知道该怎么做。

我有一个基类,所有实体都派生自:

以及派生领域实体:

Picketlink 的映射类如下所示:

PartitionManager定义如下:

当我尝试创建一个新的领域时,Hibernate 在尝试加载领域时抛出一个错误,因为它@Id被定义为 Long,但@IdentifierPicketlink 模型的 是一个字符串。

java.lang.IllegalArgumentException:为类 de.logsolut.common.picketlink.model.RealmEntity 提供了错误类型的 id。预期:类 java.lang.Long,得到类 java.lang.String

如何将 JPA 模型正确映射到 Picketlink?

0 投票
1 回答
1160 浏览

java - 通过 Java struts Web 应用程序在 Azure AD 中进行 SAML 身份验证

在一个基于 java struts 的 Web 项目中,我使用 SAML 身份验证、使用 picketlink 库实现了 SSO(单点登录),部署在 Jboss AS 7.1 上。它的工作没有任何问题。

我需要在另一个基于 Struts 的 Web 项目中实现 SSO,该项目在 Tomcat 7 上运行。本例中的 IDP 是 Azure AD。我已按照文章SAML with Tomcat and PicketLink中给出的步骤进行操作。我还在 Azure AD 中配置了应用程序。在 picketlink conif 文件中提到了 IDP 和 SP URL,如下所示:

我已经针对上述文件中配置的应用程序提到了从 Azure AD 获得的 SAML-P 端点。

${idp.url:: https://login.microsoftonline.com/29b0-4f33-a90e/saml2 }

进行所有这些更改后,它无法正常工作。看起来我需要从 federation-metadata 文件中获取证书并按照一些步骤启用 SSL 并使其准备好让 SAML 理解。我不能这样做。我不知道我的路径是否正确。您能否给我一个示例程序或步骤来完成此任务。

0 投票
1 回答
346 浏览

jakarta-ee - 带有 WildFly 10 的 Picketlink

我正在尝试在我的 Java EE 7 应用程序中使用 PicketLink。到目前为止,项目编译没有错误。但是当我尝试在 WildFly 10 上部署应用程序时,它会停止并出现以下异常:

引起:java.lang.NoClassDefFoundError: org/picketlink/Identity

首先,我尝试将 Picketlink (picketlink-impl:2.5.5.SP2) 作为依赖项添加到我的耳朵(在 lib 目录中)。但这给出了更多的例外,即对于所有内部纠察链接类,几个例外之一:

java.lang.NoClassDefFoundError:无法链接 org/picketlink/internal/AbstractIdentity(来自服务模块加载器的模块“...”):org/picketlink/Identity

我认为Picketlink 已经作为一个模块部署在WildFly 10 中。我是否缺少任何配置来激活 Picketlink?