问题标签 [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.
angularjs - 为什么 PicketLink 会导致使用 Token 进行基本浏览器身份验证?
我有一个使用 PicketLin (stateless)k + WildFly + Angular 的简单登录系统。
问题是:当我输入错误的密码时,服务器会向我发送标头:
这会导致浏览器打开基本身份验证窗口。我需要使用表单,而不是默认的浏览认证窗口;我试图以角度创建一个拦截器来尝试停止,但浏览器会先拦截并解释标题。
这是 PicketLink 的配置:
这是Realm的代码和证书(用于生成令牌)代码:(无关方法省略)
登录代码:
应用js代码:
jakarta-ee - 使用 JPA 时,用户角色存储在 picketlink 表中的什么位置?
我将 Picketlink ( 2.6.0.Final ) 与 JPA ( 使用 Postgresql ) 一起用于持久性。我还实现了一个具有以下基础的初始化程序:
将我的部署war
到 Wildfly 后,我确实看到我的用户是在配置的 postgresql 数据库中创建的 - 在accounttypeentity
表中。我可以使用普通的 JPA 方法(通过IdentityQuery
查找)查询和查找这些用户帐户。
问题:
我正在使用 PL 来保护我的 Restful API(使用 JAX-RS 实现),他们这样做的方式是什么?使用自定义注释装饰每个端点,该注释旨在检查端点的调用者是否具有登录会话,以及附属用户帐户是否具有必要的角色(每个端点将所需的角色作为注释的一部分传递)。
现在,问题是,即使我有一个用户登录 - identity.isLoggedIn() == true
,即使这个用户是我在初始化时创建的具有所需角色的用户之一,检查该用户是否具有任何所需角色的调用也会失败!基本代码是:
整个自定义注解定义是:
所以,我会作弊并提出 3 个问题(一个):
- 我如何真正确认 picketlink 保留了我分配给我创建的用户的角色?
- 这些分配的角色存储在数据库(或其他地方)的什么位置以便我确认?
- 如果我以错误的方式检查用户角色(请参阅我的代码),我应该如何纠正这个问题?
java - Picketlink 授权注释不起作用
我面临的问题与授权有关,
- 我以这种方式将应用程序的角色授予用户: BasicModel.grantRole(relationshipManager, identity.getAccount(), role);
但是当我使用 hasRole(this.relationshipManager, this.identity.getAccount(), role); 似乎总是返回 true,即使我授予另一个角色,例如。我授予 ROLEA 角色,当我要求 ROLEB 时,它返回 true。我在 PL 快速入门中找到的 grantRole 方法不被编译器识别,但它可以识别 hasRole。
- 授权注释似乎不起作用,允许未登录的用户调用该方法,当然还允许具有任何角色的用户调用该方法
否则,PL 似乎运行良好,具有身份验证和身份管理器。我的环境是 WildFly 8.2 和 PK 2.7.Final, JPA。这些是我从基本模型映射的类:
security - 开始在 Wildfly 中保护 Jax-Rs webapp
我用纯 jax-rs 前端界面创建了我的第一个 Java EE 7 应用程序。一切都经过测试并且工作正常。现在我想应用一个安全层(基于角色,应用于资源或方法)。我对最终想要的东西有清晰的想象(不知道这是否有意义),但我不确定如何到达那里(使用什么成分,按什么顺序)。所以这就是我想要的:
- 我想使用 wildfly 作为身份提供者(wildfly 应该存储用户凭据 - 在数据库中,加密)
- 我的应用程序完全基于休息,所以我需要一些方法将身份验证信息放入请求(令牌?!)
- 基本身份验证就可以(每个用户都必须经过身份验证),不需要表单,不需要自我注册
- 限制对某些资源/方法的访问,我想使用 Java EE 7 标准(注释、拦截器......)
这有意义吗?如果是,是否有以相同方式或至少非常相似的示例或文档?我找到了jboss-picketlink-quickstarts但这包含许多示例,我不确定哪个最适合。我需要纠察链接吗?
由于我的持久层中有一个带有“UserRole”(枚举)的“用户”,我认为我需要从 IDP(Wildfly)和我自己提供的角色中进行某种映射 - 对吧?
security - Wildfly 中带有 HTTP 引用者信息的审核日志,带有 picketlink SAML 身份验证
我正在使用 WildFly 8.2.0 和 Picketlink 2.7
我部署的应用程序使用 SAML HTTP POST 身份验证运行良好。我现在需要编写一个审核日志,其中包含登录失败、登录成功、注销失败、注销成功信息。对于每条记录,我必须识别原始地址(HTTP Referer 标头)。
我试过PicketLinkAuditProvider
了,它记录但不包含所有细节。也尝试过,org.jboss.security.audit.providers.LogAuditProvider
但它提供Source=org.wildfly.extension.undertow.security.AuditNotificationReceiver;message=UT000030
我去看了AuditNotificationReceiver
代码,发现它正在吞噬我需要的信息。
需要帮助来了解我是否朝着正确的方向前进。
如果我的方向正确,是否可以向 Wildfly 安全子系统提供自定义 AuditNotificationReceiver。
wildfly-8 - J2EE7 中的 Web 应用程序安全性
我正在将一个 seam 2.2 应用程序迁移到 Java EE 7 平台。
我正在寻找@Restrict注释的替代方法。
我使用 Wildfly 8.2 作为应用程序平台,我发现了一些从 seam3 到 PicketLink 项目的引用以及@LoggedIn和@RolesAllowed等注释。
但是,我在 Picketlink 的打包版本中找不到这些注释。谁能指出我如何让这些在 CDI 环境中工作的方向?例如 Maven 依赖项?
java - 用于多个应用程序的单个 PicketLink 实例
我的意图是使用 PicketLink 实现类似于 Atlassian 在Crowd中所做的事情。
更详细地说,我希望单个 PicketLink 实例为多个 Java EE 应用程序提供身份验证、授权、SSO 和 IdM 服务。这里的重点是为 JPA/LDAP 配置、自定义 IdM 模型和自定义身份验证器提供一个位置(以上所有内容将在客户端应用程序之间共享)。
据我从文档中了解到,PicketLink 并没有提供开箱即用的功能。我会想象客户端应用程序使用 PicketLink API,但实际调用通过 RMI/Hessian/REST 等代理来掌握 PicketLink 实例。我将不胜感激任何专家对这种架构是否可行的意见,以及任何其他批评和建议。
jpa - 如何将现有 JPA 实体映射到 PicketLink
我正在尝试将 Seam 2 应用程序迁移到 CDI 并使用 PicketLink 来确保安全。经过所有的阅读和研究,似乎所有示例都在 PicketLink 模型和后端实体之间进行了一对一的映射。例如,Account 到 AccountEntity,Partition 到 PartitionEntity。由于我已经有了代表身份模型的实体,所以我一直试图将它们映射到 PicketLink。这是我所拥有的:
在PicketLink 中表示单个身份模型的两个实体(加上一个超类),例如立体类型User。
基于这个为什么 IdentityType id is String not Long,我尝试在以下位置添加一个新实体:
我尝试了几种不同的注释和模型类方法。但是当使用 IdentityManager.add(myUserModel) 时,我无法让它填充所有实体。这甚至可能吗?
java - JBAS011048:无法使用 WildFly 8.1.0 在 picketlink-authorization-idm-jpa-with-subsystem 中构造组件实例
我正在尝试部署示例picketlink-authorization-idm-jpa-with-subsystem,标记 v2.7.0.Final (https://github.com/jboss-developer/jboss-picketlink-quickstarts/tree/v2.7.0 .Final/picketlink-authorization-idm-jpa-with-subsystem)在 WildFly 8.1.0 中,但我收到以下错误。
如何解决这个问题?
谢谢
java - 部署到 WildFly 时的 PicketLink ClassNotFoundException org.picketlink.Identity
我想在 WildFly 服务器上的 Web 应用程序中使用 PicketLink API。我尝试使用 PicketLink 快速入门“picketlink-authorization-idm-jpa”作为基本实现,并根据我的需要对其进行增强。但是总是在将(未修改的)应用程序部署到我的服务器时,我得到一个ClassNotFoundException org.picketlink.Identity
并且我不知道如何解决它。有人遇到同样的问题并找到了解决方案吗?我正在使用 Eclipse Mars 和 JBoss WildFly 服务器 8.2.0 和 9.0.1。