Spring Security의 인가 실패시 결과 커스텀하기
Java에서 config 설정 방법으로 남김
AccessDeniedHandler()를 커스텀 해야함
public class CustomAccessDeniedHandler implements AccessDeniedHandler { @Override public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException e) throws IOException, ServletException { //스프링 시큐리티 로그인때 만든 객체 Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); //현재 접속 url를 확인 UrlPathHelper urlPathHelper = new UrlPathHelper(); String originalURL = urlPathHelper.getOriginatingRequestUri(request); //로직을 짜서 상황에 따라 보내줄 주소를 설정해주면 됨 response.sendRedirect("/"); } } | cs |
config에 설정
@Override protected void configure(HttpSecurity http) throws Exception { http .addFilterBefore(authenticationFilter(), UsernamePasswordSessionAuthenticationFilter.class) .authorizeRequests() .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll() .and() .headers().frameOptions().disable() //이부분 .and() .exceptionHandling() .accessDeniedHandler(new CustomAccessDeniedHandler()) | cs |
끝~~
권한이 없지만 권한에 따라서 보여야할 페이지가 다를때 유용하게 사용
감사합니다.
참고 : https://blog.jiniworld.me/53
댓글
댓글 쓰기