2014-12-18 3 views
0

keepIdentifier가있는 컨트롤러를 노출하여 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

당신이 세션 ID를 알고 있다면, 당신은 단지 세션의 제한 시간을 재설정하는 세션 ID합니다 (JSESSIONID 쿠키를 설정)과 서블릿 컨테이너를 사용하여 요청을 보낼 수 있습니다 (가정 그게 "새로 고침"이란 뜻입니다). 당신이 사용하고있는 실제 컨테이너를 기반으로 커스텀 코드를 작성할 수는 있지만, 다른 표준적인 방법은 알지 못합니다. 같은

뭔가 :

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

가 수행해야합니다.

실제 keep-alive URL은 아무 것도 할 필요가 없습니다. 요청을 호출 할 수있는 방법이 필요합니다.

+0

"검은 마법"의 냄새가 있지만이 작품은 더 직선적 인 방법이 존재하기를 바랐다. – Urbanleg

관련 문제