Невозможно создать полномочия с префиксом Spring и без него в Spring
Я использую Spring Boot и внедряю аутентификацию на основе LDAP. Я использую кастом UserDetailsContextMapper
который расширяется LdapUserDetailsMapper
и обычай PermissionEvaluator
,
В моем mapUserFromContext
метод UserDetailsContextMapper
Я предоставляю новые полномочия и хочу добавить некоторые полномочия ROLE и некоторые полномочия привилегий. Таким образом, я хочу, чтобы некоторые власти были ROLE_BLABLA
и немного BLABLA
, Я проверяю, чтобы правильно создавать объекты полномочий, но вниз по линии к обычаю PermissionEvaluator
все власти обретают форму ROLE_BLABLA
, Я отладил, чтобы проверить, и, кажется, SimpleAuthorityMapper.mapAuthority
срабатывает, который проверяет все полномочия и добавляет ROLE_
если его нет, это полностью побеждает то, что я пытаюсь сделать. Как мне обойти это?
Вот мой UserDetailsContextMapper
@Component
public class UserDetailsContextMapper extends LdapUserDetailsMapper {
@Override
public UserDetails mapUserFromContext(DirContextOperations ctx, String username, Collection<? extends GrantedAuthority> authorities) {
// Get authorityList from current context from DB
// Map the roles
for (MyRole role : authorityList) {
List<GrantedAuthority> newAuthorities = new ArrayList<>();
newAuthorities.add(createRoleAuthority(role.getRoleName()));
List<Privilege> privileges = new ArrayList<>(role.getPrivileges());
for (Privilege privilege : privileges) {
newAuthorities.add(createPrivilegeAuthority(privilege.getPrivilegeName()));
}
for (GrantedAuthority authority : newAuthorities) {
essence.addAuthority(authority);
}
}
// DO other stuff
return essence.createUserDetails();
}
protected GrantedAuthority createRoleAuthority(String role) {
return createAuthority(role);
}
protected GrantedAuthority createPrivilegeAuthority(String privilege) {
privilege = privilege.toUpperCase();
return new SimpleGrantedAuthority(privilege);
}
}