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

Swagger OpenAPI UI发送POST,PUT和DELETE请求的403响应状态:Nginx Proxy后面的服务器

许永年
2023-03-14

问题:Swagger UI openAPI的Get请求正在工作,而其他方法类型给出403错误。

屬地:

<dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-ui</artifactId>
        <version>1.6.6</version>
</dependency>

摇摆配置:

@Configuration
@OpenAPIDefinition(servers = {
        @Server(url = "https://hostname")
})
@SecurityScheme(name = auth, type = SecuritySchemeType.HTTP, bearerFormat = "JWT", scheme = "bearer")
public class SwaggerConfig {
}

安全配置

public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
        http.cors().and().csrf().disable()
            .exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and()
            .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
            .authorizeRequests()
            .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
            .anyRequest().authenticated();

        http.addFilterBefore(authenticationJwtTokenFilter(), UsernamePasswordAuthenticationFilter.class);
    }
    
    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/swagger-ui/**","/v3/api-docs/**");
        }
    }

我们还尝试忽略这些路径:WebSecurity中的< code>/swagger-resources/**,/webjars/**,仍然不起作用。

Post请求错误消息403

原始编辑:进一步研究发现,这可能是由于nginx代理。在我的本地服务器上一切正常,但在其他托管在nginx代理后面的环境中却无法正常工作。

共有1个答案

燕智
2023-03-14
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
private static final String[] WHITELIST = {
        "/v2/api-docs",
        "/v3/api-docs",
        "/**/v3/api-docs",
        "/swagger-resources",
        "/swagger-resources/**",
        "/configuration/ui",
        "/configuration/security",
        "/swagger-ui.html",
        "**/swagger-ui.html",
        "/**/swagger-ui.html**",
        "/swagger-ui.html**",
        "/webjars/**"
};

@Configuration
@Order(2)
public static class SwaggerSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers(WHITELIST).permitAll();
        http.csrf().disable();
    }
}
}
 类似资料:
  • 问题内容: 我已经使用JAX-RS(Jersey 2.0)实现了一个小的REST API,并且正在使用AJAX调用该API,GET和POST都可以正常工作,但是当我调用任何PUT或DELETE方法时,得到的只有以下内容错误信息: 加载资源失败:服务器的响应状态为403(禁止) 这是Java中 DELETE 方法的示例: 这是使用AJAX的Javascript调用: 任何帮助都感激不尽!!谢谢!!

  • 我有一个骆驼endpoint,另一个应用程序在那里发送带有一些数据的post请求(可能是通过其他路由) 我想处理这个数据,并用POST请求的响应将一些东西返回给应用程序。 这就是我的骆驼上下文现在的样子: 如何通过post请求的响应从路由sendFinData发回一些应答?

  • 我使用JavaSpring Cloud/Boot构建了一个REST API服务。首先,我制作了一个连接到MongoDB的简单类和一个带有服务的控制器,它应该允许我添加、删除、更新和获取所有对象。当使用POSTMAN时,这些都可以工作,但是当我想使用redux添加或更新对象并获取API时,我会收到状态400和“错误请求”错误。这似乎与我在正文中发送的JSON有关,但它与例如POSTMAN使用的JSO

  • 问题内容: 我想知道是否可以将PUT,DELETE请求(实际上)发送java.net.HttpURLConnection到基于HTTP的URL。 我已经读了很多描述如何发送GET,POST,TRACE,OPTIONS请求的文章,但是我仍然没有找到成功执行PUT和DELETE请求的示例代码。 问题答案: 要执行HTTP PUT: 要执行HTTP删除:

  • 我正在尝试发送这样的帖子请求: 我使用的是Apache服务器,这是我的<代码>。htaccess文件 无论何时发送请求,都会出现以下错误: 为什么会这样?我曾经使用Steam获取请求,它们工作正常,但这个帖子请求似乎不起作用。 编辑:这是steamcommunity。com的机器人。txt文件: 上面写着,所以这就是我收到错误的原因吗?

  • 问题内容: 我已经无法通过Fetch获得GET和POST方法了。但是我找不到任何很好的DELETE和PUT示例。 所以,我要你。您能否举一个使用fetch的DELETE和PUT方法的好例子。并解释一下。 问题答案: 这是一个获取示例。您可以针对进行相同操作。