전체 글(153)
-
스웨거로 작업한 API를 html 문서로 저장하기
본 포스팅은 스웨거로 작업한 API를 html 문서로 저장하는법을 다룹니다. 1단계 http://localhost:8080/swagger-ui/index.html#/ 로 접속해 제목 아래에 있는 링크로 접속한다. 2단계 출력되는 json을 저장한다. 3단계 https://editor.swagger.io/로 접속해 방금 만든 json 파일을 import한다. 4단계 html로 export한다. 에러발생 간혹가다 export가 안되는 경우가 있는데, 그때는 requestdto, responsedto쪽 Schema 어노테이션을 수정하면 된다!
2024.03.06 -
[Spring Security] URI에 따라 접근 권한 부여하기 최신 버전
본 포스팅은 Spring Security에서 URI별로 접근 권한을 다르게 부여하는 최신 방법을 다룹니다. chatGPT에게 물어보면 아래와 같이 대답해줍니다. 하지만, 이는 deprecated된 방법이므로 최신 방법으로 사용해야합니다. 이전 방법 @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http.sessionManagement((sessionManagement) -> sessionManagement.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .authorizeHttpRequests((authorizeHttpRequests) -..
2024.03.05 -
[Spring Security] 최신! 로그인 결과를 ResponseBody에 나타내는 법
본 포스팅은 Spring Security에서 로그인 결과를 ResponseBody에 나타내는 법을 다룹니다. 문제 상황 Spring Security를 이용하여 인증 및 인가를 진행하고, JWT를 인증방식으로 사용하여 UserDetails, UserDetailsService를 상속받아서 사용하고 있음. 아래와 같이 로그인을 구현할 때, Swagger ResponseBody에 아무것도 표현되지 않는 상태 @Operation(summary = "유저 로그인", description = "유저 로그인 사용할 정보를 입력합니다.") @PostMapping("/user/login") public ResponseEntity login(@RequestBody LoginRequestDto requestDto) { try..
2024.03.05 -
[Spring] Failed to load remote configuration.
본 포스팅은 Swegger 사용 중 접근 허가와 관련된 에러인 "Failed to load remote configuration"에 대해 다룹니다. 에러 화면 Spring Security는 spring 서버에서 인증 및 인가를 다뤄주는 라이브러리입니다. Spring Security를 이용하여 인증 및 인가를 처리하고 swegger를 이용하려고 했을 때, 아래와 같은 화면이 뜨고 403 에러가 발생하는 것을 알 수 있었습니다. 설정들 swagger를 사용하기 위해 application.properties에 아래와 같이 추가하고 gradle에 의존성 추가할 때, 스프링 부트가 3.0 버전이상이라 아래와 같이 추가해주었습니다. 그리고 SwaggerConfig 파일에 아래와 같이 @Configuration pu..
2024.03.01 -
[Java] 초간단! 쿠키, 세션, 토큰
본 포스팅은 클라이언트와 서버가 인증, 인가하는 방식인 쿠키, 세션, 토큰에 대해 다룹니다. HTTP의 특성 웹 클라이언트와 서버는 HTTP라는 프로토콜을 이용하여 통신합니다. HTTP는 비연결성과 무상태성의 특징을 가지고 있습니다. 비연결성 비연결성은 서버와 클라이언트가 항상 연결되어있지는 않다는 것입니다. 무상태성 무상태성은 서버가 클라이언트의 상태를 저장하지 않는다는 것입니다. HTTP가 두 가지 특징을 가지고있기 때문에 서버의 부하를 줄일 수 있지만, 유저 로그인과 같이 인증된 유저는 기억하고 있어야하는 경우 비연결성과 무상태성 때문에 이 정보를 기억하지 못할 수 있습니다. 따라서 유저 로그인과 같은 정보를 유지시키는 과제를 풀어야하는데, 그 과정에서 쓰이는 것이 쿠키, 세션, 토큰입니다. 쿠키 ..
2024.02.29 -
[Spring] 의존성 주입(DI)과 제어의 역전(IoC)
본 포스팅은 의존성 주입(DI)과 제어의 역전(IoC)에 대해 다룹니다. 의존성(Denpendency) 'A가 B에 의존성을 가진다'라는 뜻은 B가 변할 때마다 A도 함께 변해야하는 것을 말합니다. 아래의 예시를 보겠습니다. 아래의 예시에서 comsumer가 eat 메소드를 호출하면, chicken 객체의 eat 메소드가 호출됩니다. 코드 동작상으로는 문제가 없지만, 다른 음식을 먹고 싶으면 eat 메소드를 수정해야하는 번거로움이 있습니다. 위와 같은 경우 Consumer와 Chicken은 강한 의존성을 가진다라고 말할 수 있습니다. # Code Snippet 1 public class Consumer { void eat() { Chicken chicken = new Chicken(); chicken.e..
2024.02.25