Skip to content

Commit 659d859

Browse files
authored
Merge pull request #38 from AI-Tutor-2024/develop
Develop
2 parents 1e0cc44 + 33167c3 commit 659d859

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

src/main/java/com/example/ai_tutor/domain/auth/application/CustomTokenProviderService.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.example.ai_tutor.domain.auth.application;
22

33
import com.example.ai_tutor.domain.auth.dto.TokenMapping;
4+
import com.example.ai_tutor.domain.user.domain.User;
45
import com.example.ai_tutor.global.config.security.OAuth2Config;
56
import com.example.ai_tutor.global.config.security.token.UserPrincipal;
67
import io.jsonwebtoken.*;
@@ -122,8 +123,10 @@ public String getEmailFromToken(String token) {
122123

123124
public UsernamePasswordAuthenticationToken getAuthenticationByToken(String jwtToken) {
124125
String email = getEmailFromToken(jwtToken);
125-
UserDetails userDetails = customUserDetailsService.loadUserByUsername(email);
126-
return new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities());
126+
User user = customUserDetailsService.getUserByEmail(email);
127+
UserPrincipal userPrincipal = UserPrincipal.create(user);
128+
129+
return new UsernamePasswordAuthenticationToken(userPrincipal, null, userPrincipal.getAuthorities());
127130
}
128131

129132
public Long getExpiration(String token) {

src/main/java/com/example/ai_tutor/domain/auth/application/CustomUserDetailsService.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
import com.example.ai_tutor.domain.user.domain.repository.UserRepository;
55
import com.example.ai_tutor.global.DefaultAssert;
66
import com.example.ai_tutor.global.config.security.token.UserPrincipal;
7-
import jakarta.transaction.Transactional;
87
import lombok.RequiredArgsConstructor;
98
import lombok.extern.slf4j.Slf4j;
109
import org.springframework.security.core.userdetails.UserDetails;
1110
import org.springframework.security.core.userdetails.UserDetailsService;
1211
import org.springframework.security.core.userdetails.UsernameNotFoundException;
1312
import org.springframework.stereotype.Service;
13+
import org.springframework.transaction.annotation.Transactional;
1414

1515
import java.util.Optional;
1616

@@ -31,7 +31,13 @@ public UserDetails loadUserByUsername(String email) throws UsernameNotFoundExcep
3131
return UserPrincipal.create(user);
3232
}
3333

34-
@Transactional
34+
@Transactional(readOnly = true)
35+
public User getUserByEmail(String email) {
36+
return userRepository.findByEmail(email)
37+
.orElseThrow(() -> new UsernameNotFoundException("유저 정보를 찾을 수 없습니다: " + email));
38+
}
39+
40+
@Transactional(readOnly = true)
3541
public UserDetails loadUserById(Long id) {
3642
log.debug("Trying to load user by ID: {}", id);
3743
Optional<User> user = userRepository.findById(id);

0 commit comments

Comments
 (0)