我已按照以下方式配置了弹出身份验证,但未按预期工作
<sec:http auto-config="true">
<!-- Restrict URLs based on role -->
<sec:intercept-url pattern="pages/login.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<sec:intercept-url pattern="/css/style.css" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<sec:intercept-url pattern="pages/**" access="ROLE_USER" />
<!-- Override default login and logout pages -->
<sec:form-login login-page="/login.jsp"
default-target-url="/pages/products.xhtml"
authentication-failure-url="/login.html?login_error=1" />
<sec:logout logout-url="/logout" logout-success-url="/login.jsp" />
</sec:http>
在服务器启动时我已经被重定向到login.jsp,如果我使用登录表单我被重定向到products.xhtml到目前为止很好但是如果我直接访问products.xhtml,它只是允许我访问product.xhtml (即使在关闭更明亮或甚至在服务器重启后),而不是重定向到login.jsp。任何人都可以告诉我我到底错过了什么吗?
谢谢&amp;问候 维杰
答案 0 :(得分:1)
您的模式和网址不一致。您有登录页面的“/login.jsp”和intercept-url
模式的“pages / login.jsp”。
尝试使用:
<http pattern="/css/**" security="none">
<http>
<intercept-url pattern="/login.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<intercept-url pattern="/**" access="ROLE_USER" />
<form-login login-page="/login.jsp"
default-target-url="/pages/products.xhtml"
authentication-failure-url="/login.html?login_error=1" />
<logout logout-url="/logout" logout-success-url="/login.jsp" />
</http>
特定请求的调试日志将准确解释它为何受到保护。
答案 1 :(得分:0)
确保您没有Cookie或有效会话...