登录后无法正常运行Spring Security和JSF重定向

时间:2009-11-05 19:01:30

标签: jsf spring-security

我正在尝试将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控制台确认登录成功,它说“登录成功”

2 个答案:

答案 0 :(得分:0)

可以肯定的是,您没有使用AJAX提交,而是使用标准的HTML表单提交,是吗?

答案 1 :(得分:0)

您确定登录成功吗? 该行应该是:

FacesContext.getCurrentInstance().getExternalContext().redirect("/j_spring_security_check?j_username=" + userId + "&j_password=" + password);