내 응용 프로그램 계층에서 메소드 서명을 단순화하기 위해 어떤 사용자가 로그인했는지 알고 싶습니다. 예를 들어 메소드 (소유자, 객체)가 단순히 메소드 (객체) 일 수 있습니다. 스프링을 내 응용 프로그램 계층에서 없애고 싶기 때문에 보안을 위해 스프링 보안을 사용합니다. 그래서 그 목적을 위해 별도의 계층 (DTO 변환)이 있습니다 - 외관 (응용 프로그램 서비스 용 어댑터)과 같습니다.응용 프로그램 계층의 세션 기능은 무엇입니까?
스프링을 사용하지 않고 응용 프로그램 계층에서 사용자 컨텍스트를 인식하도록 만드는 방법은 무엇입니까?
[this] (https://wiki.openclinica.com/doku.php?id=developerwiki:interceptor)와 같은 것을 의미합니까? – kboom
@Kboom 유사합니다. 그러나이 솔루션을 사용하면'HttpServletRequest' 또는'HttpSession' 객체를 전달해야합니다. 대신'정적 ThreadLocal'에 등록해야합니다.이 클래스는 동일한 'Thread'에있는 모든 클래스에서 액세스 할 수 있습니다. [도움이 될 수도] (http://stackoverflow.com/questions/2784009/why-should-java-threadlocal-variables-be-static). –
아니면 SecurityContextHolder.getContext()를 해당 스레드 로컬에 바인딩하는 것이 훨씬 쉬울까요? 내가 틀렸다면 제발 제발. 나는 가장 간단한 해결책을 찾고있다. :). – kboom