簡體   English   中英

Java Spring MVC Auth0 SSO 未獲取令牌(無 Spring Boot)

[英]Java Spring MVC Auth0 SSO not getting tokens (no Spring Boot)

我正在嘗試啟動並運行 SSO。 因此,當我登錄不同的應用程序(在同一個 auth0 域上)並轉到我的應用程序的登錄頁面時,我希望我的應用程序自動登錄。

我設法運行了第一部分,並收到了來自 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());
}

如果使用Auth0 Spring MVC庫(不是 Spring Security MVC) - 那么最好在回調控制器的句柄方法頂部放置斷點

然后,您可以逐步執行/介入 - 並檢查正在發生的事情。 此方法調用getTokens並委托給Auth0ClientImpl這是你的問題引用代碼塊。

檢查您的ClientIdClientSecretDomain是否都正確 - 如果您的代碼到達此方法 - 傳入的code / redirectURI也是正確的。 也會從儀表板檢查 Auth0 日志,並確定是否記錄了任何成功的身份驗證事件。

最后,請您確認您使用的是哪個版本的auth0-java (maven POM 依賴項/gradle 依賴項) - 以及您引用的auth0-spring-mvc庫的哪個版本。

對於 SSO 特定示例 - 純 Spring 介於兩個凳子之間,因為我為純 Java 編寫了一個,另一個為 Spring Security MVC 編寫了一個 - 但是您應該通過研究這兩個示例對發生的事情有一個很好的了解:

Auth0 Servlet SSO 示例

Auth0 Spring Security SSO 示例

特別要研究 JSP 頁面,因為這是 SSO 檢查和自動登錄邏輯所在的地方。 還要確保在 Auth0 租戶中定義的每個客戶端的設置上啟用 SSO。

免責聲明:我是上述庫的作者 - 如果您仍有問題並需要任何說明,請在下面給我留言。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM