Spring安全 - 自定义保持活动控制器

时间:2014-12-18 09:05:52

标签: java spring http session spring-security

是否可以使用keep alive控制器公开控制器,该控制器接收userId \ SessionID并刷新目标用户的会话?

即:

     @RequestMapping(value = "/keepalive", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(value = HttpStatus.OK)
public void keepalive(@RequestBody String userIdOrSessionId) {

      this.refreshSessionForUser(userIdOrSessionId);
}

1 个答案:

答案 0 :(得分:1)

如果您知道会话ID,那么您可以使用该会话ID发送请求(设置JSESSIONID cookie),并且servlet容器将重置该会话的超时(假设您的意思是“刷新“)。虽然您可以根据您正在使用的实际容器编写自定义代码,但我不知道有任何其他标准方法。

类似的东西:

URLConnection connection = new URL(yourKeepAliveUrl).openConnection();
connection.addRequestProperty("Cookie", "JSESSIONID=<theSessionId>");
connection.connect();

应该这样做。

实际保持活动的URL不必执行任何操作。你只需要一些方法来调用请求。