2013-03-01 135 views
0

我一直在調查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克隆。不知道我的環境在某種程度上是不一致的,或者如果我發現了一個真正的問題。

感謝, 約翰

回答

0

這是一個真正的問題,在這個意義上,紅寶石樣品是不是最新的,並沒有一個已得到全面更新,因爲我們沒有在任何地方使用它。如果你可以發送一個很棒的拉請求。

+0

好的,我會盡快提出一個拉請求。我發現樣本正在發生變化。但是這個早期的示例具有非常輕量級的優點,並且易於在我的開發虛擬機上運行/實驗。謝謝,約翰 – 2013-03-07 19:58:36

0

我們正在更新我們所有的文檔和示例應用程序示例,您正在使用的登錄ruby示例應用程序目前已過時。歡迎您提出拉請求。

與此同時,您可以看看新的文檔,它的工作正在進行中:http://cloudfoundry.github.com/

謝謝, - Hitesh

+0

謝謝,Hitesh,我會檢查新的文檔,並儘快提出拉請求。 – 2013-03-07 19:52:20