如何在logout侦听器中获取http会话ID?

时间:2016-02-20 11:45:46

标签: java spring session spring-security logout

我的监听器监听用户注销。 我需要知道这个监听器的会话ID。

public class MyLogoutSuccessHandler extends SimpleUrlLogoutSuccessHandler {
    @Autowired
    private UserService userService;

    @Override
    public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication)
            throws IOException, ServletException {
         RequestContextHolder.currentRequestAttributes().getSessionId();
    }
}

生成

  

找不到线程绑定请求:您是指在实际Web请求之外的请求属性,还是在最初接收的线程之外处理请求?如果您实际上是在Web请求中操作并仍然收到此消息,则您的代码可能在DispatcherServlet / DispatcherPortlet之外运行:在这种情况下,请使用RequestContextListener或RequestContextFilter来公开当前请求。

如何在具体情况下修复它?

1 个答案:

答案 0 :(得分:0)

请参阅StackOverflow上的{{3}}。将以下内容添加到您的$query = "SELECT `username` FROM `database` WHERE `result` LIKE '%" . $arguments . "%'"; $connect = db_connect(); $query = "SELECT `result` FROM `database` WHERE `username` = '" . $arguments . "';"; $get_users = db_query($query, $connect); mysql_close($connect); $data = $get_users[0]->result; if ($get_users[0] == null) { die("No Results Found!"); } else { die($data); }

web.xml