Ich habe nur Spring Security eingerichtet und es funktioniert super. Ich kann mich mit meinem benutzerdefinierten Formular an- und abmelden. Ich habe mich dann mehrmals hintereinander ohne Probleme eingeloggt. Seltsamerweise, wenn ich versuche, mich mit dem falschen Passwort anzumelden, kann ich mich nicht mehr einloggen - es bringt mich jedes Mal zur Seite "loginFailed", wenn ich versuche, mich anzumelden. Kann jemand das beheben?Spring Security - kann nach der Eingabe des ungültigen Passworts nicht einloggen
Hier ist meine Sicherheits-config.xml:
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.0.3.xsd">
<http use-expressions="true">
<intercept-url pattern="/secureA.htm" access="isAuthenticated()" />
<intercept-url pattern="/secureB.htm" access="isAuthenticated()" />
<form-login login-page="/login.htm" default-target-url="/secureA.htm"
authentication-failure-url="/loginFailed.htm"/>
<logout logout-success-url="/login" />
</http>
<authentication-manager>
<authentication-provider>
<password-encoder hash="sha">
</password-encoder>
<user-service>
<user name="user" password="pass"
authorities="ROLE_USER, ROLE_ADMIN" />
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>
Mein Login-Formular:
<form action="<c:url value='j_spring_security_check' />" method="post">
Username: <input type="text" name="j_username" /><br/>
Password: <input type="password" name="j_password" /><br/>
<input type="submit" value="Login" /><br/>
</form>
Mein Login-Controller:
@Controller
public class LoginController {
@RequestMapping(value = "/login", method = RequestMethod.GET)
public String welcome(ModelMap m) {
return "login";
}
@RequestMapping(value = "/loginFailed", method = RequestMethod.GET)
public String failed(ModelMap m) {
m.addAttribute("error", "Invalid username or password");
return "login";
}
@RequestMapping("logout.htm")
public String logout(ModelMap m) {
return "redirect:login.htm";
}
}