/** * Configures LemonOAuth2UserService if missing */ @Bean @ConditionalOnMissingBean(LemonOAuth2UserService.class) public <U extends AbstractUser<ID>, ID extends Serializable> LemonOAuth2UserService<U,ID> lemonOAuth2UserService( LemonUserDetailsService<U, ?> userDetailsService, LemonService<U, ?> lemonService, PasswordEncoder passwordEncoder) { log.info("Configuring LemonOAuth2UserService"); return new LemonOAuth2UserService<U,ID>(userDetailsService, lemonService, passwordEncoder); }
protected void replaceRestOperarions() { RestTemplate restTemplate = new RestTemplate(); restTemplate.setErrorHandler(new OAuth2ErrorResponseErrorHandler()); restTemplate.setMessageConverters(makeMessageConverters()); setRestOperations(restTemplate); log.info("Rest Operations replaced"); }
public LemonOAuth2UserService( LemonUserDetailsService<U, ?> userDetailsService, LemonService<U, ?> lemonService, PasswordEncoder passwordEncoder) { this.userDetailsService = userDetailsService; this.lemonService = lemonService; this.passwordEncoder = passwordEncoder; replaceRestOperarions(); log.info("Created"); }
@Override public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException { OAuth2User oath2User = super.loadUser(userRequest); return buildPrincipal(oath2User, userRequest.getClientRegistration().getRegistrationId()); }
@Override public OidcUser loadUser(OidcUserRequest userRequest) throws OAuth2AuthenticationException { OidcUser oidcUser = super.loadUser(userRequest); LemonPrincipal principal = oauth2UserService.buildPrincipal(oidcUser, userRequest.getClientRegistration().getRegistrationId()); principal.setClaims(oidcUser.getClaims()); principal.setIdToken(oidcUser.getIdToken()); principal.setUserInfo(oidcUser.getUserInfo()); return principal; } }