请参阅下面的配置并尝试在您的配置中进行类似的操作。首先我不明白你为什么写
<intercept-url pattern="/drug/access-denied" access="isAuthenticated()"/>
拒绝访问页面中的内容是您只希望经过身份验证的用户查看该页面。
使用您的配置,当它发现当时显示拒绝访问页面时,您将其称为 isAuthenticated() 然后再次如果用户未登录并直接尝试访问该页面,它将将用户发送到登录页面而不是访问拒绝页面.
我觉得应该是
<intercept-url pattern="/drug/access-denied" access="permitAll"/>
然后写,
<intercept-url pattern="/drug/**" access="hasRole('ROLE_DRUG')" />
见下文
<security:form-login login-page="/login.jsp"
default-target-url="/drug/home" authentication-failure-handler-ref="authenticationFailureHandler" />
<security:intercept-url pattern="/login.jsp"
access="permitAll" />
<security:intercept-url pattern="/accessDenied.jsp"
access="permitAll" />
<security:intercept-url pattern="/drug/*"
access="isAuthenticated()" />
<security:logout logout-url="/j_spring_security_logout" logout-success-url="/login.jsp?logout=success"
invalidate-session="true" />
</security:http>