如何忽略 Spring 除了模式之外的所有事物的安全配置

How to ignore Spring Security config for every thing except a pattern

我有一个配置为 spring 启动应用程序的休息网络服务。 我剩下的所有 urls 都有一个基本路径“/api/...”。 我还在我的应用程序中提供静态内容。 我只需要为 Web 服务配置安全性,即以“/api/...”开头但给其他静态内容 w/o 应用安全性的 URL。

我只看到过我们通过以下方式过滤一些 url 模式的示例:

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

但并非如此......

你可以用 regexMatcher 代替 antMatcher,它可以是一个否定模式

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().regexMatchers(XXXXX);
}

回答您最后的评论,如果您使用的是最新的 spring 框架和 spring 安全性,请根据配置标准在下面定义 class 和安全配置。

package org.springframework.security.samples.config;
import org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer;

public class MessageSecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer {
}

另外,如果您仍然觉得 spring 安全入门很困难,请查看下面 URL。

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

使用HttpSecurityantMatcher方法 class:

@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 */
}