Table of Contents
Spring Boot Login check with Header
Header 를 이용해 로그인 체크 및 필요한 사용자 정보를 가져오는 방법을 정리합니다.
. . . . . . . . . . . . . . . . . . . .
로그인 체크
Repository 를 이용해 Header 에 대한 유효성 검사를 할 수 있습니다.
request.setAttribute()
를 이용해 사용자 정보를 세팅해 줄 수 있습니다.
@Component
@RequiredArgsConstructor
public class AccessAuthorizationFilter implements Filter {
private final String LOGIN_URL = "/v1/login/";
private final LoginBrowserRepository repository;
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
final HttpServletRequest httpServletRequest = (HttpServletRequest) request;
if (!LOGIN_URL.equals(httpServletRequest.getRequestURI())) {
String auth = httpServletRequest.getHeader("X-Authorization");
if (Validator.Empty(auth)) {
throw new UnknownUserException("잘못된 접근입니다.");
}
List<LoginBrowser> loginBrowserList = repository.getBrowser(auth, YNType.Y);
if (loginBrowserList.size() == 0) {
throw new UnknownUserException("잘못된 접근입니다.");
}
request.setAttribute("user", loginBrowserList.get(0).getId());
}
chain.doFilter(request, response);
}
}