首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Picketlink授权注释不起作用

Picketlink授权注释不起作用
EN

Stack Overflow用户
提问于 2015-04-17 15:45:49
回答 2查看 376关注 0票数 1

我所面临的问题与授权有关,

  1. 我以这种方式将应用程序的角色授予用户: BasicModel.grantRole(relationshipManager,identity.getAccount(),role);

但是当我使用hasRole(this.relationshipManager,this.identity.getAccount(),role )时,似乎总是返回true,即使我授予了另一个角色,例如。我授予ROLEA角色,当我请求ROLEB时,它返回true。我在PL快速启动中找到的grantRole方法不是编译器识别的,而是它所识别的hasRole。

  1. 授权注释似乎不起作用,允许没有loggedin的用户调用该方法,当然还允许具有任何角色的用户调用该方法。

代码语言:javascript
复制
@LoggedIn
@RolesAllowed({"borrower"})

否则,看起来PL运行得很好,有了增强功能,并且使用了identityManager。我的环境是WildFly 8.2和PK 2.7 WildFly,JPA。下面是我从基本模型映射的类:

代码语言:javascript
复制
<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>		

EN

回答 2

Stack Overflow用户

发布于 2015-04-23 21:17:45

这可能不是最后的答案,只是不适合于评论。

一种激进的方法是手动调试整个程序。不过,一个稍微不那么令人印象深刻的方法是查看数据库内容。您没有提到您的db类型,但是有很多工具可以检查db内容。使用其中之一:

  1. 转到user_type_entity表(可能没有未显示的分数)并注意用户id。
  2. 转到role_type_entity表,检查您的角色名称是否在那里,每一行只有一行。注意角色的ids。
  3. 转到relationship_identity_type_entity表,查看具有相同owner_id的角色/受让人对(owner_id可能指向relationship_type_entity表中的某些Grant类型,但我们现在不需要导出该类型)。

那么,关键问题是:您是否将不想要的角色分配给您的用户?如果是这样的话,您的函数将完成它应该做的事情,您需要更仔细地查看您的代码,以确定您是否意外地在某个地方授予了该功能。

如果您的用户不是角色的受让人,而hasRole返回的是true .那么,您可能会遇到Picketlink本身的问题,并且可能需要对函数进行调试。

票数 0
EN

Stack Overflow用户

发布于 2015-05-12 15:04:06

我检查了数据库寄存器,发现我将所有角色分配给用户。我还使用了HttpSecutiryConfiguration来解决授权问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29703804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档