Shibboleth IDP自定义登录处理程序将错误抛出到idp错误处理程序的最佳方法

时间:2014-12-11 22:46:41

标签: java jsp servlets shibboleth

我有一个shibboleth idp 2.4.0实现,我有一个自定义登录处理程序。我试过从自定义处理程序的servlet中抛出ServletException,但是生成的idp error.jsp没有显示任何特定的错误消息。我应该从登录处理程序的servlet中抛出一个特定的Exception类型吗?任何见解都会有所帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

我能够发现Shibboleth IDP error.jsp在请求中从Throwable获取任何错误消息(如果存在),作为关键字AbstractErrorHandler.ERROR_KEY下的属性。所以在我的servlet中,我捕获了service方法中的所有异常,自定义异常并将其设置为请求属性,然后抛出ServletException。结果。我的自定义错误消息显示在error.jsp。

我在自定义登录处理程序servlet的service()方法中使用了以下示例(排序):

Throwable myCustomException = new MyServletException("my servlet error messaging");
request.setAttribute(AbstractErrorHandler.ERROR_KEY, myCustomException);
throw new ServletException(myCustomException);