3

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 がユーザーまたはロールに属しているかどうかを知るにはどうすればよいでしょうか。

4

1 に答える 1

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
}
于 2014-03-26T11:48:18.257 に答える