繁体   English   中英

Spring安全性请求授权

[英]Spring security requests authorization

我刚接触Spring Security,正在检查如何授权对应用程序中URL的请求。

根据此处的文档,我们添加授权如下:

protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
            .antMatchers("/resources/**", "/signup", "/about").permitAll()
            .antMatchers("/admin/**").hasRole("ADMIN")
            .antMatchers("/db/**").access("hasRole('ADMIN') and hasRole('DBA')")
            .anyRequest().authenticated()
            .and()
        // ...
        .formLogin();
}

由于此方法对我来说效果很好,我想知道是否还有另一种动态方式指定此配置。 例如,通过为我们的REST控制器使用某种注释?

我有一个切实可行的解决方案,但是我想确保在开始开发自己的代码之前没有其他方法可以做到这一点。

谢谢您的帮助。

是的,有一个注释为@Secured/@PreAuthorize/@PostAuthorize 该批注是应用方法级安全性的首选方法,并且开箱即用地支持Spring Expression Language,并提供基于表达式的访问控制。

例如

@PreAuthorize("hasRole('ADMIN')") public String yourControllerMethod() { return response; }

详情请点击这里。

唯一的其他方法是使用@ Secured / @ PreAuthorize / @ PostAuthorize批注。 但是您必须将它们放在要保护的所有Web服务上。

通常,当我构建Web服务应用程序时,我希望对WebSecurityConfigurerAdapter上的所有请求进行授权,然后使用这些批注逐个保护请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM