UPDATE OAuth2 user service to save additional user details
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user