gpt4 book ai didi

java - 如何禁用 oData API 的 HTTP POST REQUEST?

转载 作者:行者123 更新时间:2023-12-02 01:25:52 25 4
gpt4 key购买 nike

我正在使用 oData 和 ServletRegistrationBean 设置一个新的 Java 应用程序。我想禁用接收 POST 请求的选项并仅允许 GET 请求。

我应该在哪里设置?我可以创建某种白名单/黑名单吗?

ServletRegistrationBean odataServRegstration = new ServletRegistrationBean(new CXFNonSpringJaxrsServlet(), "/odata/*");
Map<String, String> initParameters = new HashMap<>();
initParameters.put("javax.ws.rs.Application", "org.apache.olingo.odata2.core.rest.app.ODataApplication");
initParameters.put("org.apache.olingo.odata2.service.factory", "com.sap.context.JPAServiceFactory");
odataServRegstration.setInitParameters(initParameters);
return odataServRegstration;

最佳答案

在 spring Security 中,您可以轻松配置,例如只有角色 admin 的用户才能发出非 GetRequests。我很快就会提供一个例子,除非你之前在网上找到它。其他 unseres 将收到 403。

一个简单的例子是:

    @Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests()
.antMatchers(HttpMethod.POST, "/**").hasRole("ADMIN")
.antMatchers("/**").hasAnyRole("ADMIN","USER")
.and()
.httpBasic()
;
}

注意.antMatchers(HttpMethod.POST, "/**").hasRole("ADMIN")

关于java - 如何禁用 oData API 的 HTTP POST REQUEST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56950180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com