在Spring Security中,如何绕过URL的GET方法;但不是POST

时间:2014-08-22 13:55:33

标签: java spring http spring-security

如何配置,以便自定义过滤器绕过URL的GET版本,但不能绕过该URL的POST版本。我尝试使用“filters = none”,但它不起作用。我的配置如下:

<http auto-config='true' use-expressions="true" create-session="never" >
    <custom-filter position="FIRST" ref="authenticationFilter" />
    <intercept-url pattern="/v0_2/app" method="GET" access="permitALL" filters="none"/> // Its not working
    <intercept-url pattern="/v0_2/app" method="POST" access="permitALL" />
    <intercept-url pattern="/**" access="permitALL" />
</http>

即使使用“”secuirty = none“选项,也没有提供http方法的规定。它绕过了URL的所有http方法。

<http pattern="/v0_2/app" security="none" />

请告诉我,我该怎么做才能绕过GET方法。

-Thanks

1 个答案:

答案 0 :(得分:0)

您可以拥有以下内容:

<intercept-url pattern="/v0_2/app" method="GET" access="permitAll"/> 
    <intercept-url pattern="/v0_2/app" method="POST" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

<intercept-url pattern="/v0_2/app" method="GET" access="permitAll"/> 
        <intercept-url pattern="/v0_2/app" method="POST" access="denyAll"/>

denyAll会让每个POST请求通过过滤器。