필터가 제가 이해한게 맞을까요?
381
작성한 질문수 43
@Slf4j
public class LoginCheckFilter implements Filter {
private static final String[] whiteList = {"/","/members/add","/login","/logout","/css/*"};//위 uri 들은 필터x
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
String requestURI = httpRequest.getRequestURI();
HttpServletResponse httpResponse = (HttpServletResponse) response;
try {
log.info("인증 체크 필터 시작{}",requestURI);
if(isLoginCheckPath(requestURI)){//화이트 리스트가 아니면
log.info("인증 체크 로직 실행 {}",requestURI);
HttpSession session = httpRequest.getSession(false);//로그인시 생성된 세션을 불러와서 변수에 저장
if(session == null || session.getAttribute(SessionConst.LOGIN_MEMBER) == null){//null 이면 로그인 안된것
log.info("미인증 사용자 요청 {}", requestURI);
//로그인으로 redirect + 내가 url에 입력한 주소
httpResponse.sendRedirect("/login?redirectURL=" + requestURI);
return;//리다이렉트하고 끝(finally 항상 호출)
}
}
log.info("다음 필터");
filterChain.doFilter(request,response);
log.info("다음 필터가 있는지");
}catch (Exception e){
throw e;//예외 로깅 가능 하지만, 톰캣까지 예외를 보내주어야 함
}finally {
log.info("인증 체크 필터 종료 {}", requestURI);
}
}
/**
* 화이트 리스트의 경우 인증 체크x
*/
private boolean isLoginCheckPath(String requestURI){
return !PatternMatchUtils.simpleMatch(whiteList,requestURI);
}
}이 코드에서
controller를 호출하기전에 필터에서 인증을 처리해주고
인증이 완료됐다면
controller로 이동해서 로직을 처리한다 생각하면 될까요?
이미지 업로드와 db 트랜잭션 묶는법
0
58
1
Could not resolve org.springframework.boot:spring-boot-starter-validation:2.4.4
0
78
2
MessageSourceTest 코드
0
56
1
인터셉터 에러 설정
0
61
1
resolveArgument()메서드 질문
0
65
1
43강 검증1 에서 실패 로직 관련 질문있습니다.
0
71
2
타임리프 3.X 버전 rendering, serializer 에러 해결 방법
2
141
3
스프링 빈에 등록이 안되는거 같은데 어떻게 하면 좋을까요?ㅠㅠ
0
103
3
pdf 오타 문의
0
61
1
ItemUpdateForm 검증 관련 질문입니다.
0
56
1
22page 링크 주소 변경
0
61
2
특정 데이터와 파일을 함께 저장 시, 테이블 구조 질문
0
57
1
섹션3번 수업에 대한 질문입니다.
0
89
2
@Autowired 보다 더 좋은 방법이 어떤 걸까요?
0
91
2
타입컨버터 가 람다랑 비슷해 보이는데 저의 생각이 맞는지?.
0
72
1
자바스크립트 인라인에서 객체 직렬화 시 오류가 납니다
0
150
3
스프링부트 - 오류페이지2 에서 500.html 에서 쓰인 객체 질문
0
69
1
톰캣 에러 페이지가 안보입니다.
0
113
2
apiEceptionController에서 센드 에러 호출하면 안되는지?
0
85
1
세션 타임아웃시 쿠키 삭제 방법이 없나요?
0
131
2
ApiExceptionController 질문드립니다.
0
68
1
셀렉박스 챕터에서 option value에 ==배송 방식 선택== 이것을 넣은 이유가 궁금함, 이렇게 구상해도 되는지?
0
68
1
MemberRepository 필드의 fianl 선언 유무
0
89
2
혹시 index.html 에서는 fragment 사용이 안되는건가요
0
62
1





