问题标签 [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.
java - Picketlink:查找具有给定角色的用户
我配置了一个 JPA 存储,当我调用相关的 picketlink (2.7.1) API 时,看到用户和角色被正确添加到数据库中
我的问题是:如何获得具有给定角色的所有用户的列表?
我尝试使用以下方法执行此操作RelationshipQuery
但是生成的授权列表包含一个分配授权,它指的是数据库中具有该角色的最后一个用户。
我检查了文档和测试中的示例查询,但没有发现任何我想要的。我知道该项目不再活跃,但我希望找到解决方案。
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 令牌......
jakarta-ee - 使用 Picketlink 为 Wildfly 应用程序设置 Arquillian 测试时遇到问题
我正在尝试为要使用 Picketlink 部署在 Wildfly 上的 Web 应用程序编写 Arquillian 测试。我的设置在我添加 Picketlink 之前工作,看起来我可以打包和部署我的应用程序而无需任何测试(它不起作用,这就是我想要测试以便开发的原因)。这是我的部署:
由于缺少大量 CDI 依赖项,运行测试会导致部署失败;此处的相关日志输出:https ://pastebin.com/sTD1x1Ag
beans.xml
添加org.apache.deltaspike.security.impl.extension.SecurityInterceptor
,jboss-web.xml
将我的应用程序绑定到上下文根,web.xml
添加 resteasy,这是arquillian.xml
:
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 做好了更好的准备)
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,具有以下处理程序参数:- ASSERTION_SESSION_ATTRIBUTE_NAME:org.picketlink.sp.assertion
- DISABLE_ROLE_PICKING:假
- CLOCK_SKEW_MILIS:120000
- ROLE_KEY: http://wso2.org/claims/role
- SAML2AttributeHandler:类名 org.picketlink.identity.federation.web.handlers.saml2.SAML2AttributeHandler,具有以下处理程序参数:
- ATTRIBUTE_CHOOSE_FRIENDLY_NAME:假
那么,我的配置有问题吗?是 web.xml 约束、struts2 动作配置还是 picketlink 配置的问题?
jboss - 对 JBoss 的 PicketLink 支持
下载JBoss EAP或WildFly
PicketLink 可以在两台服务器上使用。使用 PicketLink 安装程序为它们配置最新版本的 PicketLink 模块和库。
这是否隐含的意思
它对我有用Red Hat JBoss Enterprise Application Platform - Version 6.4.5.GA
吗?
我找不到有关版本支持的任何进一步信息,也许有人有经验,可以给我一个提示。
java - Java 安全性 Apache Shiro 与 Picketlink
我有一个运行 Apache Shiro 的 Java EE 应用程序来保护网站并对其进行身份验证。
但是我想用 Picketlink 实现单点登录。
是否可以“在顶部”实现它,还是我必须禁用 Shiro 并使用 Picketlink 进行整个身份验证?
在网上我找不到任何参考。
jpa - 具有自定义模型和长 ID 的 Picketlink
我有一个现有的模型并希望将它与 Picketlink 一起使用。但我使用 Long 作为@Id
字段。但Picketlink 期望这是一个字符串字段。我发现了一些使用另一个实体的提示,该实体映射到我的模型的相应实体。但实际上我现在不知道该怎么做。
我有一个基类,所有实体都派生自:
以及派生领域实体:
Picketlink 的映射类如下所示:
PartitionManager
定义如下:
当我尝试创建一个新的领域时,Hibernate 在尝试加载领域时抛出一个错误,因为它@Id
被定义为 Long,但@Identifier
Picketlink 模型的 是一个字符串。
java.lang.IllegalArgumentException:为类 de.logsolut.common.picketlink.model.RealmEntity 提供了错误类型的 id。预期:类 java.lang.Long,得到类 java.lang.String
如何将 JPA 模型正确映射到 Picketlink?
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 理解。我不能这样做。我不知道我的路径是否正确。您能否给我一个示例程序或步骤来完成此任务。
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?