我的项目场景:
笔者最近有一个我的项目,依赖关系如下图:
- 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谬误
本文如有侵权,请分割我删除,谢谢!