0

这是我从 ruby​​cas 服务器返回的数据。

{
  "cn"=>"--- - Toby Joiner", 
  "sn"=>"--- - Joiner", 
  "mail"=>"--- - tobyjoiner@xxxxxx.xxx", 
  "memberof"=>"--- 
      - CN=All Users,OU=AllUsers,DC=bnw,DC=local
      - CN=Administrators,CN=Builtin,DC=bnw,DC=local 
      - CN=Remote Desktop Users,CN=Builtin,DC=bnw,DC=local", 
  "givenname"=>"--- - Toby"
}

我想知道是否有一种方法可以提取这些数据,现在我正在做:

first_name = session[:cas_extra_attributes][:sn].gsub('-','')

删除破折号。我希望我只是错过了从 ruby​​cas 服务器获取额外数据的内置方法。

4

1 回答 1

1

这看起来像是 YAML 转义数据。YAML.load您应该能够通过首先解析它然后根据需要处理它来摆脱它。


顺便说一句,我个人将 ruby​​cas-server 的基本功能重新实现为一个名为cassy的 Rails 引擎。但是,我认为它目前不支持通过额外属性发送。

我只是想我会提到它,因为如果 ruby​​cas-server 不起作用,它为您提供了一个尝试的替代方法。

于 2011-06-27T03:32:16.597 回答