我的项目场景:
笔者最近有一个我的项目,依赖关系如下图:
- main-project 是主我的项目
- auth-project 是公司封装好的认证核心我的项目,打包成了 jar 包供援用,基于 spring security 开发
需要形容
当初笔者须要在 main-project 上做开发,即在 Controller 中增加一个新接口,然而因为援用了 auth-project,所以所有接口必须要先登录获取 token 之后能力拜访。
为了便于开发,笔者想临时跳过 spring security 的认证过程。
解决方案:
办法一:
在 main-project 的 config 包下编写一个类,继承 WebSecurityConfigurerAdapter,并重写 configure(HttpSecurity http) 办法,放行所有申请,代码如下:
@EnableWebSecurity
@Order(1)
public class MyWebSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {http.authorizeHttpRequests()
.anyRequest().permitAll()
.and()
.csrf().disable();
}
这里有 2 点须要留神:
- @Order(1) 是为了配置执行程序的优先级,因为 auth-project 里曾经有了一个 WebSecurity 的配置类,所以这里配置 @Order(1) 是为了让咱们写的配置类先加载,数字越小优先级越高;
- 须要禁用 csrf 进攻,否则除 get 申请办法以外,其它类型的申请会返回 403 响应。
办法二:
在 main-project 的 pom.xml 文件中,正文掉 auth-project 的 dependency。
参考文章:
浅谈 Spring @Order 注解的应用
Spring Boot 申请 403 Forbidden 谬误
本文如有侵权,请分割我删除,谢谢!