我一直在調查CF部署場景,其中我有一個現有的身份驗證基礎結構,並且需要配置UAA以將登錄委派給現有的SSO權限。作爲第一步,我決定使用login.rb示例服務器,只是爲了解決問題。運行UAA login.rb示例時出錯
我已經使用示例login.rb和在本地主機上運行的示例應用程序以及在另一主機上運行的UAA實例設置了我的環境。從應用程序重定向到localhost:3000的登錄頁面正在工作,查看我的日誌,我可以看到,當login.rb示例向UAA發佈帖子時,(傳遞)身份驗證成功,此外,響應收到的職位授權也給了200 OK ....我可以看到JSON與所需的提示字符串正在返回。但是,erb確認對話出現問題。我在login.rb的124線得到一個例外
NoMethodError - undefined method `[]' for nil:NilClass:
/home/fieldj1/Documents/workspace-sts-3.1.0.RELEASE/uaa/samples/login/login.rb:124:in `block in <class:LoginApplication>'
/var/lib/gems/1.9.1/gems/sinatra-1.3.2/lib/sinatra/base.rb:1212:in `call'
/var/lib/gems/1.9.1/gems/sinatra-1.3.2/lib/sinatra/base.rb:1212:in `block in compile!'
/var/lib/gems/1.9.1/gems/sinatra-1.3.2/lib/sinatra/base.rb:785:in `[]'
/var/lib/gems/1.9.1/gems/sinatra-1.3.2/lib/sinatra/base.rb:785:in `block (3 levels) in route!'
/var/lib/gems/1.9.1/gems/sinatra-1.3.2/lib/sinatra/base.rb:801:in `route_eval'
...
的問題似乎是,該分析從UAA的JSON OAUTH響應代碼是過時的。
erb :confirm, :locals => {:client_id => confirmation_info["authorizationRequest" ["clientId"], \
:scopes => confirmation_info["authorizationRequest"]["scope"]}
這樣::
erb :confirm, :locals => {:client_id => confirmation_info["auth_request"]["authorizationParameters"]["client_id"], \
:scopes => confirmation_info["auth_request"]["authorizationParameters"]["scope"]}
有其他人看到這一點,我從這個變化的線路124固定呢?我相當肯定,我運行的代碼應該是自我一致的,因爲我完成了整個UAA的git克隆。不知道我的環境在某種程度上是不一致的,或者如果我發現了一個真正的問題。
感謝, 約翰
好的,我會盡快提出一個拉請求。我發現樣本正在發生變化。但是這個早期的示例具有非常輕量級的優點,並且易於在我的開發虛擬機上運行/實驗。謝謝,約翰 – 2013-03-07 19:58:36