2016-01-21 509 views
1

我想在我的應用程序(客戶端)中使用彈簧OAUTH2sso與已安裝的oauth2提供程序。通過在oauth2提供程序中配置客戶端以及在客戶端中配置clientId,clientSecret,accessTokenUri和userAuthorizationUri,當用戶通過身份驗證並授權客戶端並重定向後,客戶端會向我顯示身份驗證錯誤,因爲springOauth2sso庫沒有得到用戶的詳細信息。Oauth2身份驗證失敗

白色標籤錯誤頁面申請有 /錯誤沒有明確的映射,所以你看到這個作爲後備。 Thu Jan 21 10:28:28 CET 2016有一個意外的錯誤(type = Unauthorized,status = 401)。 認證失敗:無法從令牌

我測試了我與其他的oauth2庫供應商處獲得用戶的詳細信息,這是相當不錯,但我不知道在這種情況下發生了什麼。

回答

1

這個錯誤可以有很多不同的含義,因爲它是一個包裝InvalidTokenException

您的令牌可能無效,過期或者您的客戶端可能存在問題,或者在檢索UserDetails時甚至出現問題。

要獲得有關此問題的更多信息,我建議您調試並將調試點直接放置到此錯誤源OAuth2ClientAuthenticationProcessingFilter。在第99行,此過濾器試圖從ResourceServerTokenServices實施加載認證,如果您進入該調用,您將會發現是什麼導致了您的錯誤。

而且我不知道我理解正確的配置,但我想你可能需要這兩個屬性之一:

security.oauth2.resource.token-info-uri 
security.oauth2.resource.user-info-uri 

此處瞭解詳情:Spring Boot Docs

+0

感謝您的回答。我沒有意識到我的屬性中定義了錯誤的jwt,並且錯誤是invalid_token,因爲庫試圖使用jwt讀取標記。 – gleX

+0

高興地幫助:)由於各種原因,我不得不多次調試相同的錯誤。當然,一開始並沒有幫助,這個錯誤是許多可能出錯的東西的包裝:) – JIMI