我所面临的问题与授权有关,
但是当我使用hasRole(this.relationshipManager,this.identity.getAccount(),role )时,似乎总是返回true,即使我授予了另一个角色,例如。我授予ROLEA角色,当我请求ROLEB时,它返回true。我在PL快速启动中找到的grantRole方法不是编译器识别的,而是它所识别的hasRole。
@LoggedIn
@RolesAllowed({"borrower"})
否则,看起来PL运行得很好,有了增强功能,并且使用了identityManager。我的环境是WildFly 8.2和PK 2.7 WildFly,JPA。下面是我从基本模型映射的类:
<class>org.picketlink.idm.jpa.model.sample.simple.AttributedTypeEntity</class>
<class>org.picketlink.idm.jpa.model.sample.simple.RoleTypeEntity</class>
<class>org.picketlink.idm.jpa.model.sample.simple.IdentityTypeEntity</class>
<class>org.picketlink.idm.jpa.model.sample.simple.RelationshipTypeEntity</class<
<class>org.picketlink.idm.jpa.model.sample.simple.RelationshipIdentityTypeEntity</class>
<class>org.picketlink.idm.jpa.model.sample.simple.PartitionTypeEntity</class>
<class>org.picketlink.idm.jpa.model.sample.simple.AttributeTypeEntity</class>
发布于 2015-04-23 21:17:45
这可能不是最后的答案,只是不适合于评论。
一种激进的方法是手动调试整个程序。不过,一个稍微不那么令人印象深刻的方法是查看数据库内容。您没有提到您的db类型,但是有很多工具可以检查db内容。使用其中之一:

那么,关键问题是:您是否将不想要的角色分配给您的用户?如果是这样的话,您的函数将完成它应该做的事情,您需要更仔细地查看您的代码,以确定您是否意外地在某个地方授予了该功能。
如果您的用户不是角色的受让人,而hasRole返回的是true .那么,您可能会遇到Picketlink本身的问题,并且可能需要对函数进行调试。
发布于 2015-05-12 15:04:06
我检查了数据库寄存器,发现我将所有角色分配给用户。我还使用了HttpSecutiryConfiguration来解决授权问题。
https://stackoverflow.com/questions/29703804
复制相似问题