Spring Безопасность. Как узнать, является ли Sid основным или полномочным

91
9

Я хотел бы знать, является ли извлеченный sid ( "currentSid" ) из разрешения в таблице acl_entry значением принципала или полномочий.


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 пользователю или роли.

спросил(а) 2021-01-19T14:07:19+03:00 9 месяцев, 1 неделя назад
1
Решение
65

Вы можете сделать это:

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

ответил(а) 2021-01-19T14:07:19+03:00 9 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема