spring security 3.0 m2 기준 .
AbstractAuthenticationTargetUrlRequestHandler.java
66 line ~~
private String determineTargetUrl(HttpServletRequest request, HttpServletResponse response) { if (isAlwaysUseDefaultTargetUrl()) { return defaultTargetUrl; } // Check for the parameter and use that if available String targetUrl = request.getParameter(targetUrlParameter); if (StringUtils.hasText(targetUrl)) { try { targetUrl = URLDecoder.decode(targetUrl, "UTF-8"); } catch (UnsupportedEncodingException e) { throw new IllegalStateException("UTF-8 not supported. Shouldn't be possible"); } logger.debug("Found targetUrlParameter in request: " + targetUrl); return targetUrl; } if (useReferer && !StringUtils.hasLength(targetUrl)) { targetUrl = request.getHeader("Referer"); logger.debug("Using Referer header: " + targetUrl); } if (!StringUtils.hasText(targetUrl)) { targetUrl = defaultTargetUrl; logger.debug("Using default Url: " + targetUrl); } return targetUrl; }
66 line ~~
private String determineTargetUrl(HttpServletRequest request, HttpServletResponse response) { if (isAlwaysUseDefaultTargetUrl()) { return defaultTargetUrl; } // Check for the parameter and use that if available String targetUrl = request.getParameter(targetUrlParameter); if (StringUtils.hasText(targetUrl)) { try { targetUrl = URLDecoder.decode(targetUrl, "UTF-8"); } catch (UnsupportedEncodingException e) { throw new IllegalStateException("UTF-8 not supported. Shouldn't be possible"); } logger.debug("Found targetUrlParameter in request: " + targetUrl); return targetUrl; } if (useReferer && !StringUtils.hasLength(targetUrl)) { targetUrl = request.getHeader("Referer"); logger.debug("Using Referer header: " + targetUrl); } if (!StringUtils.hasText(targetUrl)) { targetUrl = defaultTargetUrl; logger.debug("Using default Url: " + targetUrl); } return targetUrl; }
위에 놈은 최종적으로 로그인 프로세스를 탄후에 .. 리턴을 해주는 url을 구하는 부분입니다.
alwaysUseDefaultTargetUrl 이 우선적으로 false 이고 .. (기본값 false)
request.getParameter(targetUrlParameter); 이놈 즉..
파라미터에 targetUrlParameter 이름. 즉
public static String DEFAULT_TARGET_PARAMETER = "spring-security-redirect";
private String targetUrlParameter = DEFAULT_TARGET_PARAMETER;
이놈을 설정해주면 ..
로그인 후에 원하는 페이지로 보낼 수 있습니다..
안정한다면 기본으로 정한 default 페이지로 날라가구요 ..ㅎㅎ
머.. 그냥 기억용으로 남김.
댓글을 달아 주세요
저기..궁금한점이 있는데요
2009.12.26 02:17 [ ADDR : EDIT/ DEL : REPLY ]뷰를 어떻게 string으로 바로 하셨죠?..
저는 jsp랑 tiles설정만 해놨는데 어떻게 하셨는지 알려주세요..ㅎㅎ
저도 궁금한게 있는데요... 뷰를 어떻게 스트링으로 바로 했냐라는 질문이 좀 ? 궁금해지네요 ..
2009.12.28 13:16 신고 [ ADDR : EDIT/ DEL ]저건 시큐리티. 3.0 m2 기준의 원본 소스이구요..
바로 위에 라인 보면 ..
protected void handle(HttpServletRequest request, HttpServletResponse response, Authentication authentication)
throws IOException, ServletException {
String targetUrl = determineTargetUrl(request, response);
RedirectUtils.sendRedirect(request, response, targetUrl, useRelativeContext);
}
이런 놈이 있죠 ..;; 그냥 url을 리다이렉트 시키죠 ;; 그리고 이건... ajax 로그인시에 리다이렉트 해버려서... 봄싹에선 살짝 수정해서 쓰고 있죠 ;;ㅎ