(文章是从我的个人主页上粘贴过来的,大家也可以访问我的主页 www.iwangzheng.com)

进行中,未完待续

Ruby 客户端 使用方法
0. 在 Gemfile中,加入:

gem 'rubycas-client'
然后 $sudo bundle

注意: 不要使用 'rubycas-client-rails' 这个GEM。这个gem会使得你的配置过程不透明,难于调试。

1. environment.rb: 的结尾,加上:

CASClient::Frameworks::Rails::Filter.configure(
:cas_base_url => "http://11.11.11.11:111"
)
2 对应的controller 中, 加上:

before_filter CASClient::Frameworks::Rails::Filter

注意: 不要在 application_controller中加这句。否则的话所有的controller, 包括登录页面都会受影响。

3. 在sessions_controller.rb 中定义退出的action:

class SessionsController < ApplicationController
def destroy
CASClient::Frameworks::Rails::Filter.logout(self)
end
end

4. 修改 route.rb ,加入退出的链接:

PaddyField::Application.routes.draw do
resources :fish
match '/logout' => "sessions#destroy", :as => :logout, :via => :delete
end

5. 修改 application.html.erb 布局文件,增加这个链接。

关键的一点是: 在经典的rails authorization 框架用,都是用 current_user 这个变量取得当前登陆的用户。 在CAS CLIENT中,用的是 session[:cas_user] , 只取得当前用户名,是一个string. 而不是一个model.

<div style="border: 1px solid green">
<%= session[:cas_user] %>
</div>
<% if session[:cas_user] %>
<%= link_to "logout" , logout_path %>
<% end %>

单元测试中如何模拟登录?

非常简单,用这个

CASClient::Frameworks::Rails::Filter.fake("some_user")

例如:

# spec_helper.rb
def login
CASClient::Frameworks::Rails::Filter.fake("some_user")
end

然后就可以调用它了.

# in some rspec file
require 'spec_helper' describe MessagesController do
render_views
before do
login
@message = FactoryGirl.create(:message, :vid => 1, :title => "test")
end
it "should get show" do
get :show, :id => @message.id
response.should be_success
end
end

rubycas-client单点登录的更多相关文章

  1. cas 单点登录出现org.jasig.cas.client.util.CommonUtils.getResponseFromServer - 拒绝连接 Connection refused

    cas 单点登录出现org.jasig.cas.client.util.CommonUtils.getResponseFromServer - 拒绝连接 Connection refused 环境: ...

  2. cas+tomcat+shiro实现单点登录-4-Apache Shiro 集成Cas作为cas client端实现

    目录 1.tomcat添加https安全协议 2.下载cas server端部署到tomcat上 3.CAS服务器深入配置(连接MYSQL) 4.Apache Shiro 集成Cas作为cas cli ...

  3. CAS单点登录实践(spring cas client配置)

    前言: 最近的项目需要将多个站点统一登录,查阅了资料Jasig cas(Central Authentication Service)(官方站点:http://www.jasig.org/cas)使用 ...

  4. cas单点登录系统:客户端(client)详细配置(包含统一单点注销配置)

    最近一直在研究cas登录中心这一块的应用,分享一下记录的一些笔记和心得.后面会把cas-server端的配置和重构,另外还有这几天再搞nginx+cas的https反向代理配置,以及cas的证书相关的 ...

  5. 著名ERP厂商的SSO单点登录解决方案介绍一

          SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他应用中用于同一个用户 ...

  6. CAS FOR WINDOW ACTIVE DIRECTORY SSO单点登录

    一.CAS是什么? CAS(Central Authentication Service)是 Yale 大学发起的一个企业级的.开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(支持 ...

  7. cas单点登录搭建

    Cas Server下载:http://developer.jasig.org/cas/ Cas Client下载:http://developer.jasig.org/cas-clients/ 测试 ...

  8. 教你开发asp.net的单点登录系统

    单点登录系统,简称SSO.以下是我花了几个小时写的一个简单实现.特把实现思路和大家分享. 背景:某项目使用ASP.NET MemberShip来做会员系统,需要同时登录多个系统.而项目的开发人员无法在 ...

  9. .NET基于Redis缓存实现单点登录SSO的解决方案[转]

    一.基本概念 最近公司的多个业务系统要统一整合使用同一个登录,这就是我们耳熟能详的单点登录,现在就NET基于Redis缓存实现单点登录做一个简单的分享. 单点登录(Single Sign On),简称 ...

  10. 点单登录原理和java实现简单的单点登录

    引用自:http://blog.csdn.net/zuoluoboy/article/details/12851725 摘要: 单点登录(SSO)的技术被越来越广泛地应用到各个领域的软件系统当中.本文 ...

随机推荐

  1. HTML5——地图应用

    我们就拿百度地图举例吧: 废话少说,直接上Demo 简要截图如下:' 简要代码如下: <!DOCTYPE html> <html> <head> <title ...

  2. Source Tree for MAC1.6

    Atlassian ID has become the new Atlassian Account. Read more about it here. After some great communi ...

  3. IOS 判断日期是今天,昨天还是明天

    git地址: https://github.com/JsoonLi/NSDate-Extension   - (NSString *)compareDate:(NSDate *)date{ NSTim ...

  4. setter方法的内存错误

    - (void)setList:(ClassicList *)list { self.list = list; _titleLabel.text = list.activityName; _addre ...

  5. PHP时间日期比较

    若要使用PHP来比较日期,最好用DateTime::diff 但是这个是5.3才支持的,如果没有这样的环境,可以使用<.>来比较 如下例子,会输出right $date1=strtotim ...

  6. DML语言练习,数据增删改查,复制清空表

    Connected Connected as TEST@ORCL SQL> select * from t_hq_bm; BUMBM BUMMC DIANH ---------- ------- ...

  7. 用Random类输出验证码

    package dx; import java.text.DecimalFormat; import java.util.Random; public class DxL { //创建类 public ...

  8. easyui_动态添加隐藏toolbar按钮

    目标:动态添加隐藏toolbar,比如根据权限动态显示新增.修改.删除按钮等 思路:先初始化toolbar的所有按钮,加载datagrid其它信息,再根据权限显示隐藏toolbar按钮 步骤: 1.加 ...

  9. opencv笔记4:模板运算和常见滤波操作

    time:2015年10月04日 星期日 00时00分27秒 # opencv笔记4:模板运算和常见滤波操作 这一篇主要是学习模板运算,了解各种模板运算的运算过程和分类,理论方面主要参考<图像工 ...

  10. codevs1003 电话连线

    题目描述 Description 一个国家有n个城市.若干个城市之间有电话线连接,现在要增加m条电话线(电话线当然是双向的了),使得任意两个城市之间都直接或间接经过其他城市有电话线连接,你的程序应该能 ...