我試圖在我的應用程序中使用Google應用程序引擎獲取spring security oauth2安裝程序。一切似乎本地正常工作,但是當我部署到應用程序引擎的事情開始打破。在我通過谷歌身份驗證後,將其轉發給白標錯誤頁面。在控制檯中我看到這樣的錯誤:在Google App Engine上啓用Oauth2sso
http://my-application.appspot.com/login?state=t…m&session_state=8b67f5df659a8324430803973b9e1726e39fd454..1ae3&prompt=none
401 (Unauthorized)
設置我的身份驗證與此application.yml文件:
security:
oauth2:
client:
clientId: client-key
clientSecret: secret-key
accessTokenUri: https://www.googleapis.com/oauth2/v4/token
userAuthorizationUri: https://accounts.google.com/o/oauth2/v2/auth
clientAuthenticationScheme: form
scope:
- openid
- email
- profile
- https://www.googleapis.com/auth/cloud-platform
resource:
userInfoUri: https://www.googleapis.com/oauth2/v3/userinfo
preferTokenInfo: true
我的安全配置看起來somethign像這樣:
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
.and()
.authorizeRequests()
.antMatchers("/static/**").permitAll()
.antMatchers("/**").hasAuthority("ROLE_ADMIN")
.anyRequest().authenticated()
.and()
.exceptionHandling()
.accessDeniedPage("/403");
}
我有在Google憑據頁面上配置了Oauth ID,以允許授權的javascript來源爲:
http://my-application.appspot.com
https://my-application.appspot.com
http://localhost:8080
與經授權的重定向URI來:
http://my-application.appspot.com/login
https://my-application.appspot.com/login
http://localhost:8080/login
任何想法,爲什麼我可能會得到授權錯誤,當我部署到GAE?
感謝,
克雷格
你確定你正在嘗試與有 「ROLE_ADMIN」 權威認證用戶? –
積極。我試圖剝離出來,只留下所有頁面上的oauth身份驗證,它仍然給出相同的錯誤。 – craigtb
如果可能,您可以在GitHub上共享一個最小的,可重現的示例項目嗎? –