Ich implementiere die OAuth2 -Anmeldung in meiner Spring Boot 3 -Anwendung mit GitHub als Authentifizierungsanbieter. Ich kann jedoch nicht die E -Mail des Benutzers von GitHub abrufen - es kehrt immer NULL zurück. Ich werde auf die Onboarding-Seite geleitet, auf der sie Details wie UserType-Recruiter oder Jobseeker usw. eingeben Umfang: < /p>
Ich implementiere die OAuth2 -Anmeldung in meiner Spring Boot 3 -Anwendung mit GitHub als Authentifizierungsanbieter. Ich kann jedoch nicht die E -Mail des Benutzers von GitHub abrufen - es kehrt immer NULL zurück. Ich werde auf die Onboarding-Seite geleitet, auf der sie Details wie UserType-Recruiter oder Jobseeker usw. eingeben Umfang: < /p> [code]yaml Copy Edit security: oauth2: client: registration: github: client-id: xxx client-secret: xxx redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}" scope: user:email < /code> Einstellungen für Github -Profile geprüft: < /p> Meine E -Mail ist in GitHub auf "public" gesetzt. BR /> Das E -Mail -Feld fehlt (NULL), andere Details wie Name und ID sind verfügbar. Warum ist es Githubs OAuth2 -Antwort ohne die E -Mail, auch wenn meine E -Mail öffentlich ist? Hier ist, wie ich versucht habe, Benutzerdetails aus dem Zugriffs-Token zu holen.@Service @RequiredArgsConstructor public class CustomOauth2UserService extends DefaultOAuth2UserService { private static final Logger log = LoggerFactory.getLogger(CustomOauth2UserService.class); private final UserConnectedAccountRepository userConnectedAccountRepository; private final UserRepository userRepository;
private void connectAccount(String providerId, String provider, AppUser appUser) { UserConnectedAccount newUserConnectedAccount = new UserConnectedAccount(providerId, provider, appUser); userConnectedAccountRepository.save(newUserConnectedAccount); } } < /code> Und hier ist meine Sicherheitskonfiguration. Ich verwende eine Sitzungsbasis-Authentifizierung.@Configuration @RequiredArgsConstructor @EnableWebSecurity public class SecurityConfig { private final UserService userService; private final PasswordEncoder passwordEncoder; private final GlobalAuthenticationEntryPoint globalAuthenticationEntryPoint; private final Oauth2LoginSuccessHandler oauth2LoginSuccessHandler; private final CustomOauth2UserService customOauth2UserService;
@Bean public AuthenticationManager authenticationManager() { var authenticationProvider = new DaoAuthenticationProvider(passwordEncoder); authenticationProvider.setUserDetailsService(userService); return new ProviderManager(authenticationProvider); }
@Bean public SecurityContextRepository SecurityContextRepository() { return new HttpSessionSecurityContextRepository(); }
@Bean public SecurityContextLogoutHandler securityContextLogoutHandler() { return new SecurityContextLogoutHandler(); } } [/code]
Ich implementiere die OAuth2 -Anmeldung in meiner Spring Boot 3 -Anwendung mit GitHub als Authentifizierungsanbieter. Ich kann jedoch nicht die E -Mail des Benutzers von GitHub abrufen - es kehrt...
Ich stelle eine Flask -Anwendung für die Google App Engine (Standardumgebung, Python 3.9) bereit. /> gcloud app describe --format=json | jq '.envVariables'
returns:
Basierend auf den Spring -Tipps YouTube Video Spring Tipps: Der Frühlingsautorisierungsserver, den ich das Setup aus didaktischen Gründen vereinfachen möchte. Vor dem Unterrichten von...
Ich habe ein altes Spring Boot-Projekt geerbt. Im Projekt melden wir uns über einen Unternehmens-OIDC-Server an. Spring Boot stellt sicher, dass wir authentifiziert sind, und verfügt dann über einige...
Nach dem Upgrade auf Spring Boot 3.4.0 (Spring Web 6.2.0) schlugen meine Gateway-Filtertests fehl. Die Tests haben zuvor überprüft, dass die Anforderungsheader korrekt geändert wurden, aber jetzt...