在旧春天(春季启动之前)我在web.xml中定义
<filter-mapping>
<filter-name>myFilter</filter-name>
<url-pattern>/rest/*</url-pattern>
</filter-mapping>
通过这种方式,安全性仅应用于“/ rest /”下的URI,而从root提供的静态资源则不受保护(我的html / Angular2内容)。但是我找不到在Spring Boot中做同样的任何参考,有没有人已经解决了这个问题?
答案 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/教程系列。