認証なしでSwagger URLにアクセスできるようにSpring Securityを構成する方法

shubhendu_shekhar:

私のプロジェクトにはSpring Securityがあります。主な問題:http:// localhost:8080 / api / v2 / api-docsでSwagger URLにアクセスできませんAuthorizationヘッダーがないか無効です。

ブラウザウィンドウのスクリーンショット私のpom.xmlには次のエントリがあります

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.4.0</version>
</dependency>

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

SwaggerConfig:

@Configuration
@EnableSwagger2
public class SwaggerConfig {

@Bean
public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2).select()
            .apis(RequestHandlerSelectors.any())
            .paths(PathSelectors.any())
            .build()
            .apiInfo(apiInfo());
}

private ApiInfo apiInfo() {
    ApiInfo apiInfo = new ApiInfo("My REST API", "Some custom description of API.", "API TOS", "Terms of service", "[email protected]", "License of API", "API license URL");
    return apiInfo;
}

AppConfig:

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { "com.musigma.esp2" })
@Import(SwaggerConfig.class)
public class AppConfig extends WebMvcConfigurerAdapter {

// ========= Overrides ===========

@Override
public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(new LocaleChangeInterceptor());
}

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("swagger-ui.html")
      .addResourceLocations("classpath:/META-INF/resources/");

    registry.addResourceHandler("/webjars/**")
      .addResourceLocations("classpath:/META-INF/resources/webjars/");
}

web.xmlエントリ:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        com.musigma.esp2.configuration.AppConfig
        com.musigma.esp2.configuration.WebSecurityConfiguration
        com.musigma.esp2.configuration.PersistenceConfig
        com.musigma.esp2.configuration.ACLConfig
        com.musigma.esp2.configuration.SwaggerConfig
    </param-value>
</context-param>

WebSecurityConfig:

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
@ComponentScan(basePackages = { "com.musigma.esp2.service", "com.musigma.esp2.security" })
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
    protected void configure(HttpSecurity httpSecurity) throws Exception {
        httpSecurity
        .csrf()
            .disable()
        .exceptionHandling()
            .authenticationEntryPoint(this.unauthorizedHandler)
            .and()
        .sessionManagement()
            .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
            .and()
        .authorizeRequests()
            .antMatchers("/auth/login", "/auth/logout").permitAll()
            .antMatchers("/api/**").authenticated()
            .anyRequest().authenticated();

        // custom JSON based authentication by POST of {"username":"<name>","password":"<password>"} which sets the token header upon authentication
        httpSecurity.addFilterBefore(loginFilter(), UsernamePasswordAuthenticationFilter.class);

        // custom Token based authentication based on the header previously given to the client
        httpSecurity.addFilterBefore(new StatelessTokenAuthenticationFilter(tokenAuthenticationService), UsernamePasswordAuthenticationFilter.class);
    }
}
Stijn Maller:

これをWebSecurityConfigurationクラスに追加するとうまくいくはずです。

@Configuration
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/v2/api-docs",
                                   "/configuration/ui",
                                   "/swagger-resources/**",
                                   "/configuration/security",
                                   "/swagger-ui.html",
                                   "/webjars/**");
    }

}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

認証後にJSON応答を返すようにSpring Securityを構成する

分類Dev

Spring Securityでメモリ内認証とJDBC認証の両方を構成する方法

分類Dev

LANでアクセスするようにApache2.4.9を構成します

分類Dev

LANでアクセスするようにApache2.4.9を構成します

分類Dev

:constraintsを使用するときにすべてにアクセスできるように、兄弟のPedestalルートをどのように構成しますか?

分類Dev

GKE:同じVPCからアクセスできるようにサービスを構成します

分類Dev

nslookupを使用できるようにtravisを構成する方法

分類Dev

gedit、apache、およびIDEを一緒に再生できるようにアクセス許可を構成するにはどうすればよいですか?

分類Dev

認証なしでマウント可能になるように共有フォルダーを構成する

分類Dev

ホームページにアクセスするようにSpring / Springbootを構成するにはどうすればよいですか?

分類Dev

JdbcUserDetailsManagerで使用するようにSpring Security AuthenticationManagerを構成するにはどうすればよいですか?

分類Dev

認証が有効になっているときにSpringBoot管理クライアントを構成するにはどうすればよいですか?

分類Dev

一部のURLにアクセスできるようにSpringSecurityでWebセキュリティを構成するにはどうすればよいですか?

分類Dev

Codeigniterで許可なくURLに直接アクセスできないようにする

分類Dev

Parse Dashboard にリモートでアクセスするようにユーザーを構成する

分類Dev

sidekiqでredis認証を構成する

分類Dev

PostmanでSAML認証を構成する

分類Dev

すばやくアクセスできるようにURLをファイルに保存する

分類Dev

実行時にdllにアクセスできるようにする方法

分類Dev

DockerでCouchDB認証を構成する方法は?

分類Dev

セロリでredisを使用するようにdockerを構成する方法

分類Dev

認証なしでアクセスできるMasheryAPI定義を作成します

分類Dev

MSSQLServerで実行するようにDjangoを構成する方法

分類Dev

RazorPagesでこの変数にアクセスできるようにする方法

分類Dev

configureServicesで構成にアクセスする方法

分類Dev

jQueryは動的コンテンツをロードし、URLでアクセスできるようにします

分類Dev

WooCommerceの配送方法なしでチェックアウトにアクセスできないようにする

分類Dev

領事なしで動作するようにFeignクライアントを構成する方法

分類Dev

認証後にURLにアクセスしようとすると、Spring Securityログインの問題が発生する

Related 関連記事

  1. 1

    認証後にJSON応答を返すようにSpring Securityを構成する

  2. 2

    Spring Securityでメモリ内認証とJDBC認証の両方を構成する方法

  3. 3

    LANでアクセスするようにApache2.4.9を構成します

  4. 4

    LANでアクセスするようにApache2.4.9を構成します

  5. 5

    :constraintsを使用するときにすべてにアクセスできるように、兄弟のPedestalルートをどのように構成しますか?

  6. 6

    GKE:同じVPCからアクセスできるようにサービスを構成します

  7. 7

    nslookupを使用できるようにtravisを構成する方法

  8. 8

    gedit、apache、およびIDEを一緒に再生できるようにアクセス許可を構成するにはどうすればよいですか?

  9. 9

    認証なしでマウント可能になるように共有フォルダーを構成する

  10. 10

    ホームページにアクセスするようにSpring / Springbootを構成するにはどうすればよいですか?

  11. 11

    JdbcUserDetailsManagerで使用するようにSpring Security AuthenticationManagerを構成するにはどうすればよいですか?

  12. 12

    認証が有効になっているときにSpringBoot管理クライアントを構成するにはどうすればよいですか?

  13. 13

    一部のURLにアクセスできるようにSpringSecurityでWebセキュリティを構成するにはどうすればよいですか?

  14. 14

    Codeigniterで許可なくURLに直接アクセスできないようにする

  15. 15

    Parse Dashboard にリモートでアクセスするようにユーザーを構成する

  16. 16

    sidekiqでredis認証を構成する

  17. 17

    PostmanでSAML認証を構成する

  18. 18

    すばやくアクセスできるようにURLをファイルに保存する

  19. 19

    実行時にdllにアクセスできるようにする方法

  20. 20

    DockerでCouchDB認証を構成する方法は?

  21. 21

    セロリでredisを使用するようにdockerを構成する方法

  22. 22

    認証なしでアクセスできるMasheryAPI定義を作成します

  23. 23

    MSSQLServerで実行するようにDjangoを構成する方法

  24. 24

    RazorPagesでこの変数にアクセスできるようにする方法

  25. 25

    configureServicesで構成にアクセスする方法

  26. 26

    jQueryは動的コンテンツをロードし、URLでアクセスできるようにします

  27. 27

    WooCommerceの配送方法なしでチェックアウトにアクセスできないようにする

  28. 28

    領事なしで動作するようにFeignクライアントを構成する方法

  29. 29

    認証後にURLにアクセスしようとすると、Spring Securityログインの問題が発生する

ホットタグ

アーカイブ