【问题标题】:Base URI for spring boot securitySpring Boot 安全性的基本 URI
【发布时间】:2017-11-24 00:10:19
【问题描述】:

在旧春天(春季启动之前)我在 web.xml 中定义

<filter-mapping> 
    <filter-name>myFilter</filter-name> 
    <url-pattern>/rest/*</url-pattern> 
</filter-mapping>

通过这种方式,安全性仅应用于“/rest/”下的 URI,并且从根提供的静态资源不受保护(我的 html/Angular2 内容)。但是我在 Spring Boot 中找不到任何做同样事情的参考,有没有人已经解决了这个问题?

【问题讨论】:

    标签: spring angular spring-boot spring-security


    【解决方案1】:

    在spring boot中你可以处理如下:

    @SpringBootApplication
    public class SpringDemoApplication {
    
    
    @Bean
    public FilterRegistrationBean someFilterRegistration() {
    
        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(someFilter());
        registration.addUrlPatterns("/rest/*");
        registration.setName("myFilter");
        return registration;
    }
    
    @Bean(name = "myFilter")
    public Filter myFilter() {
        return new MyFilter();
    }
    }
    

    【讨论】:

      【解决方案2】:

      从您的 web.xml 中,我找不到任何安全配置。

      但正如您所描述的,您可以通过以下方式通过 spring 安全性配置它以允许“/”但需要对“/rest/”路径进行身份验证。

      @Configuration
      @EnableGlobalAuthentication
      public class ResourceSecurityConfiguration extends WebSecurityConfigurerAdapter {
      
          @Override
          protected void configure(HttpSecurity http) throws Exception {
              http.authorizeRequests()
                  .antMatchers("/").permitAll()
                  .antMatchers("/rest/**").authenticated()
      
                  ......
          }
      }
      

      这是一个很好的 https://spring.io/guides/tutorials/spring-security-and-angular-js/ 教程系列。

      【讨论】:

        猜你喜欢
        • 2014-10-29
        • 1970-01-01
        • 2017-03-13
        • 2012-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-14
        • 2016-05-14
        相关资源
        最近更新 更多