2016-11-02 2 views
0

현재 내 감사 테이블에 현재 사용자의 IP 주소를 기록하려고합니다. 현재 이것은 서버 IP를 잘못 로깅하고있는 InetAddress.getLocalHost().toString()처럼 이루어집니다.최대 절전 모드 : 로그 사용자 IP 주소

일반적으로 HttpRequest 객체를 autowiring을 통해이 작업을 수행 할 수 있지만 newRevision() 메서드 내에서 가능하지 않습니다. 내 수신기에서 재정의하고 있습니다.

+0

유일한 방법은 요청과 함께 클라이언트의 IP 주소를 알기 위해서는 요청에 접근 할 수 없지만 스레드가 요청을 처리하고 논리를 사용하여이 데이터를 내부에 저장할 수 있습니다 실 홀더 – karelss

답변

2

게시물 this을 볼 수 있습니다. 웹 응용 프로그램에서

ThreadLocal 변수를 설정하기위한 가장 좋은 장소는 일반적으로 ThreadLocal 것을 보장 웹 요청 처리기의 코드의 이전에 실행 Filter 또는 Interceptor 유사한 것이, 기본적으로 모든 구성 요소와 같은 코드 안에 것 변수가 설정되었습니다.

Envers 버전 엔티티 리스너에서 ThreadLocal에 액세스하고 값으로 사용자 정의 필드를 채우십시오.

요청 처리기 체인 끝에 ThreadLocal 변수를 반드시 지워야합니다.

관련 문제