我正在尝试将Spring Security与我的JSF应用程序集成。 我能够显示登录页面,但在成功登录后,受保护的URL不会显示,它会保留在登录页面上。
我的applicationContext.xml:
<security:http auto-config="true" access-denied-page="/login/loginerror.jspx">
<security:intercept-url pattern="/restricted/**" access="ROLE_SU"/>
<security:form-login login-page="/login/login.jspx"
default-target-url="/restricted/equipment.jspx"/>
<security:logout logout-success-url="/logoutSuccess.jspx"/>
</security:http>
<security:authentication-provider user-service-ref="userDetailsService"/>
<bean id="userDetailsService" class="com.teach.security.UserDetailsServiceImpl">
<property name="rolesDao" ref="RolesDAO"/>
</bean>
我的JSF托管bean,当用户在登录页面上点击提交时调用的方法:
public void login()
{
FacesContext.getCurrentInstance().getExternalContext().redirect("/spring-authentication/j_spring_security_check?j_username=" + userId + "&j_password=" + password);
}
我的Java控制台确认登录成功,它说“登录成功”
答案 0 :(得分:0)
可以肯定的是,您没有使用AJAX提交,而是使用标准的HTML表单提交,是吗?
答案 1 :(得分:0)
您确定登录成功吗? 该行应该是:
FacesContext.getCurrentInstance().getExternalContext().redirect("/j_spring_security_check?j_username=" + userId + "&j_password=" + password);