Spring Security4
-
[Spring Security] 최신! AccessDeniedHandler, AuthenticationEntryPoint 사용하기
본 포스팅은 Spring Security에서 AccessDeniedHandler, AuthenticationEntryPoint 구현체를 이용하는 것을 다룹니다. 문제 상황 로그인하지 않은 사용자HTTPSTATUSCODE401, 접근 권한이 없는 사용자HTTPSTATUS403가 있을 때, 해당 정보를 ResponseBody에 넘겨주고 싶음. 다른 에러들은 에러가 발생했을 때, CustomException을 정의해서 처리를 했었는데, 위의 401, 403 에러들은 Custom Exception으로 잡으려고해도 잡히지 않았음. 그것은 아래와 같이 controller보다 Security Filter Chain이 먼저 동작하기 때문임. 시도한 방법 Global Exception에서 잡으려고 시도함..
2024.03.06 -
[Spring Security] URI에 따라 접근 권한 부여하기 최신 버전
본 포스팅은 Spring Security에서 URI별로 접근 권한을 다르게 부여하는 최신 방법을 다룹니다. chatGPT에게 물어보면 아래와 같이 대답해줍니다. 하지만, 이는 deprecated된 방법이므로 최신 방법으로 사용해야합니다. 이전 방법 @Bean public SecurityFilterChain securityFilterChainHttpSecurityhttp throws Exception { http.sessionManagement(sessionManagement -> sessionManagement.sessionCreationPolicySessionCreationPolicy.STATELESS) .authorizeHttpRequests(authorizeHttpRequests -..
2024.03.05 -
[Spring Security] 최신! 로그인 결과를 ResponseBody에 나타내는 법
본 포스팅은 Spring Security에서 로그인 결과를 ResponseBody에 나타내는 법을 다룹니다. 문제 상황 Spring Security를 이용하여 인증 및 인가를 진행하고, JWT를 인증방식으로 사용하여 UserDetails, UserDetailsService를 상속받아서 사용하고 있음. 아래와 같이 로그인을 구현할 때, Swagger ResponseBody에 아무것도 표현되지 않는 상태 @Operationsummary = "유저 로그인", 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