1

我有一个 doGet 工作,但是当我跟随尝试做 de doPost 时,我得到一个 403,我认为这是因为服务器总是向我发送标头“x-csrf-token:require”,但这里奇怪的是我在这些行之前停用:

<!-- disabled to make REST work - AUTHN/AUTHZ MUST NOT USE COOKIES! -->
<!--
<filter>
    <filter-name>RestCsrfPreventionFilter</filter-name>
    <filter-class>org.apache.catalina.filters.RestCsrfPreventionFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>RestCsrfPreventionFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
-->

我读到 approuter 采取了安全措施,这是我的 Override post 方法,我只想尝试它是否有效:

 @Override
protected void doPost( final HttpServletRequest request , final HttpServletResponse response) throws IOException, ServletException {
    response.getWriter().write("POST METHOD");
}

但我每次都在响应标头中看到:

来自应用程序的响应 - HTTP 403 在此处输入图像描述

我发现您需要在 approuter 中激活身份验证,但它仍然不适合我,这是我的 approuter 代码:

在此处输入图像描述

4

1 回答 1

2

默认情况下,approuter 使用 CSRF 保护来保护所有非 GET 路由。如果您只是想对此进行测试,您可以使用 approuter 的配置将其关闭,使用"csrf-protection":false( xs-app.jsonhttps://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/c103fb414988447ead2023f768096dcc.html )

但是,不建议这样做。更好的选择是获取 CSRF 令牌并在每个后续请求中发送它

于 2019-03-22T20:30:56.293 回答