我的JBOSS 4中安装了CAS 3.5.2和欢迎Web应用程序。
我通过实现接口编写了自定义AuthenticationHandler:
org.jasig.cas.authentication.handler.AuthenticationHandler。
我的AuthenticationHandler正确验证,但如果验证正确,我想生成一个带有response.addCookie方法的cookie。所以我需要访问HttpServletResponse。问题是我在authenticate方法中收到的唯一信息是[Credentials credentials]参数。
我怎么能这样做?
答案 0 :(得分:1)
实际上,身份验证处理程序仅将凭据作为输入参数。但是,您可以使用ExternalContextHolder
对象(来自SpringWebflow)获取ServletExternalContext
,从中获取HttpServletRequest
...
答案 1 :(得分:1)
最后我找到了2个解决方案。
首先,我在web xml中添加了一个过滤器,它将响应放在ThreadLocal中,并从AuthenticationHandler中检索。
有一天,寻找另一件事我找到了一个更简单的方法:
HttpServletResponse res = WebUtils.getHttpServletResponse(RequestContextHolder.getRequestContext());
我希望它对其他人有用。