什么给我注释@EnableGlobalMethodSecurity和类GlobalMethodSecurityConfiguration

时间:2019-06-05 22:37:21

标签: spring spring-security oauth-2.0 spring-security-oauth2

我尝试了解方法级别的资源权限。我知道注解@EnableGlobalMethodSecurity(prePostEnabled = true)可以定义注解`` 使用Spring Expression Language的@PreAuthorize@PreAuthorize可以更好地控制对资源的访问,但是基本上我可以在没有@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对象,并且可以像上面一样创建自定义表达式规则。

我省略了一些内容,或者我没有正确理解。使用that或仅忽略之间有什么区别?它以什么形式提高了方法的安全性?

0 个答案:

没有答案