ruby+cas实现sso

本文介绍了一种基于CAS协议的单点登录解决方案。通过详细步骤展示了如何在Ruby应用中集成CAS客户端,包括安装配置CAS服务器、客户端配置及验证流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前做了几个基于ruby,java的系统,现在想把它们整合到一起,首先遇到了单点登录问题,开始是用跨域iframe来实现,效果还行,但安全性不大高,所以还是打算上cas,方案如下:

1 安装cas3.0并配置http://liuqiang.iteye.com/admin/blogs/210679,保证http://localhost:8080/cas能正常运行。

 

2 安装ruby的cas客户端:进入项目根目录,运行ruby script/plugin install http://rubycas-client.googlecode.com/svn/trunk/rubycas-client

 

3 打开config/environment.rb ,在该文件最后也就是等rails初始化完毕,加上 CASClient::Frameworks::Rails::Filter.configure(
    :cas_base_url => "http://localhost:8080/cas"
  )

 

4 在需要校验的控制器中加入 before_filter CASClient::Frameworks::Rails::Filter

 

5 在视图中加入登录链接:<a href="/front/sessions/login">登录</a>

 

6 在负责处理登录的控制器中加上 before_filter :set_current_url , CASClient::Frameworks::Rails::Filter

 
 before_filter :set_current_url ,CASClient::Frameworks::Rails::Filter

  def set_current_url
#记下来源url,因为在之后的验证过程中,来源url会丢失
    cookies[:current_url] = request.referer
  end

 def cas_login
#跳到来源url
    redirect_to cookies[:current_url]
  end
 

 
7 登录完毕后可以用session[:cas_user]将登录的用户名取出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值