springboot19 [springboot] @LoginUser 어노테이션 SessionUser user = (SessionUser) httpSession.getAttribute("user");@LoginUser 어노테이션은 매번 세션의 저장된 정보를 불러 들이는 위 코드의 중복을 줄여준다.사용법은 아래와 같다. 1) @LoginUser 어노테이션 생성package com.loosie.book.springboot.config.auth;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Target(ElementType.PARAMETER)@Retenti.. 2024. 10. 10. [springboot] Spring Security 권한 설정 외 @PreAuthorize로 추가 권한 검사 Spring Security는 Security Config 파일을 통해 접근 제한을 설정할 수 있다.하지만 대부분의 REST API 문서를 보면 userId 와 같이 기본키를 URL에 포함한다.따라서 전달받은 id와 세션에 저장된 id를 비교해 권한 검사하는 것은 선택적이지만 보안을 위해 권장한다.전달 받은 id와 세션의 정보를 비교 하는 방법으로 가장 가독성 있는 @PreAuthorize 어노테이션을 사용하는 방법이 있다.컨트롤러에 @PreAuthorize 어노테이션 사용 예시@RestControllerpublic class UserController { @PreAuthorize("#userId == authentication.principal.id") @PutMapping("/users/.. 2024. 10. 10. [springboot] Spring Security의 /login 요청 시 처리 과정(세션 저장) Spring Security에는 /login과 /logout 요청을 처리하는 메서드(세션저장/세션삭제)가 내부적으로 구현되어 있다. 따라서 개발자는 따로 구현을 하지 않아도 된다. 하지만 어떤식으로 /login POST 요청이 처리되어 세션에 저장되는지 궁금해서 정리해 본다. ① 클라이언트는 아이디와 비밀번호 정보를 담아 서버에게 POST /login 요청 ② 스프링시큐리티의 UsernamePasswordAuthenticationFilter 가 중간에서 아이디와 비밀번호를 추출 ③ 추출한 아이디와 비밀번호를 AuthenticationManager 에게 주면서 인증 요청 ④ AuthenticationManager는 AuthenticationProvider( DaoAuthenticationProvider.. 2024. 10. 9. [springboot] 스프링부트 2점대에 swagger 3점대 연결 스프링부트 2.7 버전gradleSwagger 3.0.01. build.gradle에 의존성 추가// Swagger implementation 'io.springfox:springfox-boot-starter:3.0.0' 2. application.properties에 설정 추가# Swaggerspring.mvc.pathmatch.matching-strategy=ant_path_matcher 3. SwaggerConfig 추가package com.pnow.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.docu.. 2024. 4. 14. 이전 1 2 3 4 5 다음