使用activiti7,发现访问swagger2时被拦截,跳转了登录页。
看到这个登录界面,就感觉到不对劲了,去翻了一下启动日志,果然是Spring Security导致的。
因为确定没有主动引入Spring Security的jar包,那肯定就是activiti7的依赖了,翻了翻activiti7,确实存在Spring Security的依赖
针对这种情况也很无奈,只能是添加些Spring Security的配置了。
第一步:先设置一下自定义登录密码,默认生成的密码用起来很麻烦,这里说一下,默认的密码对应的默认账号是user,密码就是上面那个启动日志里自动生成的。
spring:
security:
user:
name: root
password: 123456
在application.yml中添加👆🏻这些配置,就可以实现自定义登录账号密码了。
第二步:添加securityConfig配置文件
package com.enjoy.approval.config;
import org.springframework.context.annotation.Bean;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.SecurityFilterChain;
/**
* security配置
* @author wangyl
* @da
*/
@EnableWebSecurity
public class WebSecurityConfigurer {
@Bean
public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception {
return httpSecurity
.headers().frameOptions().disable()
.and().authorizeRequests()
.antMatchers("/swagger-ui.html",
"/doc.html"
).permitAll()
.anyRequest().authenticated()
.and()
.httpBasic().and()
.csrf()
.disable()
.build();
}
}
.antMatchers().permitAll() 是用来排除校验的,可以把不需要经过权限校验的接口或者包路径添加到这里面。
.csrf().disable() 是用来解决POST请求跨域403报错问题的。
OK,重新启动一下服务,在启动日志中就看不到Using generated security password这条提示了,此时打开swagger2,弹出登录框,输入预先设定的账号密码,登录成功,就可以看到接口文档啦。