티스토리 뷰

728x90
protected void resultRedirectStrategy(final HttpServletRequest request,
                                      final HttpServletResponse response,
                                      final Authentication authentication) throws IOException, ServletException {

    SavedRequest savedRequest = (SavedRequest) request.getSession().getAttribute("SPRING_SECURITY_SAVED_REQUEST");
    if (authentication.getAuthorities().contains(new SimpleGrantedAuthority("ROLE_ADMIN"))) {
        redirectStrategy.sendRedirect(request, response, "/admin");
    }
   if (savedRequest != null) {
        String targetUrl = savedRequest.getRedirectUrl();
        System.out.println("targetUrl: " + targetUrl);
        redirectStrategy.sendRedirect(request, response, targetUrl);
    } else {
        System.out.println("defaultUrl: " + defaultUrl);
        redirectStrategy.sendRedirect(request, response, defaultUrl);
    }
}

위와같이 if statement가 else로 연결되어 있지 않은 경우에 1가지 이상의 redirectStrategy가 결정되기 때문에 해당 에러가 발생한다.

 

...
redirectStrategy.sendRedirect(request, response, "/admin");
}
else if (savedRequest != null) {
    String targetUrl = savedRequest.getRedirectUrl();
...

이와 같이 if-else if-else if-else의 형태로 만들어 어떠한 경우라도 redirect 전략이 한 개가 될 수 있게 해야한다

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함