当前位置: 首页 > 知识库问答 >
问题:

Swagger和springfox

佴博实
2023-03-14

我使用的是swagger版本2.2.2。如果我转到地址http://localhost:8080/swagger-ui.html,我将直接获得swagger UI。有没有办法,一个安全层可以增加,像,用户应该提示输入用户id和密码之前,大摇大摆的UI显示?

共有1个答案

何兴安
2023-03-14

有可能,我用这个安全配置做到了(假设您使用的是spring):

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.crypto.factory.PasswordEncoderFactories;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;

@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(final HttpSecurity http) throws Exception {
        http.csrf().disable();
        final InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();
        final PasswordEncoder encoder = PasswordEncoderFactories.createDelegatingPasswordEncoder();
        manager.createUser(User.withUsername("user").password(encoder.encode("password")).roles("ACTUATOR", "ADMIN").build());
        http.authorizeRequests().antMatchers("/swagger-ui**", "/v2/api-docs/**").hasRole("ACTUATOR").and().httpBasic()
                .and().userDetailsService(manager);
    }

}

 类似资料:
  • 但对于本地时间来说,我仍然在swagger-ui的示例和模型中得到这些 我读过一些东西,swagger规范不使用时间格式。这是不是有些关联?

  • 我开发了一个带有Swagger注释的REST API。我已经能够展示一个炫耀的ui应用程序的api文档,非常好。 问题:根据我的注释,我试图使用swagger提供的url生成符合该规范的客户端。问题是,它似乎是不兼容的,或者至少,我不知道如何做swagger编辑器读取我的网址,并从那时起,产生客户。但是swagger编辑器向我报告了一些错误... 是否可以将我的带注释的 swagger api 与

  • Swagger UI和Swagger CodeGen有什么区别? 我阅读了中的描述https://swagger.io/tools/.听起来Swagger Editor、UI和codeGen是完全不同的工具。如果我想生成.Net服务器存根并将其可视化,这是否意味着我需要同时使用UI和CodeGen?

  • 我已经将SpringFox依赖项添加到我的Spring Boot项目中,当我打开swagger-ui.html页面时,我可以看到我自己创建的RestControllers的文档,我确实看到了以下文档: 基本错误控制器 默认值 null 如何向default/loginendpoint添加文档?

  • 我有一个协议缓冲区定义,其中包括作为消息的一部分。Timestamp消息非常简单,具有以下定义: 因此,gRPC有效负载就像预期的那样,是一个简单的值元组。然而,我还想为同一条消息的REST API生成一些招摇过市的注释,但它似乎将时间戳转换为RFC 3339样式的字符串: 我最近开始使用协议缓冲区和gRPC,所以我不确定这里是否遗漏了什么,但这似乎与gRPC网关实现不一致。为什么REST的格式与

  • 在过去的两天里,我有机会和Micronaut一起玩。 它看起来不错,我喜欢内置的对OpenAPI的支持(Swagger)。我成功地将OpenAPI文档放在本地的Swagger UI中,并且我能够按照预期创建一些显示在Swagger UI中的文档。 然后我转移到一个小现实世界的项目,它使用Lombok和流畅的API,配置在lombok.config 此设置导致Lombok不创建getter/sett