2017-03-03 71 views
0

我試圖讓SSO啓動並運行。因此,當我登錄不同的應用程序(在同一個auth0域中)並轉到我的應用程序的登錄頁面時,我想讓我的應用程序自動登錄。Java Spring MVC Auth0 SSO沒有獲取令牌(沒有Spring Boot)

我設法讓第一部分運行並收到來自auth0的授權碼。但是當我嘗試檢索令牌時,它們都是空的。

我的redirectuUri和clientSecret都是正確的,我假設之前返回的授權碼正確無誤。

看起來好像請求沒有返回任何令牌。他們都是空的。

我從哪裏開始發現哪裏出了問題?謝謝!

public Tokens getTokens(final String authorizationCode, final String redirectUri) { 
    Validate.notNull(authorizationCode); 
    Validate.notNull(redirectUri); 
    System.out.println("Sending request with code to retrieve tokens."); 
    final Credentials creds = authenticationAPIClient 
      .token(authorizationCode, redirectUri) 
      .setClientSecret(clientSecret).execute();  
    return new Tokens(creds.getIdToken(), creds.getAccessToken(), creds.getType(), creds.getRefreshToken()); 
} 
+0

現在應該發佈一個簡短的答案,如果還不確定,請發表評論。 – arcseldon

回答

0

如果使用Auth0 Spring MVC庫(不是Spring Security的MVC) - 那麼最好的地方粘在的Callback Controller's handle method

頂部將斷點然後,您可以逐步在/步 - 和檢查什麼繼續。此方法調用getTokens,並且代表Auth0ClientImpl這是您在問題中引用的代碼塊。

檢查ClientIdClientSecretDomain是正確的 - 如果你的代碼是實現這一方法 - 即code/redirectURI在傳遞也是正確的。還要檢查儀表板上的Auth0日誌,並確定是否記錄了任何成功的身份驗證事件。

最後,請您確認您正在使用的auth0-java(maven POM依賴關係/ gradle依賴關係)版本 - 以及您正在引用的auth0-spring-mvc庫的哪個版本。

對於SSO具體例子 - 平原春非驢非馬,因爲我寫了一個簡單的Java和一個用於Spring Security的MVC - 但你應該得到的是通過研究這兩個樣品事情的一個好主意:

Auth0 Servlet SSO Sample

Auth0 Spring Security SSO Sample

特別是學習JSP頁面,因爲這是SSO檢查和自動登錄邏輯生活在那裏。還要確保您在Auth0租戶中定義的每個客戶端的設置上啓用SSO。

免責聲明:我上面庫的作者 - 請給我下面的評論,如果你仍然有問題,需要任何澄清。

+0

再次感謝!我現在從樣品開始,並會回覆你。 我使用的是auth0-spring-mvc 1.1.2。和mvc-auth-commons 0.1.2 – Shinhidora

+0

好聽。保持我的發佈。 – arcseldon