[SPRING] 스프링 보안 : 초기 타겟 URL을 얻는 방법
SPRING스프링 보안 : 초기 타겟 URL을 얻는 방법
제한된 URL에 봄 보안을 사용하고 있습니다. 동일한 페이지에서 가입 및 로그인 페이지를 제공하려고합니다.
로그인시 스프링 보안이 제한된 페이지로 전송됩니다. 그러나 가입 절차가 끝나면 제한된 페이지로 리디렉션 할 수 있도록 대상 URL을 가입 프로세스에 전달하려고합니다.
사용자가 리디렉션 된 실제 URL을 얻는 방법
어떤 아이디어?
해결법
-
==============================
1.이것은 스프링 보안으로부터 URL을 얻는 방법입니다.
이것은 스프링 보안으로부터 URL을 얻는 방법입니다.
SavedRequest savedRequest = (SavedRequest)session.getAttribute( AbstractProcessingFilter.SPRING_SECURITY_SAVED_REQUEST_KEY); String requestUrl = savedRequest.getFullRequestUrl();
-
==============================
2.스프링 보안 3.0에서는 약간의 변화가 있었기 때문에 위의 코드 조각은 더 이상 작동하지 않습니다. 그래도 트릭을 수행합니다.
스프링 보안 3.0에서는 약간의 변화가 있었기 때문에 위의 코드 조각은 더 이상 작동하지 않습니다. 그래도 트릭을 수행합니다.
protected String getRedirectUrl(HttpServletRequest request) { HttpSession session = request.getSession(false); if(session != null) { SavedRequest savedRequest = (SavedRequest) session.getAttribute(WebAttributes.SAVED_REQUEST); if(savedRequest != null) { return savedRequest.getRedirectUrl(); } } /* return a sane default in case data isn't there */ return request.getContextPath() + "/"; }
-
==============================
3.봄 보안 4.1.4 :
봄 보안 4.1.4 :
@Override public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { SavedRequest savedRequest = new HttpSessionRequestCache().getRequest(request, response); if (savedRequest != null) { response.sendRedirect(savedRequest.getRedirectUrl()); } else{ response.sendRedirect("some/path"); } }
from https://stackoverflow.com/questions/631217/spring-security-how-to-get-the-initial-target-url by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] PreAuthorize가 컨트롤러에서 작동하지 않습니다. (0) | 2019.01.17 |
---|---|
[SPRING] Pageable bean을 인스턴스화하지 못했습니다. (0) | 2019.01.17 |
[SPRING] PropertyDescriptor의 동작이 Java 1.6에서 1.7로 변경된 이유는 무엇입니까? (0) | 2019.01.17 |
[SPRING] Spring @RequestBody - 다른 유형의 목록을 포함하지만 (동일한 인터페이스) (0) | 2019.01.17 |
[SPRING] Spring AMQP Listener Container의 동시성은 어떻게 구현되고 있는가? (0) | 2019.01.17 |