NyanMps / SecurityExample

SpringSecurity练习工程
1 stars 0 forks source link

关于排除不需要认证的地址 #1

Open bfchengnuo opened 5 years ago

bfchengnuo commented 5 years ago

现在遇到的一个问题是,SpringSecurity 模块被封装起来了,然后接触不到,如果在这种情况下增加不需要验证的地址

PS:其实是因为在配置文件中进行配置并没有效果。。。。

作为救急,就暂时不去寻找原因了

bfchengnuo commented 5 years ago

既然配置文件不管用,就使用 Java 配置的方式来进行增加:

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

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

PS:在目前的一个项目,不知道内部是如何封装的使用 security.oauth2.client.ignore-urls 配置失效

SpringBoot2.x 中,security.ignored 配置放行路径已经过时,并不再支持,需要在代码中进行配置。

bfchengnuo commented 5 years ago

在涉及跨域问题的时候,部分请求是需要进行 OPTIONS 预检的,如果上层 web 服务器没有做处理,可以在上面 Java 配置的基础上再加一些规则:

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

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

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers(HttpMethod.OPTIONS)
                .permitAll();
    }
}
bfchengnuo commented 5 years ago

匹配规则

通配符:? 匹配任意一个字符 通配符:* 匹配任意多个字符,但不能跨越目录 通配符:** 可以匹配任意多个字符,可以跨越目录

例如: /public/* /api-/**