小编Abr*_*ler的帖子

如何在 Spring 安全 Java 配置中最好地组织 URL 授权

我有一个声明了大量 URL 授权的应用程序。大概有200多个。我WebSecurityConfigurerAdapter按照 spring 安全文档的建议在 Java 配置中配置了这些。话虽如此,它们太多了,很难在一个类中维护它们。

我提出了一个目前正在运行的解决方案,但它的维护水平仍然不够理想。我想知道其他人是否遇到过这个问题以及您提出了哪些解决方案。

当前解决方案:

由于 URL 太多,我将它们分成几个类,如下所示:

public class UrlConfig implements Customizer<ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry> {

   @Override
    public void customize(ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry requests) {
        buildUrlPartition().stream().forEachOrdered(config -> config.configure(requests));
    }

    SortedSet<UrlConfigSection> buildUrlPartition() {
        SortedSet<UrlConfigSection> urlPartition = new TreeSet<>();
        urlPartition.add(new CustomUrlsConfig());
        urlPartition.add(new DeleteUrlsConfig());
        urlPartition.add(new AddUrlsConfig());
        urlPartition.add(new EditUrlsConfig());
        urlPartition.add(new ListUrlsConfig());
        urlPartition.add(new CatchAllUrlsConfig());
        return urlPartition;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是将所有拆分的 URL 授权添加到 a 中,SortedSet并且通过让这些 URL 类扩展一个抽象类来维护订单,该抽象类将为它们提供顺序。这个定制器的用途WebSecurityConfigurerAdapter如下:

public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http.authorizeRequests(new …
Run Code Online (Sandbox Code Playgroud)

security url spring authorization spring-security

5
推荐指数
0
解决办法
126
查看次数

标签 统计

authorization ×1

security ×1

spring ×1

spring-security ×1

url ×1