Spring Security, сложный объект как авторитет - PullRequest
0 голосов
/ 30 мая 2018

Кто-нибудь знает, как использовать сложный объект в качестве источника безопасности Spring, а не реализовывать пользовательский accessDecisionManager.Я не хочу реализовывать пользовательский accessDecisionManager, потому что мне нужно также переопределить роль избирателя, которая работает с SPeL, и думаю, что это не очень хорошая идея.

1 Ответ

0 голосов
/ 31 мая 2018

Да, наверное, проще всего подключить бин:

@Component
public class MyAuthorizer {
    boolean authorize(Authentication authentication) {
        // do your custom checking here
    }
}

А затем

@Controller
public class MyController {
    @PreAuthorize("@myAuthorizer.authorize(authentication)")
    // ... request mapping, etc
}

Или, если возможно, уменьшить сложный объект до строки,hasAuthority будет работать так же, как и с простыми полномочиями:

public class MyCustomAuthority implements GrantedAuthority {
    Object all;
    Object my;
    Object complexity;

    public String getAuthority() {
        return String.valueOf(this.complexity);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...