2013-03-01 123 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