UPDATE OAuth2 user service to save additional user details

This commit is contained in:
2025-06-24 00:11:01 +02:00
parent c7b3f6bf70
commit df7c2a15df
3 changed files with 16 additions and 13 deletions

View File

@@ -1,4 +1,5 @@
package com.ddf.vodsystem.security; package com.ddf.vodsystem.security;
import com.ddf.vodsystem.entities.User;
import com.ddf.vodsystem.repositories.UserRepository; import com.ddf.vodsystem.repositories.UserRepository;
import org.springframework.security.oauth2.client.userinfo.DefaultOAuth2UserService; import org.springframework.security.oauth2.client.userinfo.DefaultOAuth2UserService;
@@ -21,17 +22,19 @@ public class CustomOAuth2UserService extends DefaultOAuth2UserService {
public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException { public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException {
OAuth2User oAuth2User = super.loadUser(userRequest); OAuth2User oAuth2User = super.loadUser(userRequest);
// String email = oAuth2User.getAttribute("email"); String email = oAuth2User.getAttribute("email");
// String name = oAuth2User.getAttribute("name"); String name = oAuth2User.getAttribute("name");
// String googleId = oAuth2User.getAttribute("sub"); String googleId = oAuth2User.getAttribute("sub");
//
// userRepository.findByGoogleId(googleId).orElseGet(() -> { userRepository.findByGoogleId(googleId).orElseGet(() -> {
// User user = new User(); User user = new User();
// user.setEmail(email); user.setEmail(email);
// user.setName(name); user.setName(name);
// user.setGoogleId(googleId); user.setGoogleId(googleId);
// return userRepository.save(user); user.setUsername(email);
// }); user.setRole(0);
return userRepository.save(user);
});
return oAuth2User; return oAuth2User;
} }

View File

@@ -29,9 +29,9 @@ public class SecurityConfig {
.oauth2Login(oauth2 -> oauth2 .oauth2Login(oauth2 -> oauth2
.userInfoEndpoint(userInfo -> userInfo .userInfoEndpoint(userInfo -> userInfo
.userService(customOAuth2UserService) .userService(customOAuth2UserService)
) )
.successHandler(successHandler()) .successHandler(successHandler())
); );
return http.build(); return http.build();

View File

@@ -12,4 +12,4 @@ spring.sql.init.data-locations=classpath:db/data.sql
# Security # Security
spring.security.oauth2.client.registration.google.client-id=${GOOGLE_CLIENT_ID} spring.security.oauth2.client.registration.google.client-id=${GOOGLE_CLIENT_ID}
spring.security.oauth2.client.registration.google.client-secret=${GOOGLE_CLIENT_SECRET} spring.security.oauth2.client.registration.google.client-secret=${GOOGLE_CLIENT_SECRET}
spring.security.oauth2.client.registration.google.scope=openid,profile,email spring.security.oauth2.client.registration.google.scope=profile,email