我定义了标准的安全上下文,但即使是匿名用户也可以访问安全的URL(例如,到/ itef / dashboard)。为什么它会幸福?
<http access-denied-page="/403.jsp" use-expressions="true">
<intercept-url pattern="/**" access="hasAnyRole('ROLE_USER, ROLE_ANONYMOUS')"/>
<intercept-url pattern="/itef/**" access="hasAnyRole('ROLE_USER, ROLE_ADMIN')"/>
<intercept-url pattern="/admin**" access="hasRole('ROLE_ADMIN')"/>
<form-login login-page="/"
default-target-url="/itef/dashboard"
always-use-default-target="true"
authentication-failure-url="/index?loginError"
username-parameter="username"
password-parameter="password" />
<logout logout-url="/logout" logout-success-url="/index?logout" invalidate-session="true"/>
<anonymous username="guest" granted-authority="ROLE_ANONYMOUS"/>
<remember-me/>
</http>
答案 0 :(得分:1)
订单很重要。来自参考文档:
您可以使用多个
<intercept-url>
元素来定义不同的元素 访问不同URL集的要求,但它们将是 按列出的顺序进行评估,并使用第一场比赛。
因此/**
规则应该是最后一个。