Spring Security
[Spring] JWT(Json Web Token) 로그인 구현
JWT를 이용한 로그인 및 권한 검증 JWT를 이용하여 간단한 로그인과 회원가입 구현하고 User와 Admin을 권한 검증으로 구분하는 시간을 가져봅시다. 로그인 구현 DTO클래스 생성 LoginDto @Getter @Setter @Builder @AllArgsConstructor @NoArgsConstructor public class LoginDto { @NotNull @Size(min = 3, max = 50) private String username; @NotNull @Size(min = 3, max = 100) private String password; } Lombok 어노테이션 추가 Valid관련 어노테이션 추가 username, password 필드를 가지고 있는 DTO TokenDto ..
[Spring] JWT(Json Web Token) 예제
이전 게시글에 이어 간단하게 JWT를 이용하여 실습 예제를 만들어 보겠습니다. JWT패키지 생성 및 토큰 설정 TokenProvider클래스 생성 토큰 생성 및 토근 유효성 검증을 담당합니다. @Component public class TokenProvider implements InitializingBean { private final Logger logger = LoggerFactory.getLogger(TokenProvider.class); private static final String AUTHORITIES_KEY = "auth"; private final String secret; private final long tokenValidityInMilliseconds; private Key key..
[Spring] JWT(Json Web Token) 초기설정
프로젝트 생성 자바 버전은 11로 하였고 아래의 Dependencies를 추가해줍니다. Spring Web Spring Security Spring Data JPA H2 Database Lombok Validation 테스트 컨트롤러 생성 해당 프로젝트가 잘 작동하는지 테스트 하는 컨트롤러를 만들어줍니다. @RestController @RequestMapping("/api") public class HelloController { @GetMapping("/hello") public ResponseEntity hello(){ return ResponseEntity.ok("hello"); } } Postman으로 GET요청을 했을때 401인증오류가 뜨는 것을 볼수 있습니다. SecurityConfig를 생성..
JWT(Json Web Token)란?
JWT란? Json 객체를 이용하여 저장하는 웹 토큰으로 인증에 필요한 정보들을 Token에 담아 인코딩 하여 사용합니다. 헤더 시그니처를 해싱하기 위한 알고리즘 정보들이 담겨있음 페이로드 서버와 클라이언트가 주고받는 시스템에 실제로 사용될 정보를 담고 있음 시그니처 토큰의 유효성을 검증하기 위한 문자열 장점 인증서버, 데이터 스토어에 대한 의존성이 없음 BASE64 URL SAFE Incoding → URL, COOKIE, HEADER 모두 사용 가능 단점 Payload의 정보가 많이 지면 네트워크 사용량 증가하여 데이터 설계 고려가 필요함 토큰이 클라이언트에 저장되기 때문에 서버에서 클라이언트 토큰을 조작할 수 없음 Reference JWT.IO JSON Web Tokens are an open, i..