Spring Boot Login check with Header

By | 2023년 1월 15일
Table of Content

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);
    }
}

답글 남기기