除了模式之外,如何忽略Spring Security配置

时间:2015-03-16 10:16:06

标签: spring-security url-mapping

我有一个rest webservice配置为spring boot应用程序。 我所有的其他网址都有一个基本路径" / api /..."。 我也在为我的应用程序提供静态内容。 我只需要为Web服务配置安全性,即以" / api /..."开头的URL;但是给出其他静态内容而不应用安全性。

我只看过我们通过以下网址过滤网址模式的示例:

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers("/resources/*");
}

但不是......

2 个答案:

答案 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。

http://docs.spring.io/spring-security/site/docs/3.2.6.RELEASE/reference/htmlsingle/#hello-web-security-java-configuration