我是新來的春季安全,所以我試圖用Spring MVC中來處理無效的登錄,但結束了找不到網頁404春季安全無效的登錄處理
在我的安全-context.xml中,我有這AuthenticationProvider
處理所有的身份驗證登錄,所以只是基本上檢查用戶的帳戶和密碼,但出於某種原因,它一直說,authentication-failure-url
沒有找到404,每當有一個無效的登錄嘗試。
<security:authentication-manager alias="authenticationManager">
<security:authentication-provider ref="AuthenticationProvider"/>
</security:authentication-manager>
<bean id="preAuthenticationFilter"
class="authentication.PreAuthenticationFilter"
p:authenticationManager-ref="authenticationManager" />
<security:http auto-config="true">
<security:intercept-url pattern="/member/**" access="MEMBER" requires-channel="https"/>
<security:form-login login-page="/login"
username-parameter="email"
password-parameter="password"
default-target-url="/member/"
authentication-failure-url="/loginfailed" />
<security:custom-filter position="PRE_AUTH_FILTER" ref="preAuthenticationFilter" />
</security:http>
但我確實有一個相應的控制器偵聽該URL模式處理無效登錄。
@Controller
public class LoginController
{
@RequestMapping(value = "/loginfailed", method = RequestMethod.GET)
public String loginError(ModelMap model)
{
model.addAttribute("error", "true");
return "login";
}
}
** * *UPDATE* ** * *
在某些點上我AuthenticationProvider
驗證用戶,並拋出一個異常(我不不知道是否有問題)每當用戶有錯誤的憑證
@Component
public class AuthenticationProvider{
private User validateUser(String userName, String password)
{
try{
//authenticate user's info
.......
}
catch (UnauthorizedAccessException e)
{
throw new BadCredentialsException(e);
}
}
}
不'方法= RequestMethod.GET'工作? – Xaerxess 2013-04-08 15:57:03
不......我嘗試了GET和POST – peter 2013-04-08 15:58:03
在我看來,這不是Spring安全問題,而是MVC配置 - 對'/ loginfailed'返回200狀態執行簡單的POST/GET請求嗎? – Xaerxess 2013-04-08 16:09:48