0

在 MyLogoutHandler 类中,我确实覆盖了 determineTargetUrl() 方法,在这里我正在调用MyUserDetials userDetails = (MyUserDetials)userContextManager.getUserDetails(),但 userDetails 为空。

这是配置:

<security:logout  
invalidate-session="true"
success-handler-ref="MyLogoutHandler"
logout-url="/auth/logout"/>

我注意到,由于 invalidate-session="true",它为空?但我喜欢保持这个属性“真实”,我可以有任何其他方式来配置吗?

我的目标是:我需要从 userDetails 中提取一些信息,以便在用户单击注销后进行 Web 服务调用。

谢谢你。

4

2 回答 2

2

我解决了这个问题。我创建了 My Own Handler 并覆盖了:

public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {...}

的方法*SimpleUrlLogoutSuccessHandler*。现在我可以*authentication*根据我的 spring 配置获取对象。

谢谢你。

于 2013-03-06T06:07:28.123 回答
2

您需要创建自己的LogoutHandler,实现

 void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication);

将它的实现添加到security:logout标签。从authentication参数获取用户详细信息后。

于 2013-03-04T12:12:14.463 回答