首页 文章

Spring安全登录表单始终重定向到authfailed

提问于
浏览
0

我正在尝试将spring security应用于登录表单 . 这是登录表单:

<form:form action="j_spring_security_check" method="post" modelAttribute="userLogin">
<p>UserName: </p> <form:input type="text" path="name" />
<p>Password: </p> <form:input type="password" path="password" /><br>
<input type="submit" value="Sign In">
</form:form>

这是spring security xml

<http auto-config="true">
    <access-denied-handler />
    <intercept-url pattern="/user**" access="ROLE_USER" />
    <intercept-url pattern="/admin**" access="ROLE_ADMIN" />
    <form-login login-page='/login' username-parameter="username"
        password-parameter="password" default-target-url="/mainPage"
        authentication-failure-url="/login?authfailed" />
    <logout logout-success-url="/login?logout" />
</http>
<authentication-manager> <authentication-provider> <user-service> <user 
        name="user" password="user@123" authorities="ROLE_ADMIN" /> </user-service> 
        </authentication-provider> </authentication-manager>

当我提交表单时,即使我输入了正确的用户名和密码,它也会被重定向到网址'http://localhost:8080/SecurityTest/login?authfailed' .

2 回答

  • 0

    尝试

    <spring:url value="/j_spring_security_check" var="action" />
    
    <form:form action="${action}" method="post" modelAttribute="userLogin">
    
  • 0

    我找到了答案,问题出在表单中的路径变量:input tag . 应该将它命名为 username ,而我将其命名为 name .

相关问题