2023/10월

23-10-18 그래들에 스웨거 설정중인데 왜 안 되지

parkrams 2023. 10. 18. 11:40
728x90
    // static 디렉토리 하위 파일은 인증을 무시함
    // 여기에 스웨거 도 인증 무시 추가
    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/css/**", "/font/**", "/img/**", "/js/**","/editor/**", "/api/**");
        web.ignoring().antMatchers("/v2/api-docs", "/configuration/ui",
                "/swagger-resources/**", "/configuration/security",
                "/swagger-ui/index.html", "/webjars/**");
    }
  • 여기에 설정도 해봤는데 안 되고
  • // 가장 넓은 부분이 가장 위 위에서 아래로 범위 지정 httpSecurity.authorizeRequests()
  • 인증되지 않는 사용자를 해당 경로로 이동하는 시큐리티를 설정 했지만 인증 무시하고 스웨거 띄우게 해놨는데 안 됐다.. 이유를 찾아봅세
// 인증되지 않은 사용자의 요청에 에러 발생시키고, 나머지는 로그인 페이지로 리다이렉트 시킴
public class CustomAuthenticationEntryPoint implements AuthenticationEntryPoint {

    @Override
    public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException {

        if("XMLHttpRequest".equals(request.getHeader("x-requested-with")))
            response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized");

        else
            response.sendRedirect("/member/login");
    }
}
  • 하는 도중 복습
인터페이스 = 공통규격? 

상수 : 인터페이스에서 값을 정해줄테니 함부로 바꾸지 말고 제공해주는 값만 참조해라 (절대적)

추상메소드 : 가이드만 줄테니 추상메소드를 오버라이팅해서 재구현해라. (강제적)

디폴트메소드 : 인터페이스에서 기본적으로 제공해주지만, 맘에 안들면 각자 구현해서 써라. (선택적)

정적메소드 : 인터페이스에서 제공해주는 것으로 무조건 사용 (절대적)



오버로딩(Overloading) : 같은 이름의 메서드 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술

같은 이름의 함수(메서드)를 여러개 정의하고, 매개변수의 유형과 개수를 다르게 하여 다양한 유형의 호출에 응답할 수 있게 된다.


오버라이딩(Overriding) : 상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의해서 사용

상위 클래스가 가지고 있는 멤버변수가 하위 클래스로 상속되는 것처럼 상위 클래스가 가지고 있는 메서드도 하위 클래스로 상속되어 하위 클래스에 사용할 수 있다. 또한, 하위 클래스에서 메서드를 재정의해서도 사용할 수 있다.

쉽게 말해 메서드의 이름이 서로 같고, 매개변수가 같고, 반환형이 같을 경우에 상속받은 메서드를 덮어쓴다고 생각. ' 부모클래스의 메서드는 무시하고, 자식 클래스의 메서드 기능을 사용하겠다'와 같다.
728x90