`
sg552
  • 浏览: 619757 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
47437293-94b9-3b04-9152-8971c7580049
白手起家学习使用Flex
浏览量:18701
社区版块
存档分类
最新评论

白手起家搭建CAS

阅读更多


1. 下载,安装。 cas server   (http://www.jasig.org/cas/download )
解压缩后,看到以下文件:

focusbeijing@focusbeijing-desktop:/sg552/cas-server-3.4.11$ ls
assembly.xml                       cas-server-support-radius
cas.log                            cas-server-support-spnego
cas-server-core                    cas-server-support-trusted
cas-server-documentation           cas-server-support-x509
cas-server-integration-berkeleydb  cas-server-uber-webapp
cas-server-integration-jboss       cas-server-webapp
cas-server-integration-memcached   INSTALL.txt
cas-server-integration-restlet     license.txt
cas-server-support-generic         modules
cas-server-support-jdbc            notice.txt
cas-server-support-ldap            perfStats.log
cas-server-support-legacy          pom.xml
cas-server-support-openid          tasks.xml


2. 下载tomcat6,  (保证你安装了JDK6+)解压缩:

focusbeijing@focusbeijing-desktop:/sg552/tomcat6$ ls
bin      conf  LICENSE  NOTICE         RELEASE-NOTES  temp     work
cas.log  lib   logs     perfStats.log  RUNNING.txt    webapps


3. 设置JDK_HOME,  CATALINA_HOME 系统变量: 
export CATALINA_HOME=/sg552/tomcat6

4. 1. copy modules/cas-server-webapp- VERSION.war to Tomcat's webapps/ directory, 
then  start Tomcat by : 
$CATALINA_HOME/bin/startup.sh

focusbeijing@focusbeijing-desktop:/sg552/tomcat6$ $CATALINA_HOME/bin/startup.sh
Using CATALINA_BASE:   /sg552/tomcat6
Using CATALINA_HOME:   /sg552/tomcat6
Using CATALINA_TMPDIR: /sg552/tomcat6/temp
Using JRE_HOME:        /usr/lib/jvm/java-6-openjdk
Using CLASSPATH:       /sg552/tomcat6/bin/bootstrap.jar


5. 访问: 
http://localhost:8080/cas-server-webapp-3.4.11/login  
就可以看到登录页面了。

https://wiki.jasig.org/display/CASUM/JDBC
使用JDBC认证:  https://wiki.jasig.org/display/CASUM/JDBC




6, CAS 支持的9种方式: 

Active Directory: 是面向Windows Standard Server、Windows Enterprise Server以及 Windows Datacenter Server的目录服务。
Generic: 通用醒
JAAS: java 自带的一种东东。
JDBC:  连接到数据库。
LDAP: LDAP协议。用于验证。
Legacy: 未知。。。
RADIUS:远程认证拨号用户系统。
SPNEGO:  SPNEGO(SPNEGO: Simple and Protected GSS-API Negotiation)是微软提供的一种一种使用GSS- API认证机制的安全协议, 用于使Webserver共享Windows Credentials,它扩展了 Kerberos ( 一种网络认证协议)。

Trusted:   不清楚。。。
X.509 Certificates
  X.509被广泛使用的数字证书标准,是由国际电联电信委员会( ITU-T)为单点登录(SSO-Single Sign-on)和授权管理基础设施(PMI- Privilege Management Infrastructure)制定的PKI标准。X. 509定义了(但不仅限于) 公钥证书 、证书吊销清单、 属性证书和证书路径验证算法等证书标准。



7.  开始使用JDBC 进行CAS的认证。

根据CAS INSTALL.TXT 文件的说明:

 access the CAS login page by opening up a web browser and visiting:

 36     http://hostname:8080/cas-server-webapp-VERSION/login   (see note below)
 37 
 38    You should see the CAS login page asking you for your username and
 39    password.  The default authentication plugin accepts NetID=password.
 40    Enter in an identical value for NetID and password and click LOGIN.
 41    If everything is set up correctly, you should see a page stating that
 42    you've successfully logged into CAS.  Congratulations!


这里的NETID 应该就是用户名。 
这个用户名在哪里呢?应该就需要我们先配置JDBC数据库, 然后再把它加进去。

需要用 POM。XML ,来进行MVN生成一个新的APP。。。手动的方式不行, 会产生找不到 generic 验证的错误。

https://wiki.jasig.org/display/CASUM/Best+Practice+-+Setting+Up+CAS+Locally+using+the+Maven2+WAR+Overlay+Method


8.  需要安装 mvn package install   (也可以直接在 module下找到对应的东西)

https://wiki.jasig.org/display/CASUM/Building+and+Deploying

As of CAS 3.1, CAS builds exclusively with the Maven 2 Build Management System. This system provides a common build and directory structure across all projects that use Maven 2 and defines common goals that can be applied to any project type (JAR, WAR, EAR, etc.).

Building CAS

In your CAS_HOME, you can type "mvn package install". This will create all of the jar and war files for the CAS modules. Alternatively, you can enter any of the CAS_HOME/{module} sub directories and execute "mvn package install" to generate just that particular JAR or WAR.

As compilation requires a network connection, if you are behind a http proxy, you have to indicate some extra option to mvn command: "mvn -Dhttp.proxyHost=xxx -Dhttp.proxyPort=xxx package install"



https://wiki.jasig.org/display/CAS/Examples+to+Configure+CAS


对于默认的CAS应用, 使用的是:最简单的验证( SimpleTestUsernamePasswordAuth enticationHandler)。 只要用户输入的用户名和密码相同就可以了。 

见  WEB-INF/deployerConfigContext. xml


分别建立两个 app: 


miaomiaocat:   http://192.168.56.10:332/cats

同时记得下载 ruby cas client (http://code.google.com/p/rubycas-client/

TODO:  编译CAS SERVER  ( $mvn package install ) 

 




下载了。 

$ mvn install  可以。
$ sudo mvn install 不行
$ sudo mvn package install 不行。

不过,话说可以直接在module目录下找到对应的 cas-server-support-jdbc-3.4.11.jar





继续使用 simpleauthenticationhandler.  (用户名和密码一样)

把CAS服务器先跑起来。

然后把 cas-client加在第一个RAILS APP上。 dudufish

0. 在  Gemfile中,加入:

gem 'rubycas-client'
然后 $sudo bundle 


1. environment.rb: 的结尾,加上:
CASClient::Frameworks::Rails::Filter.configure(
  :cas_base_url => "http://192.168.56.10:8080/cas-server-webapp-3.4.11 "
)

2. application_controller.rb
before_filter CASClient::Frameworks::Rails::Filter

3. 进入某个controller :  (例如 fish_controller.rb) , 定义退出的action
def class fish_controller
  def logout
     CASClient::Frameworks::Rails::Filter.logout(self)
  end
end

4. 修改 route.rb ,加入退出的链接:
 Dudufish::Application.routes.draw do
   resources :fish
   match '/logout' => "fish#logout", :as => :logout
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 %>

6. 下面,就是演示的截图:

1. 首先,输入:  dudufish这个项目的url:  

2. 回车后,页面会自动跳转到 CAS login 页面。 (见 application_controller.rb中的 before_filter) 



3. 我们输入 用户名和密码都是 Siwei  , 回车,就会看到dudufish的页面。



4.  我们点击 "logout" 链接,就会触发logout action  ( 

     CASClient::Frameworks::Rails::Filter.logout(self)
 ) 





  • 大小: 38.1 KB
  • 大小: 10.3 KB
  • 大小: 19.1 KB
分享到:
评论
1 楼 jieke456 2012-02-28  
  学习单点登录入门 谢谢了

相关推荐

    白手起家Win32SDK应用程序

    ### 白手起家Win32SDK应用程序:深入解析与预备知识 #### 一、Win32SDK应用程序概览 **标题与描述解读**:"白手起家Win32SDK应用程序"这一标题揭示了文章旨在从零开始教授如何构建基于Windows平台的应用程序,特别...

    struts2 总结入门学习文档 教你如何搭建一个struts2环境

    struts2 总结入门学习文档 教你如何白手起家搭建Struts2开发环境、编写第一个struts2应用helloworld、属性介绍、接口、拦截器介绍、struts2标签等。93页

    白手起家【源码】

    易语言程序源码,编写了一个白手起家【源码】

    白手起家怎样创业.doc

    在白手起家的创业过程中,技术和人际关系网络是两个至关重要的方面。首先,技术作为标签,意味着在创业初期,技术不仅是产品或服务的核心,也是推动创新和竞争力的关键。创业者需要具备一定的技术背景或者理解,以...

    白手起家不是梦.doc

    白手起家不是梦.doc

    《白手起家Win32SDK应用程序》第九篇

    ### 《白手起家Win32SDK应用程序》第九篇:窗口标题栏上显示自定义图标 #### 知识点概述 本篇文章旨在探讨如何在Windows应用程序中手动添加自定义图标资源,尤其聚焦于如何在窗口标题栏上显示这类图标。通过本教程...

    《白手起家Win32SDK应用程序》第四篇 注册一个窗口类

    在《白手起家Win32SDK应用程序》系列教程中,本篇重点讲解如何在Windows环境下通过Win32 SDK创建并显示一个自定义窗口。在Windows编程中,窗口是最基本也是最重要的组成部分之一,因此掌握窗口的创建与显示对于任何...

    主观能动性十个案例白手起家.doc

    主观能动性是人类区别于动物的重要特性,它包含了人的认识世界、改造世界的能力和精神状态。马克思主义哲学强调,人应该在遵循客观规律的基础上,充分发挥主观能动性。以下十个案例展示了主观能动性在实际生活和事业...

    白手起家者有哪些特质.doc

    1. 创业者的特质:白手起家的成功人士通常具备坚韧不拔的精神,他们敢于冒险,愿意承受失败的风险,并且能够从失败中汲取教训。他们具有强烈的自我驱动力,能够独立思考并制定长远规划。此外,他们善于沟通,能够...

    白手起家WIN32SDK

    《白手起家WIN32SDK》是一本专注于教授如何使用Windows API开发应用程序的教材,尤其适合编程初学者。Windows API(Application Programming Interface)是微软为开发者提供的接口,它包含了大量函数、常量、结构体...

    适合白手起家的五大创业项目.pptx

    适合白手起家的五大创业项目

    如何通过销售管理工作白手起家.ppt

    在销售管理中白手起家创建自己的企业是一个充满挑战但潜力无限的过程。首先,我们要理解“白手起家”的概念,它通常指的是创业者没有初始资金或资源,依靠自身的努力和智慧来创立和经营企业。在这个过程中,销售管理...

    白手起家创业赚钱项目有些创业赚钱项目.doc

    白手起家创业赚钱项目有些创业赚钱项目.doc

    自建网站详细教程(域名 空间 搭建网站一步一步很详细)

    自建网站是一个涉及多个步骤的过程,包括域名注册、空间租用、网站源码获取与配置以及网站上线等关键环节。...未来在实践过程中,只要按照上述步骤操作,结合持续的努力与学习,就能成功搭建属于自己的网站。

    当前最佳实践用于培训 LLM白手起家

    本文档《当前最佳实践用于培训LLM白手起家》旨在为那些希望从零开始构建和训练LLM的初学者和经验丰富的开发者提供宝贵的指导。 首先,文档强调了在决定是否自建LLM前,应考虑使用商业API或已开源的LLM。商业API如...

    ExchangeServer白手起家系列系统SLA和监控流程.pptx

    ExchangeServer白手起家系列系统SLA和监控流程.pptx

    白手起家,精通C语言-博奕创维_55_6725.zip

    白手起家,精通C语言-博奕创维_55_6725

Global site tag (gtag.js) - Google Analytics