Spring boot security

时间:2017-06-21 08:00:39

标签: spring angular spring-boot spring-security

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

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

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

2 个答案:

答案 0 :(得分:2)

在春季靴子中,您可以进行以下处理:

@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();
}
}

答案 1 :(得分:1)

从你的web.xml我找不到安全配置的任何内容。

但如您所述,您可以通过弹簧安全配置它,如下所示,允许&#34; /&#34;但需要通过&#39; / rest /&#39;进行身份验证路径。

@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/教程系列。