Category: JWT

0

Spring-JWT(JSON Web Token) - 4. JWT 다루기

4. JWT 다루기목차 Spring-JWT(JSON Web Token) - 4. JWT 다루기 Spring-JWT(JSON Web Token) - 3. Spring Security 적용하기 Spring-JWT(JSON Web Token) - 2. 회원가입 Spring-JWT(JSON Web Token) - 1. JWT 알아보기 JWT를 다루기 위한 Util Class만들기 JwtUtil 객체는 Jwts.builder를 이용해 JWT를 생성하고 Jwts.parserBuilder를 이용해 Token을 JWT로 변환시켜 데이터를 가져오도록 한다. Jwts.builder(JwtBuilder) setHeader JWT의 Header 에 대한 설정을 위한 메소드 setSubject, setExpiration, setIssuer, setAudience, setNotBefore, setIssuedAt Registed Payload는 각각에 해당하는 set 메소드들이 제공된다. setClaims JWT의 Claim 데이터 를 추가하기 위한 메소드 signWith Header와 Payload를 갖고 Secret Key 로 서명한다. 암호화 알고리즘으로는 보통 HMAC or RSA 알고리즘을 사용한다. Jwts.parserBuilder(JwtParser) setSigningKey 데이터 위변조 확인을 위해 secretKey를 이용해 JWS에 대한 유효성 검증을 한다. secretKey를 이용한 검증 실패시 해당 JWT는 사용하지 못한다. parseClaimsJws token을 JWS로 파싱해준다.

0

Spring-JWT(JSON Web Token) - 3. Spring Security 적용하기

3. 로그인목차 Spring-JWT(JSON Web Token) - 4. JWT 다루기 Spring-JWT(JSON Web Token) - 3. Spring Security 적용하기 Spring-JWT(JSON Web Token) - 2. 회원가입 Spring-JWT(JSON Web Token) - 1. JWT 알아보기 의존성 추가Spring Boot에 Security를 적용하기 위해 Spring Security 의존성과 JWT를 사용하기위해 jjwt 의존성을 추가해주도록 한다. build.gradle dependencies { .... implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' // https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt implementation group: 'io.jsonwebtoken', name: 'jjwt', version: '0.9.1' ....} Security 설정하기Spring Security는 인증에 필요한 사용자 정보를 저장할 때 비밀번호는 PasswordEncoder 객체를 이용해 암호화된 Password로 저장돼야 한다. 현재 프로젝트에서는 PasswordEncoder를 구현한 BcryptPasswordEncoder 객체를 이용해 암호화를 할 것이다.

0

Spring-JWT(JSON Web Token) - 2. 회원가입

2. 회원가입목차 Spring-JWT(JSON Web Token) - 4. JWT 다루기 Spring-JWT(JSON Web Token) - 3. Spring Security 적용하기 Spring-JWT(JSON Web Token) - 2. 회원가입 Spring-JWT(JSON Web Token) - 1. JWT 알아보기 의존성 관계build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test'} 회원가입을 위한 DTO 만들기SignUpRequest.java @Data@AllArgsConstructor@NoArgsConstructorpublic class SignUpRequest { private String username; private String password;}

0

Spring-JWT(JSON Web Token) - 1. JWT 알아보기

1. JWT(JSON Web Token) 알아보기목차 Spring-JWT(JSON Web Token) - 4. JWT 다루기 Spring-JWT(JSON Web Token) - 3. Spring Security 적용하기 Spring-JWT(JSON Web Token) - 2. 회원가입 Spring-JWT(JSON Web Token) - 1. JWT 알아보기 참고 https://jwt.io/ JWT 란? JWT는 JSON Web Token의 약자로 사용자 정보와 데이터 속성과 같은 Claim 정보를 JSON 을 이용해 표현한 Web TokenJWT는 Token내에 필요한 모든 정보를 가지고 전달해주는 자가수용적인 특징이 있다 JWT는 Header, Payload, Signature 세가지로 구성돼 있다. 각 부분은 Json 형태 로 이뤄져 있으며 base64로 인코딩 돼 .로 나뉘어 구분된다.