我有一个rest webservice配置为spring boot应用程序。 我所有的其他网址都有一个基本路径" / api /..."。 我也在为我的应用程序提供静态内容。 我只需要为Web服务配置安全性,即以" / api /..."开头的URL;但是给出其他静态内容而不应用安全性。
我只看过我们通过以下网址过滤网址模式的示例:
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/resources/*");
}
但不是......
答案 0 :(得分:6)
使用antMatcher
类的HttpSecurity
方法:
@Configuration
@EnableWebSecurity
public class MySecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.antMatcher("/api/**");
// add security constraints for /api/... here
}
/* rest of config */
}
答案 1 :(得分:0)
代替antMatcher,你可以使用regexMatcher作为否定模式
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().regexMatchers(XXXXX);
}
回答你的上一条评论,如果你使用的是最新的spring框架和spring安全性,那么按照配置标准定义下面的类和安全配置。
package org.springframework.security.samples.config;
import org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer;
public class MessageSecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer {
}
另外,如果您仍然难以开始使用spring security,请查看以下URL。