【问题标题】:Spring security - custom keep alive controllerSpring security - 自定义保持活动控制器
【发布时间】:2015-02-17 00:21:34
【问题描述】:

是否可以公开一个带有保持活动控制器的控制器,该控制器接收 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);
}

【问题讨论】:

    标签: java spring http session spring-security


    【解决方案1】:

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

    类似:

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

    应该这样做。

    实际的保持活动 URL 不必做任何事情。您只需要某种方式来调用请求。

    【讨论】:

    • 这行得通,虽然它有“黑魔法”的味道;)我希望存在更直接的方法。
    猜你喜欢
    • 2013-07-18
    • 1970-01-01
    • 2015-11-08
    • 1970-01-01
    • 2017-06-04
    • 2011-08-23
    • 2014-07-28
    • 2013-07-22
    • 2014-08-23
    相关资源
    最近更新 更多