如何安全地访问swagger端点?

时间:2019-06-14 13:09:54

标签: spring-boot authentication swagger swagger-ui

我在应用程序中添加了swagger ui,在下面的两个URL下方,我无需任何身份验证即可直接访问。

     http://localhost:1510/swagger-ui.html
     http://localhost:1510/v2/api-docs

我需要安全的网址,不希望任何人直接看到我应用程序的api详细信息。

注意:-为了进行身份验证,我在应用程序中使用具有弹簧安全性的JWT。

因此,为了保护广泛的URL,我在下面的代码中在spring seurity config ..中进行了输入

       @Override
       protected void configure(HttpSecurity http) throws Exception {
    http
        .addFilterBefore(corsFilter, UsernamePasswordAuthenticationFilter.class)
        .exceptionHandling()
        .authenticationEntryPoint(problemSupport)
        .accessDeniedHandler(problemSupport)
    .and()
        .csrf()
        .disable()
        .headers()
        .frameOptions()
        .disable()
    .and()
        .sessionManagement()
        .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
    .and()
        .authorizeRequests()
        .antMatchers("/api/register").permitAll()
        .antMatchers("/api/activate").permitAll()
        .antMatchers("/api/userLogin").permitAll()           
        .antMatchers("/v2/api-docs").hasAuthority(AuthoritiesConstants.ADMIN)
        .antMatchers("/swagger-ui.html").hasAuthority(AuthoritiesConstants.ADMIN)          
    .and()
        .apply(securityConfigurerAdapter());

}

并且当我尝试访问swagger url时,我在浏览器和Eclipse控制台上都遇到异常。

 org.springframework.security.authentication.InsufficientAuthenticationException: Full authentication is required to access this resource

如何传递jwt令牌来查看招摇页面?

0 个答案:

没有答案