我们正在使用 DNOA 的 .Net MVC4 WebApi 应用程序和使用 Spring Security 的 Java 应用程序之间实现一个简单的 2 腿 OAuth1a 对话。在实现 Delegating MessageHandler 以验证传入请求时,DNOA 似乎坚持在请求中包含令牌。Spring 实现不需要令牌。我的感觉是 .Net 实现在某些方面是不正确的。
这是处理程序,如果我使用令牌发送它,这将起作用。
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 似乎坚持这样做。任何见解都值得赞赏。