我正在致力於Spring引導web應用程序。我現在正在使用具有自定義userDetailService的Spring Security來開發註冊和登錄系統。在我的Spring Boot + Security + web應用程序中添加可選的Google登錄
現在我想添加一個註冊登錄系統,使用Google帳號。我創建了我的Google API密鑰,並將它們添加到application.properties
。我想是不是.yml propertie文件在這裏有必要使用:
# ===============================
# = OAUTH2
# ===============================
security.oauth2.client.client-id=clientId Here
security.oauth2.client.client-secret=clientSecret here
security.oauth2.client.access-token-uri=https://www.googleapis.com/oauth2/v3/token
security.oauth2.client.user-authorization-uri=https://accounts.google.com/o/oauth2/auth
security.oauth2.client.token-name=oauth_token
security.oauth2.client.authentication-scheme=query
security.oauth2.client.client-authentication-scheme=form
security.oauth2.client.scope=profile
security.oauth2.resource.user-info-uri=https://www.googleapis.com/userinfo/v2/me
security.oauth2.resource.prefer-token-info=false
我加的OAuth2支持我春季啓動應用程序在這條路上:
@SpringBootApplication
@EnableOAuth2Sso
public class WebApplication {
public static void main(String[] args) {
SpringApplication.run(WebApplication.class, args);
}
}
現在我想保持posibility到使用Google登錄或使用網站帳戶登錄,但我只找到關於唯一登錄或多個提供商登錄(Facebook,Google,Twitter ..)的手冊
在我的SpringSec我有這個完整的配置類。我想,我要創建谷歌的的AuthenticationProvider並將其鏈接到我的應用程序的谷歌訪問的URL,但我很困惑又一下:
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
/**
* Obtenemos información de persistencia
*/
// @formatter:off
auth
//.authenticationProvider(googleOauth2AuthProvider())
.userDetailsService(userDetailsService)
.passwordEncoder(bCryptPasswordEncoder);
// @formatter:on
}
...
@Override
protected void configure(HttpSecurity http) throws Exception {
String[] anonymousRequest = { urls};
http
.authorizeRequests()
//..other rules
謝謝,它正在處理這個信息:) – Genaut