Чванство-пользовательский интерфейс Весенняя безопасность => localhost:8080/swagger-ui.html >

#spring #spring-boot #spring-security #swagger

Вопрос:

Я делал некоторые инвестиции в это, но я ничего не мог добиться, вот моя текущая ситуация:

1. Я использую Spring Boot Spring Security, и вот мои конфигурации:

.
.
.

 @Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

private final PasswordEncoder passwordEncoder;
@Autowired
private UserRepository userRepository;

@Autowired
public WebSecurityConfig(PasswordEncoder passwordEncoder) {
    
    this.passwordEncoder = passwordEncoder;
};

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers("/v2/api-docs",
                               "/configuration/ui",
                               "/swagger-resources/**",
                               "/configuration/security",
                               "/swagger-ui.html",
                               "/webjars/**");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
    http
    .csrf().disable()
    .authorizeRequests(authorize -> {
        authorize
                .antMatchers("/h2-console/**").permitAll() //do not use in production!
                .antMatchers("/", "/webjars/**", "/login/**", "/resources/**", "/v2/api-docs",
                        "/configuration/ui",
                        "/swagger-resources/**",
                        "/configuration/security",
                        "/swagger-ui.html",
                        "/webjars/**").permitAll();
    } )
    .authorizeRequests()
    .anyRequest().authenticated()
    .and()
    .httpBasic()
    .and().csrf().ignoringAntMatchers("/h2-console/**", "/api/**");
    http.headers().frameOptions().sameOrigin();
};
 

применение.свойства:

 server.ssl.key-store: classpath:springboot.p12
server.ssl.key-store-password:password
server.ssl.key-store-type: pkcs12
server.ssl.key-alias: springboot
server.ssl.key-password: password
 

Конфигурация чванства:

 @Configuration
@EnableSwagger2
public class SwaggerConfig { //} extends WebMvcConfigurationSupport {
@Bean
public Docket api(){
    return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors.basePackage("enide.logicon.backend.controllers"))
            .paths(PathSelectors.any())
            .build()
            .apiInfo(metaData());
}
 

.
.
.


  • Собственный сгенерированный SSL-сертификат запущен и работает, сгенерирован для заполнения «editor.swagger.io» https-запросы необходимы и для того, чтобы сделать базовую аутентификацию более безопасной.

.
.
.

  • ПОЧЕМУ НЕ НАЙДЕН SWAGGER-UI.HTML СТРАНИЦА? здесь у вас есть мои зависимости:

.
.
.

  <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>3.0.0</version>
    </dependency>
 

.
.
.

**

  • Также разрешены все пути без необходимости входить в систему с antMatchers("/**").permitAll() этим «editor.swagger.io» для извлечения данных из API, но не /swagger-ui.html есть какие-нибудь идеи?

**

Ответ №1:

Ну, не знаю, почему это -1 на мой вопрос, ответ был там.

Что сработало для меня, так это изменение зависимостей для этого:

  <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-boot-starter</artifactId>
        <version>3.0.0</version>
 </dependency>