Как защитить Swagger-UI с базовой аутентификации с помощью Spring Security - PullRequest
0 голосов

У меня есть простое приложение для весенней загрузки с оставшимся API, и мне нужно защитить swagger-ui.html с помощью базовой аутентификации, используя Spring Security

Я уже пытался установить в Docket api это:

return new Docket(DocumentationType.SWAGGER_2)
                .securitySchemes(auth)
                .securityContexts(securityContexts)
                .select()
                    .apis(RequestHandlerSelectors.basePackage("com.my.package.directory"))
                    .paths(PathSelectors.any())
                    .build()
                .apiInfo(getApiInfo());

и моя весенняя конфигурация безопасности:

 @Override
    protected void configure(HttpSecurity http) throws Exception
    {
        http
                .csrf().disable()
                .authorizeRequests()
                .anyRequest().authenticated()
                .and()
                .httpBasic();
    }

это даже не требует никакой аутентификации, что я делаю неправильно?

1 Ответ

0 голосов
/ 19 июня 2019

Попробуйте это

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf().disable()
            .authorizeRequests()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage("/login-page-url")
                .permitAll()
                .and()
            .logout()
                .permitAll();
    }

    @Bean
    @Override
    public UserDetailsService userDetailsService() {
        UserDetails user =
            User.withDefaultPasswordEncoder()
                .username("username-here")
                .password("password-here")
                .roles("USER")
                .build();

        return new InMemoryUserDetailsManager(user);
    }
}
...