用于CAS 1架构的Ruby Gem

时间:2013-09-30 11:07:29

标签: ruby-on-rails rubygems omniauth cas

我正在使用omniauth-cas 1.0.4使用cas服务器授权我的用户。但是服务器支持CAS 1架构,但gem支持CAS 2架构。

CAS 1服务验证器以两行响应(在text / plain HTTP响应中);第一行是yes或no,对应于应用程序提供的票证是否有效。  如果票证有效,则第二行包含票证持有者的NetID - 即已成功验证的用户的标识。如果票证无效,则第二行为空。  因此,一个示例响应是:   是   日工 如果票证有效,CAS会立即将其删除,以便不能再次使用。  但CAS 2体系结构使用XML片段进行响应。是否有蚂蚁宝石可用于支持CAS 1架构?

1 个答案:

答案 0 :(得分:1)

在我的快速Google搜索中,我没有找到提供CAS 1.0功能的gem,但是要修改现有的库以支持它并不困难。 (我不是Ruby开发者,或者我自己也做。)

你可以克隆https://github.com/dlindahl/omniauth-cas/(或官方位置,如果不是这样)。 所需的大部分修改都在Ticket Validator中。您需要删除XML代码并替换为标准的行解析代码。 get_service_response_body应该是响应。 find_authentication_success将要检查响应的第二行。 parse_user_info应该将hash [“user”]分配给在响应的第1行中找到的用户。

https://github.com/dlindahl/omniauth-cas/blob/master/lib/omniauth/strategies/cas.rb文件也需要更改。 CAS 1.0通过/ validate处理,而不是/ serviceValidate。