-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
whitelist관련 질문올립니다.
22.08.25 20:47 작성 조회수 338
1
안녕하세요. whitelist관련 질문올립니다. 제가 fonts를 사용해서 log가 너무 많이 찍혀 /fonts를 whitelist에 추가했습니다. 그런데 loginCheckFilter에만 넣었는데 logFilter에도 whitelist가 적용되는데 원래 이게 맞나요?
답변을 작성해보세요.
0
marlone Johnathan
질문자2022.08.26
#LoginCheckFilter
@Slf4j
public class LoginCheckFilter implements Filter {
private static final String[] whiteList = {"/", "/memberInsertForm", "/login", "/logout", "/css/*", "/img/*", "/fonts/*"};
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 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) {
log.info("미인증 사용자 요청 {}", requestURI);
//로그인 성공시 다시 페이지로 돌아오기 위해
httpResponse.sendRedirect("/login?redirectURL="+ requestURI);
return;
}
}
chain.doFilter(request, response);
} catch (Exception e){
throw e;
}finally{
log.info("인증 체크 필터 종료 {}", requestURI);
}
/**
* whiteList 의 경우 인증 체크 x
*/
}
private boolean isLoginCheckPath(String requestURI){
return !PatternMatchUtils.simpleMatch(whiteList, requestURI);
}
}
코드는 이렇습니다. requestURI에 /fonts가 찍히네요..
0
0
marlone Johnathan
질문자2022.08.25
저 혹시 계속 requestURI에 원하는 자원이 안찍히고 /fonts/***** 이런것들이 찍히는데 원하는 자원으로 찍을 수 있는 방법이 없을까요?
David
2022.08.25
그럼 /fonts로 시작되는 uri는 로그를 찍지 않고, 다음 필터로 넘어가게 처리하시면 될 것 같습니다.
filter에는 exclude pattern을 기능으로 제공하지 않기 때문에 직접 만드셔야 합니다.
marlone Johnathan
질문자2022.08.25
fonts로 log를 찍지 않아도 아래 사진처럼 requestURI에 fonts가 붙어서 나오는데 이건 어떻게 해결할 수 있을까요??
답변 4