我的项目场景:

笔者最近有一个我的项目,依赖关系如下图:

  • 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谬误

本文如有侵权,请分割我删除,谢谢!