0

私のSpring Bootアプリケーションでは、Spring Social(1.1.4.RELEASE)(Facebook、Google、LinkedIn、Twitter)を使用してログインを実装しました。ログイン処理中Spring Social:サーバーをプロキシの背後に置くとURLをリダイレクト

サーバは、次のHTTP GET呼び出します:

https://accounts.google.com/o/oauth2/auth?client_id=XXX&response_type=code&redirect_uri=http://xzy.com:91/auth/google&scope=email&state=YYY 

問題はここにある:REDIRECT_URI =のhttp://xzy.com:91/AUTH/

アプリをグーグルプロキシの背後にあると私は

http://xzy.com:91/auth/googleにREDIRECT_URIを変更する必要がある - >http://xzy.com/auth/google

私のポンポン

(私はこれはかなり共通の問題であると思いますが、私は働いて解決策を見つけることができませんでした:あなたはspring-socialでコードから読み取ることができたよう

<dependency> 
     <groupId>org.springframework.social</groupId> 
     <artifactId>spring-social-security</artifactId> 
     <version>${spring-social-version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.social</groupId> 
     <artifactId>spring-social-linkedin</artifactId> 
     <version>${spring-social-linkedin.version}</version> 
    </dependency> 


    <dependency> 
     <groupId>org.springframework.social</groupId> 
     <artifactId>spring-social-twitter</artifactId> 
     <version>${spring-social-twitter.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.social</groupId> 
     <artifactId>spring-social-google</artifactId> 
     <version>${spring-social-google.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.social</groupId> 
     <artifactId>spring-social-facebook</artifactId> 
     <version>${spring-social-facebook.version}</version> 
    </dependency> 

答えて

1
@Bean 
public ProviderSignInController providerSignInController(ConnectionFactoryLocator connectionFactoryLocator, UsersConnectionRepository usersConnectionRepository) { 
    ProviderSignInController controller = new ProviderSignInController(connectionFactoryLocator, usersConnectionRepository, new SimpleSignInAdapter()); 
    // get the url from config, this just for example 
    controller.setApplicationUrl("http://xzy.com"); 
    return controller; 
} 

application urlがベースURLを置き換えます。

protected String callbackUrl(NativeWebRequest request) { 
     if (callbackUrl != null) { 
      return callbackUrl; 
     } 
     HttpServletRequest nativeRequest = request.getNativeRequest(HttpServletRequest.class); 
     if (applicationUrl != null) { 
      return applicationUrl + connectPath(nativeRequest); 
     } else { 
      return nativeRequest.getRequestURL().toString(); 
     } 
    } 
+0

提案していただきありがとうございますが、まだ動作しません。これはHTTP GET xxx/signup/facebookで動作するようですが、私のリクエストはxxx/auth/facebook –

+1

です – chaoluo

関連する問題