在项目进行开发的时候搭建的swagger访问http://localhost:8080/swagger-ui.html
发现springCloud搭建的oauth统一认证的框架中
Unauthorized 401明显就是授权认证没有token问题。接口文档swagger其实可以不需要认证,只是开发者在开发环境使用。
1、要么添加固有认证token在系统中,在访问swagger-ui.html前在请求添加token
2、忽略swagger的所有接口的统一认证,配置文件中添加以下配置(其中不止是忽略/swagger-ui.html/**,因为打开swagger还同时调用了很多个接口,我这里动态读取了配置文件的参数)
security.ignored=/swagger-resources/**,/webjars/**,/v2/**,/swagger-ui.html/**,/doc.html
在代码web.ignoring().antMatchers();直接添加忽略过滤也可以
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity web) throws Exception {
//ignore
web.ignoring().antMatchers("/swagger-resources/**","/webjars/**","/v2/**","/swagger-ui.html/**","/doc.html");
}
}
配置完之后再次访问swagger-ui.html,成功。