pom.xml
<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
Spring Security配置
protected void configure(HttpSecurity httpSecurity) throws Exception {
String[] SWAGGERS = {
"/swagger/**",
"/v3/**"
};
httpSecurity
.authorizeRequests(expressionInterceptUrlRegistry ->
expressionInterceptUrlRegistry
// 放行 druid 页面
.antMatchers("/zhy-druid/**").permitAll()
.antMatchers(SWAGGERS).anonymous()
.anyRequest().authenticated()
);
httpSecurity
.formLogin(httpSecurityFormLoginConfigurer ->
httpSecurityFormLoginConfigurer
.loginPage("/authentication")
.successHandler(accountAuthenticationSuccessHandler)
.failureHandler(accountAuthenticationFailureHandler)
);
httpSecurity
.logout(httpSecurityLogoutConfigurer ->
httpSecurityLogoutConfigurer
.logoutUrl("/cancellation")
.logoutSuccessHandler(accountLogoutSuccessHandler)
);
httpSecurity
.exceptionHandling(httpSecurityExceptionHandlingConfigurer ->
httpSecurityExceptionHandlingConfigurer
.authenticationEntryPoint(accountAuthenticationEntryPointHandler)
.accessDeniedHandler(accountAccessDeniedHandler)
);
httpSecurity
.cors();
httpSecurity
.csrf()
.disable();
}
application-local.yml
springfox:
documentation:
enabled: true
swagger-ui:
base-url: /swagger
我得到这个结果。
无法呈现此定义提供的定义未指定有效的版本字段。
请注明有效的Swagger
或OpenAPI
版本字段。支持的版本字段是swagger: 2.0和与openapi: 3.0. n匹配的版本字段(例如,openapi: 3.0.0)。
Openapi是最新的库,建议用于spring boot应用程序。这是下一个版本的招摇。
在您的应用程序中为workopenapi
添加以下代码。
pom.xml
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.2.32</version>
</dependency>
Spring Security性配置为允许打开api url。
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Autowired
private UserServiceImpl userServiceImpl;
@Bean
BCryptPasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors().and().csrf().disable()
.authorizeRequests()
.antMatchers(SecurityConstants.SIGN_UP_URL).permitAll()
.antMatchers("/swagger-ui/**").permitAll()
.antMatchers("/v3/**").permitAll()
.antMatchers("/api-docs.html").permitAll()
.anyRequest().authenticated()
.and()
.addFilter(new AuthorizationFilter(authenticationManager()))
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
}
}
应用yml公司
springdoc:
swagger-ui.path: /api-docs.html
我对使用SpringBoot和Springfox-boot-starter的swagger文档有一个问题。 我使用java.time.Instant java.util.Optio包裹 有没有办法让这个工作与可选的?感谢任何建议! Spring启动版本: Springfox-boot-starter版本
我的pom.xml 招摇过市配置 服务器日志 它说映射: 但这些都不起作用(404): 如果我使用sping-fox较低版本,那么我将在我的日志中得到它已映射{[/v2/api-docs}],方法=[GET]。但是,我看不到在那里生成的任何json。
我正在使用Swagger注释和SpringFox为我的REST API(使用Sprint Boot构建)生成Swagger规范。我正在用将返回的代码注释每个方法。例如: 然而,有些东西(我假设SpringFox)正在向每个API调用添加一个200响应代码,而不管它是否已定义。我知道我可以通过在每个方法中添加注释来删除此项,但a)这似乎是@ApiResponse定义的不必要重复,b)某些方法可能返回
我正在使用springfox swagger2,它工作正常。 这只是一个基本的设置/配置,因为我对Swagger真的很陌生。 更新 如果在类中设置这个,我就可以访问。 但是如果我把它更改为,它就不会了,而且我会得到我设置的401错误: 依赖性(pom.xml): 安全配置类 MyAuthenticationEntryPoint 谢了!
我有一个使用Springdoc(Swagger)的Spring Boot API。该API具有在标头中传递“apiKey”和“code”字段的安全性。我很难正确配置Swagger以在Swagger UI中启用身份验证功能。这是配置: 我知道这是不正确的,但不确定如何配置它。 感谢任何帮助。 尝试解决方案:从@indybee推荐: 这就是我要做的(不幸的是,当我测试一个endpoint时,它仍然没有
目前我正在编写我的API文档,我决定用ReDoc来实现它。我的API使用Spring Boot构建..对于文档,我使用SWAGGER。一切都很好,但是我无法注释我的控制器来显示ReDoc文档右边的“响应样本”部分。我尝试在dto中添加示例,如: 这是我的控制器的外观: