处理其他异常并在Spring安全性中抛出自定义错误消息

时间:2013-06-28 10:14:09

标签: spring spring-security

我正在使用Spring 2.5。我想做以下事情: 在Spring UserDetailsS​​ervice的重载loadUserByUsername方法中,我想抛出一个自定义异常,并在该异常上在登录页面上给出一个自定义错误消息。 任何人都可以建议我如何处理这个自定义异常。

1 个答案:

答案 0 :(得分:1)

您可以扩展AbstractHandlerExceptionResolver并在此类中处理您的异常。代码不完整,但您可以从该部分理解这个想法。

public class ExceptionResolver extends AbstractHandlerExceptionResolver {

@Override
protected ModelAndView doResolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
     ModelAndView mav;
     if(ex instanceof YourException){
         mav = loginController.showLoginPage();
         mav.addObject("errorMessage","Some error message text.");
         \\also you can change response code here or add some logic
     }
     else {
       \\some another page
     }
     return mav;
}

还将此添加到applicationContext.xml(或带有spring context配置的其他文件):

<bean class="com.mycompany.ExceptionResolver" />