5

Uygulamamda, Google uygulama altyapısında oauth2 kurulumu bahar güvenlik ayarlarını almaya çalışıyorum. Her şey yerel olarak gayet iyi çalışıyor gibi görünüyor, ancak uygulama motoruna konuşlandırdığımda her şey bozuluyor. Google ile kimlik doğrulaması yaptıktan sonra bir Whitelabel hata sayfasına yönlendiriyor.Oauth2sso'yu Google App Engine'de etkinleştirme

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 

My güvenlik yapılandırma böyle somethign görünüyor: Ben

@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"); 
} 

bu application.yml dosya ile

http://my-application.appspot.com/login?state=t…m&session_state=8b67f5df659a8324430803973b9e1726e39fd454..1ae3&prompt=none 
401 (Unauthorized) 

Ben kurulum benim kimlik doğrulama: Konsolda şu hatayı görüyorum Yetkili javascript kaynaklarının izin vermek için Google kimlik bilgileri sayfasında Oauth Kimliği ayarlandı:

210 Ve yetkilidir yönlendirme URI'ları: Ben GAE için dağıtmak kez

http://my-application.appspot.com/login 
https://my-application.appspot.com/login 
http://localhost:8080/login 

Herhangi fikir neden ben yetkisiz hataları almak olabilir?

+0

Are ki "ROLE_ADMIN" yetkisi ile kimlik doğrulaması çalıştığınız kullanıcı? –

+0

Olumlu. Bunu çıkarmayı ve tüm sayfalarda yalnızca oauth kimlik doğrulamasıyla bırakmayı denedim ve hala aynı hatayı veriyor. – craigtb

+0

Mümkünse, GitHub'da minimum, tekrarlanabilir bir örnek proje paylaşır mısınız? –

cevap

2

Senin sorunun Yetkilendirme hakkındadır

sayesinde

Craig, belki tam olarak böyle çalışma dizinine client_secret.json taşınması gibi, uygulamayı yetki üzerine adımı atlamış.

https://developers.google.com/drive/v3/web/quickstart/java#step_1_turn_on_the_api_name

Adım 1: Sürücü API

  1. kullanın oluşturduğunuz veya Google Geliştiriciler Konsolu'nda bir proje seçin ve otomatik API açmak için bu sihirbazı çevirin. Devam et'e, ardından Kimlik bilgilerine git'e tıklayın. proje sayfasına kimlik bilgilerini ekle sayfasında İptal düğmesine tıklayın.

    1. Sayfanın üst kısmında, OAuth izni ekran sekmesini seçin. bir E-posta adresi seçin, daha önce ayarlanmamış bir Ürün adı girin ve Kaydet düğmesine tıklayın. Kimlik Bilgileri sekmesini seçin, Oluştur kimlik bilgileri düğmesine tıklayın ve OAuth istemci kimliği seçin.

    2. Diğer uygulama türünü seçin, "Drive API Hızlı Başlat" adını girin ve Oluştur düğmesine tıklayın.

    3. Sonuç iletişim kutusunu kapatmak için Tamam'ı tıklatın.

    4. istemci kimliğinin sağındaki file_download (JSON sürümünü yükle) düğmesini tıklatın.

    5. Bu dosyayı çalışma dizininize taşıyın ve yeniden adlandırın client_secret.json.

faydalı link: Emin GCM http 401 authorization error

+0

Bu, yalnızca bir örnek kullanılarak giderilmiştir. Kimlik doğrulamanın sunucular arasında geçmediğini görür. Havent, buna henüz bakma şansı buldu. – craigtb