Spring Security - 如何知道Sid是主要还是权威

时间:2013-06-20 17:18:12

标签: spring-security

我想知道acl_entry表中的权限检索到的sid(“currentSid”)是否是主体或权限的权限。

for (int j = 0; j < acl.getEntries().size(); j++) {
    String currentPermissionPattern = acl.getEntries().get(j).getPermission().getPattern();
    String currentSid = acl.getEntries().get(j).getSid().toString();       
}

我目前正在将currentSid存储为字符串。假设我把它存储为Sid,我怎么知道这个Sid是属于用户还是角色。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

if (acl.getEntries().get(j).getSid() instanceof GrantedAuthoritySid) {
    GrantedAuthoritySid sid = (GrantedAuthoritySid) acl.getEntries().get(j).getSid();
    // it's role
} else {
    PrincipalSid sid = (PrincipalSid) acl.getEntries().get(j).getSid();
    // it's user
}