2012-02-23 2 views
3

봄 MVC 3.1에서 웹 프로젝트를 작성하고 HandlerInterceptorAdapter를 확장하여 인터셉터 클래스를 구현하고 교장을 얻는 방법을 찾아야합니다. request.getUserPrincipal()을 시도하고 null을 반환합니다. request.getRemoteUser()를 시도하고 null을 반환합니다. Oauth 2 및 기본 인증을 사용합니다. 감사합니다. .봄 mvc를 사용하여 요격기에서 교장을 어떻게 얻을 수 있습니까?

+0

안녕과 어디에 있든지이 문제를 해결 한 당신은, 교장을 얻을 수 ...? 대답을 도와주세요. OAUTH + 인터셉터를 사용하고 있지만 작동하지 않습니다. –

답변

0

사용자가 인증되지 않은 경우 null을 반환합니다. 사용자가 request.getRemoteUser에 대한 요청하기 전에 인증을 받았습니다 있는지 확인합니다()

+0

사용자가 이미 인증되었습니다. preHandle, postHandle, afterCompletion, 에서 시도합니다. (SecurityContextImpl) sess.getAttribute ("SPRING_SECURITY_CONTEXT"))에서 인증을 얻으려고하면 getAuthentication()이 작동하지만 요청에서 가져와야합니다. 감사합니다. . –

4

당신이

SecurityContextHolder.getContext().getAuthentication().getPrincipal();

+1

인터셉터에서만 java.lang.NullPointerException을 리턴합니다. –

+0

이 응답이 작동합니다. NPE는 @shai.tap이 Spring Security를 ​​올바르게 연결하지 않았다는 것을 나타냅니다. – Paul

+0

@Paul이 디버깅하는 방법 ..? –

관련 문제