cas(一)之项目搭建

  随着企业的发展,业务就会随之复杂,支撑的系统也会增多,痛点也日益明显。比如员工小王,星期五需要请假,小王登陆上公司OA来发起一个请假流程,搞完后,便开始今天工作,刚好小王作为一个招聘,就需要登录到公司内部的招HR系统来填写今天的计划……,会发现小王需要登录两个系统,来做相应的事情,随着公司的发展各个部门的信息化的先后也不一样,难免就会出现:某一天,需要登录好几个系统来完成工作或做协调。当然也可以不介意,我用笔记本记录好不同密码,等陆不同的系统,翻开本子输入密码就好。那么如果有一种方式:只需要输入一次用户名和密码,即登录了所有的系统的。这样岂不是更好。所以,SSO(Single Sign On)单点登录就产生了。

  SSO的实现方式有很多种,本文所讲的cas便是其中的一种,特性如下:

  1. 一个开放和具有很好文档支持的协议;
  2. 一个Java开源服务器组件;
  3. 提供多种类型的客 户端包括Java、.Net、PHP、Perl、Apache、uPortal等;
  4. 能够与uPortalBlueSocketTikiWiki、 Mule、 LiferayMoodle集成使用。
  • 一篇详细的手册

  下面连接是一篇详细的文档,建议先跟着配置一遍,默认的cas设置是https://的协议,大部分配置会在这里介绍,后面会慢慢把cas项目定制化,比如:https如果没有证书,浏览器会显示该页面显示不安全,所以后面会将https://转换成http://。

  http://blog.csdn.net/frinder/article/details/7969925

  • 项目搭建

  项目是基于Maven搭建,根据项目职责,分为公共模块、Server模块,相关Maven的知识这里不介绍,大家可以自行百度

  项目的结构除了server都是java项目(maven),server是web项目(maven),后面新增的项目都是java类型的项目,Maven项目结构如下图所示

java项目骨架

 

web项目骨架

 

  父POM如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.fzhsh</groupId>
    <artifactId>cas</artifactId>
    <packaging>pom</packaging>
    <version>1.0</version>
    <modules>
        <module>cas-server</module>
        <module>cas-common</module>
    </modules>
    
    <properties>
        <cas.version>3.5.2</cas.version>
    </properties>
    
</project>

  这里可以看到选取的cas版本为3.5.2

  •  cas-common项目

  common项目主要是提供公共的类,因为本项目中暂时还没有用

  • cas-server项目

  cas-server项目是核心,其他的都是为了增强cas-server项目的特性的,所以下面着重介绍cas-server项目

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>cas</artifactId>
        <groupId>com.fzhsh</groupId>
        <version>1.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>war</packaging>
    <artifactId>cas-server</artifactId>

    <dependencies>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.jasig.cas</groupId>
            <artifactId>cas-server-webapp</artifactId>
            <version>${cas.version}</version>
            <type>war</type>
            <scope>runtime</scope>
        </dependency>
        
    </dependencies>

    <build>
        <finalName>ROOT</finalName>
    </build>
    
</project>

  

  cas-server-webapp是cas默认的服务器包,使用mvn package命令就可以打包,生成ROOT.war包,也就是cas服务端的逻辑程序。后续的定制都是把文件加入到cas-server里,在打包时会用cas-server的文件替换掉依赖的cas-server-webapp里面的文件,生成定制好的包。

  最后,以上就完成了cas-server的项目搭建,使用tomcat启动,默认的用户名和密码一致,便可登录成功

 

  • 参考资料

http://www.oschina.net/p/ja-sig+cas

  

posted @ 2017-05-15 16:07  風之殤  阅读(383)  评论(0)    收藏  举报