UPDATE OAuth2 user service to save additional user details
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -29,9 +29,9 @@ public class SecurityConfig {
|
||||
.oauth2Login(oauth2 -> oauth2
|
||||
.userInfoEndpoint(userInfo -> userInfo
|
||||
.userService(customOAuth2UserService)
|
||||
|
||||
)
|
||||
.successHandler(successHandler())
|
||||
|
||||
);
|
||||
|
||||
return http.build();
|
||||
|
||||
Reference in New Issue
Block a user