본문 바로가기

Spring Boot/Spring Boot

60 : SpringbootApi 관련 질문

SpringbootApi의 여러 질문 중..

 

어떤 API건 요청하는 특정 Requestbody에 대해 Exception을 내는 이유
즉 예외처리를 하는 이유는? (문제를 잘못 이해하고있었다..)

  • 데이터 무결성 보호
  • 시스템을 유지보수하는 개발자로 하여금 이상이 발생했을 때 빨리 조치(debug)하게 하기 위함

 

 


로그인 여부와 상관없이 호출할 수 있는 API 2개는? 왜 로그인 여부와 상관없이 호출 가능할까?
회원가입 - http://localhost:8080/api/member
로그인 - http://localhost:8080/SpringbootApi/authenticate

 

 

API를 호출할때 처음 JwtRequestFilter에서 토큰값을 확인하고 실행되기 때문에

로그인(토큰확인)을 해야지 Api를 호출할수 있다. 

하지만 여기서 제외처리 되는 2개의 Api가 있다. 바로 로그인 회원가입

public class JwtRequestFilter extends OncePerRequestFilter {

    private final JwtUserDetailsService jwtUserDetailsService;
    private final JwtTokenUtil jwtTokenUtil;

    private static final List<String> EXCLUDE_URL =
        Collections.unmodifiableList(
            Arrays.asList(
                    "/api/member",
                    "/authenticate"
            ));


클라이언트에서 요청이 들어오면 맨 처음 실행되는 인증필터 JwtRequestFilter 에서
EXCULD_URL 로 아래에 해당하는 URL을 제외시켜서  

  • /api/member
  • /authenticate

여기서 Collections에서 제공하는 unmodifiableList 는 무슨 뜻일까?
'Read-Only' 용도로만 사용할 수 있으며, 수정하려는 메소드(가령 set(), add(), addAll() 등)를 

호출하면 UnsupportedOperationException 이 발생한다는 것