【问题标题】:How to migrate <security-constraint> in web.xml to spring class based configuration (WebApplicationInitializer)如何将 web.xml 中的 <security-constraint> 迁移到基于 Spring 类的配置 (WebApplicationInitializer)
【发布时间】:2020-04-10 06:17:55
【问题描述】:

在我们当前基于 XML 的配置中,我们在 web.xml 中有以下配置来禁用非 ssl(HTTP) 协议访问。

<security-constraint>
    <web-resource-collection>
        <web-resource-name>SecureConnection</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>


我正在将此基于 XML 的配置迁移到 Java 配置。如何在 Spring WebApplicationInitializer 中设置此配置。我发现@ams 几年前发布的same question,但它没有完整/正确的答案。如何使用 Java 配置实现这一点。

【问题讨论】:

    标签: java spring spring-mvc spring-security web.xml


    【解决方案1】:

    您创建一个WebSecurityConfigurerAdapter 并配置HttpSecurity

    您应该查看HttpSecurity 的文档以找出您需要应用的正确配置。

    基本示例:

     @Configuration
     @EnableWebSecurity
     public class OpenIDLoginConfig extends WebSecurityConfigurerAdapter {
    
            @Override
            protected void configure(HttpSecurity http) {
                    http.authorizeRequests().antMatchers("/**").hasRole("USER").and().openidLogin()
                                    .permitAll();
            }
    
            @Override
            protected void configure(AuthenticationManagerBuilder auth) throws Exception {
                    auth.inMemoryAuthentication()
                                    .withUser("https://www.google.com/accounts/o8/id?id=lmkCn9xzPdsxVwG")
                                    .password("password").roles("USER");
            }
     }
    

    延伸阅读:https://www.baeldung.com/java-config-spring-security

    【讨论】:

      【解决方案2】:

      我找到了以下解决方案,仅通过 SSL(HTTPS) 访问请求并在通过 Spring HttpSecurity 类后禁用非 ssl 访问(HTTP)。对此进行了测试并且工作正常。需要配置 WebSecurityConfigurerAdapter

      的这个重写的 configure() 方法
      http.requiresChannel().anyRequest().requiresSecure();
      

      【讨论】:

        猜你喜欢
        • 2020-07-16
        • 2015-04-10
        • 1970-01-01
        • 2015-05-05
        • 2017-02-08
        • 1970-01-01
        • 1970-01-01
        • 2021-02-15
        • 1970-01-01
        相关资源
        最近更新 更多