Spring 安全性:如何制作仅匿名的内容?
Spring Security: How to make anonymous-only content?
我想让我的项目中的某些页面只能由匿名用户访问(例如:/login、/signup),但由于某些原因其他角色也可以访问它们..(这让我很难受,因为另一种方式周围确实有效..)
这是我的 http 配置:
<http authentication-manager-ref="dao-auth"
access-decision-manager-ref="accessDecisionManager"
disable-url-rewriting="true">
<intercept-url pattern="/pages/usermain.html" access="USER"></intercept-url>
<intercept-url pattern="/pages/home.html" access="USER"></intercept-url>
<intercept-url pattern="/home" access="USER"></intercept-url>
<intercept-url pattern="/logout" access="USER"></intercept-url>
<intercept-url pattern="/login" access="ROLE_ANONYMOUS"></intercept-url>
<intercept-url pattern="/denied" access="ROLE_ANONYMOUS"></intercept-url>
<form-login login-page="/login" authentication-failure-url="/login/bad"
default-target-url="/home"
login-processing-url="/authenticate"
username-parameter="email" password-parameter="password" />
<logout invalidate-session="true" logout-success-url="/"
logout-url="/logout" />
<access-denied-handler error-page="/denied" />
<session-management invalid-session-url="/login">
<concurrency-control max-sessions="1"
expired-url="/login" />
</session-management>
</http>
谢谢!
解决了。
为了限制 ROLE_ANONYMOUS 我不得不激活 use-expressions="true"
在 http 标记中,然后将我的所有访问更改为其等效的布尔表达式(等效于仅匿名的是 access="isAnonymous()")。
我想让我的项目中的某些页面只能由匿名用户访问(例如:/login、/signup),但由于某些原因其他角色也可以访问它们..(这让我很难受,因为另一种方式周围确实有效..)
这是我的 http 配置:
<http authentication-manager-ref="dao-auth"
access-decision-manager-ref="accessDecisionManager"
disable-url-rewriting="true">
<intercept-url pattern="/pages/usermain.html" access="USER"></intercept-url>
<intercept-url pattern="/pages/home.html" access="USER"></intercept-url>
<intercept-url pattern="/home" access="USER"></intercept-url>
<intercept-url pattern="/logout" access="USER"></intercept-url>
<intercept-url pattern="/login" access="ROLE_ANONYMOUS"></intercept-url>
<intercept-url pattern="/denied" access="ROLE_ANONYMOUS"></intercept-url>
<form-login login-page="/login" authentication-failure-url="/login/bad"
default-target-url="/home"
login-processing-url="/authenticate"
username-parameter="email" password-parameter="password" />
<logout invalidate-session="true" logout-success-url="/"
logout-url="/logout" />
<access-denied-handler error-page="/denied" />
<session-management invalid-session-url="/login">
<concurrency-control max-sessions="1"
expired-url="/login" />
</session-management>
</http>
谢谢!
解决了。
为了限制 ROLE_ANONYMOUS 我不得不激活 use-expressions="true" 在 http 标记中,然后将我的所有访问更改为其等效的布尔表达式(等效于仅匿名的是 access="isAnonymous()")。