diff --git a/src/main/java/com/ddf/vodsystem/security/CustomOAuth2UserService.java b/src/main/java/com/ddf/vodsystem/security/CustomOAuth2UserService.java index 0189ac4..0fa7b13 100644 --- a/src/main/java/com/ddf/vodsystem/security/CustomOAuth2UserService.java +++ b/src/main/java/com/ddf/vodsystem/security/CustomOAuth2UserService.java @@ -1,4 +1,5 @@ package com.ddf.vodsystem.security; +import com.ddf.vodsystem.entities.User; import com.ddf.vodsystem.repositories.UserRepository; import org.springframework.security.oauth2.client.userinfo.DefaultOAuth2UserService; @@ -21,17 +22,19 @@ public class CustomOAuth2UserService extends DefaultOAuth2UserService { public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException { OAuth2User oAuth2User = super.loadUser(userRequest); -// String email = oAuth2User.getAttribute("email"); -// String name = oAuth2User.getAttribute("name"); -// String googleId = oAuth2User.getAttribute("sub"); -// -// userRepository.findByGoogleId(googleId).orElseGet(() -> { -// User user = new User(); -// user.setEmail(email); -// user.setName(name); -// user.setGoogleId(googleId); -// return userRepository.save(user); -// }); + String email = oAuth2User.getAttribute("email"); + String name = oAuth2User.getAttribute("name"); + String googleId = oAuth2User.getAttribute("sub"); + + userRepository.findByGoogleId(googleId).orElseGet(() -> { + User user = new User(); + user.setEmail(email); + user.setName(name); + user.setGoogleId(googleId); + user.setUsername(email); + user.setRole(0); + return userRepository.save(user); + }); return oAuth2User; } diff --git a/src/main/java/com/ddf/vodsystem/security/SecurityConfig.java b/src/main/java/com/ddf/vodsystem/security/SecurityConfig.java index 584ba53..469db63 100644 --- a/src/main/java/com/ddf/vodsystem/security/SecurityConfig.java +++ b/src/main/java/com/ddf/vodsystem/security/SecurityConfig.java @@ -29,9 +29,9 @@ public class SecurityConfig { .oauth2Login(oauth2 -> oauth2 .userInfoEndpoint(userInfo -> userInfo .userService(customOAuth2UserService) - ) .successHandler(successHandler()) + ); return http.build(); diff --git a/src/main/resources/application-local.properties b/src/main/resources/application-local.properties index 83b93c7..8a5dd26 100644 --- a/src/main/resources/application-local.properties +++ b/src/main/resources/application-local.properties @@ -12,4 +12,4 @@ spring.sql.init.data-locations=classpath:db/data.sql # Security 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.scope=openid,profile,email +spring.security.oauth2.client.registration.google.scope=profile,email