Что дает мне аннотацию @EnableGlobalMethodSecurity и класс GlobalMethodSecurityConfiguration - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь понять разрешения ресурса уровня метода. Я знаю, что аннотация @EnableGlobalMethodSecurity(prePostEnabled = true) позволяет определять аннотаты в `` @PreAuthorize или @PreAuthorize с Spring Expression Language для большего контроля над доступом к ресурсу, но, в принципе, я могу достичь этого без @EnableGlobalMethodSecurity, например,


    @GetMapping("/hasscope")
    @PreAuthorize("#oauth2.isOAuth() and #oauth2.hasScope('GITHUB') or 
    #oauth2.hasScope('ROLE')")
    public String helloScope(final Principal principal) {
        return "This method use preauthorize annotation !";
    }

У меня есть доступ к #oauth2 объекту без этой аннотации, и я могу создавать собственные правила выражений, как указано выше.

Я что-то пропустил или не правильно понял. Какая разница между этим или просто игнорированием? В какой форме это улучшает безопасность методов?

...