12. User-Service JWT 생성
- 📚 Spring/Spring Cloud
- 2023. 2. 12. 09:52
| User-Service에 JWT 생성 (JSON Web Token)
JWT Dependency 추가
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
AuthenticationFilter.java
protected void successfulAuthentication(HttpServletRequest request,
HttpServletResponse response,
FilterChain chain,
Authentication authResult) throws IOException, ServletException {
log.debug( ((User)authResult.getPrincipal()).getUsername() );
String userName = ((User)authResult.getPrincipal()).getUsername();
UserDto userDetails = userService.getUserDetaisByEmail(userName);
String token = Jwts.builder()
.setSubject(userDetails.getUserId())
.setExpiration(new Date(System.currentTimeMillis()
+ Long.parseLong(env.getProperty("token.expiration_time")) ))
.signWith(SignatureAlgorithm.HS512, env.getProperty("token.secret"))
.compact();
response.addHeader("token", token);
response.addHeader("userId", userDetails.getUserId());
}
WebSecurity.java
private AuthenticationFilter getAuthenticationFilter() throws Exception {
AuthenticationFilter authenticationFilter =
new AuthenticationFilter(authenticationManager(), userService, env);
//authenticationFilter.setAuthenticationManager(authenticationManager());
return authenticationFilter;
}
테스트 결과
로그인 순서
- AuthenticationFilter의 attemptAuthentication
- UserServiceImpl의 loadUserByUsername
- AuthenticationFilter의 successfulAuthentication
'📚 Spring > Spring Cloud' 카테고리의 다른 글
14. Spring Cloud Config / Actuator (0) | 2023.02.13 |
---|---|
13. User-Service - AuthorizationHeaderFilter 추가 (0) | 2023.02.13 |
11. User-Service에 인증권한 추가 (Authentication) (0) | 2023.02.05 |
10. Order-service와 Spring Cloud Gateway 연동 (0) | 2023.01.28 |
9. Catalog-service와 Spring Cloud Gateway 연동 (0) | 2023.01.28 |