2012-09-27 23 views
0

我們正在使用DNOA的.Net MVC4 WebApi應用程序和使用Spring Security的Java應用程序之間實現簡單的雙向OAuth1a對話。在實現委託MessageHandler來驗證傳入請求時,DNOA似乎堅持在請求中包含令牌。 Spring實現不需要令牌。我的感覺是.NET的實現在某些方面不正確。流向OAuth1a DNOA和令牌

這裏是處理程序,如果我用令牌發送它,這是有效的。

TokenManager tokenManager = new TokenManager(); 
var requestW = new HttpRequestWrapper(HttpContext.Current.Request); 
var sp = new ServiceProvider(Constants.SelfDescription, tokenManager, new NonceStore()); 
try 
{ 
    var auth = sp.ReadProtectedResourceAuthorization(requestW); 
    if (auth != null) 
    { 
      //verfy etc etc 
    } 
catch(Exception) 
{ //return UnAuthorized response } 
return base.SendAsync(request, cancellationToken); 
} 

在此代碼中,我在ReadProtectedResourceAuthorization調用中得到一個異常,說它收到一個UnauthorizedRequest。 那麼這個樣子的流程是什麼樣的?我看到的大多數情況都表明,這種流量不需要令牌,但DNOA似乎堅持這樣做。任何見解都會被讚賞。

回答

1

這聽起來像你想要做的是actually 0-legged OAuth(無論如何,我的術語,因爲沒有OAuth的原始3腿在你想做什麼)。至少我從你的描述中得知你的訪問令牌和訪問令牌密碼是空的,你擁有的只是消費者密鑰和祕密。

如果我正確記得,DNOA不支持空訪問令牌(因爲這在OAuth 1規範中不允許)。

可能的替代你可以試試:

  1. 使用非空(但也許仍然硬編碼,如果你想)訪問令牌和訪問令牌的祕密。
  2. 改爲使用基於HTTPS的基本身份驗證,使用您的使用者密鑰和使用者密鑰作爲用戶名和密碼。
  3. 使用另一個OAuth 1服務提供程序庫。
+0

是的,這正是它是什麼,我不太喜歡這個想法。我想我已經說服了管道的另一端,我們需要用令牌做2。 – JayGlynn