Spring MVC 4 애플리케이션에서 websocket 연결을 통해 호출 된 호출에서 메서드의 매개 변수로 this를 추가 할 때 java.security.Principal
객체를 얻을 수 있습니다.WebSocket 세션에서 UserDetails 객체에 액세스 Spring MVC
그러나이 basicly은 단지 그것의 이름을 가지고, 내가 로그인하는 동안 생성 된 (확장) UserDetails
객체가 필요합니다.
SecurityContextHolder.getContext().getAuthentication()
반환 null
. Spring이 websocket 연결을 처리하기위한 특별한 세션을 만들기 때문에 이해했다.
질문 : websocket 세션/스레드 내부에서 securitycontext에 액세스하는 방법이 있습니까?
(세션 빈에 액세스 할 수 있으면 충분합니다.)
기타 : 저는 Spring Session을 사용하여이 문제를 해결했습니다. http://projects.spring.io/spring-session/. webSockets 세션과 httpsession 사이의 매핑을 유지해야하기 때문에이 솔루션이 마음에 들지 않았습니다. 추악하고 불안정한 느낌이지만, 나는 그것을 작동시켜야했다. 보다 세련된 솔루션을 받으려면이 질문을 계속 열어 두십시오. – user2132072