CAS 4.0 安装

【声明】本文为AdamsLee原创,转载请注明出自围炉网并保留本文有效链接:CAS 4.0 安装, 转载请保留本声明!

步骤参考了 http://wenku.baidu.com/view/ea82625d76c66137ee0619c6.html?from=search

cas-server-4.0.0-release.zip http://downloads.jasig.org/cas/

cas-client-3.3.3-release.zip http://downloads.jasig.org/cas-clients/

apache-tomcat-8.0.32

mysql-connector-java-5.0.8.zip http://dev.mysql.com/downloads/connector/j/5.0.html

  • 生成密钥文件

登录服务器打开一个CMD窗口(开始菜单 -> 运行输入cmd后回车)并切换到tomcat安装目录下(如:c:\tomcat-cas),执行如下命令: 

keytool -genkey -alias casserver -keypass demosso -keyalg RSA -keystore casserver.keystore -validity 365

执行后,可以看到tomcat安装目录下生成了一个casserver.keystore文件

说明:-alias指定别名为casserver;-keyalg指定RSA算法;-keypass指定私钥密 码;-keystore指定密钥文件名称为casserver.keystore;-validity指定有效期为365天。另外提示的输入 keystore密码应与-keypass指定的相同;您的名字与姓氏是CAS服务器使用的域名(不能是IP,也不能是localhost),其它项随意 填。

  • 生成服务端证书 

根据以上生成的服务端的密钥文件可以导出服务端证书,执行以下命令: 

keytool -export -alias casserver -storepass demosso -file casserver.cer -keystore casserver.keystore

说明:-alias指定别名为casserver;-storepass指定私钥为demosso;-file指定导出证书的文件名为casserver.cer;-keystore指定之前生成的密钥文件的文件名。 注意:-alias和-storepass必须为生成casserver.keystore密钥文件时所指定的别名和密码,否则证书导出失败

  • 导入证书文件到cacerts 密钥库文件 

导入以上生成的服务端的证书文件到一个cacerts密钥库文件,执行以下命令:

keytool -import -trustcacerts -alias casserver -storepass demosso -file casserver.cer -keystore cacerts

执行后,可以看到tomcat安装目录下生成了一个cacerts文件。

  • 服务端Tomcat配置 

在制作完成密钥文件、证书文件、密钥库文件后即可进行服务端Tomcat的配置。打开$CATALINA_HOME/conf/server.xml文件,注释掉如下代码段:

    <Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

取消注释并修改

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"

              keystoreFile="/casserver.keystore" keystorePass="Hengda3333" truststoreFile="/cacerts"

               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS" />

说明:port一般为8443或443,最常用的是443端口(https默认端口),这样https方式访问的时候可以不加端口号(如:https://sso.demo.com/cas/login);keystoreFile 为tomcat目录下的密钥文件;keystorePass为私钥密码;truststoreFile为生成的信任文件,如果此处不指定则默认 为$JAVA_HOME/jre/lib/security/cacerts文件;其它属性默认即可。

  • 生成客户端密钥库文件 

单向认证的客户端配置只需生成客户端信任文件caserts即可。首先将服 务端生成的证书文件(之前生成的casserver.cer文件)复制到$JAVA_HOME/jre/lib/security下,然后打开CMD窗口 切换到$JAVA_HOME/jre/lib/security下并执行命令: 

keytool -import -trustcacerts -alias casclient -storepass ssoclient -file casserver.cer -keystore cacerts

执行后,可以看到$JAVA_HOME/jre/lib/security目录下生成了一个cacerts文件。

到这里 SSL协议配置完成了。如果显示密码错误,请使用 changeit ,这个是jdk默认的证书密码

  • CAS验证服务器配置

    • 安装CAS服务器 

1.  解压 cas-server-4.0.0-release.zip 到磁盘(我的路径为 D:\cas-server-4.0.0-release),进入D:\cas-server-4.0.0-release\modules文件夹下,把cas-server-webapp-4.0.0.war拷贝到Tomcat安装目录的webapps文件夹下。为了方便在浏览器中浏览,把cas-server-webapp-4.0.0.war文件名修改为cas.war。 

2.  运行Tomcat。在浏览器中输入https://127.0.0.1:8443/cas,显示登录界面。输入用户名、密码:casuser、Mellon

  • 配置数据库验证方式 

  1. 复制D:\cas-server-4.0.0\modules下面cas-server-support-jdbc-4.0.0.jar 以及 mysql-connector-java-5.1.25.jar 到D:\apache-tomcat\webapps\cas\WEB-INF\lib下。

  2. 编辑 D:\apache-tomcat\webapps\cas\WEB-INF\deployerConfigContext.xml文件

替换

<bean id="primaryAuthenticationHandler"

          class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler">

        <property name="users">

            <map>

                <entry key="casuser" value="Mellon"/>

            </map>

        </property>

</bean>

    <bean id="queryDatabaseAuthenticationHandler" class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">

        <property name="dataSource" ref="dataSource"/>

        <property name="sql" value="select password from t_user where name = ?"/>

    </bean>

    <!– MySQL connector –>

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

        <property name="driverClassName">

            <value>com.mysql.jdbc.Driver</value>

        </property>

        <property name="url">

            <value>jdbc:mysql://localhost:3306/cas</value>

        </property>

        <property name="username">

            <value>root</value>

        </property>

        <property name="password">

            <value>root</value>

        </property>

    </bean>

更新

    <bean id="authenticationManager" class="org.jasig.cas.authentication.PolicyBasedAuthenticationManager">

        <constructor-arg>

            <map>

                <!–

                   | IMPORTANT

                   | Every handler requires a unique name.

                   | If more than one instance of the same handler class is configured, you must explicitly

                   | set its name to something other than its default name (typically the simple class name).

                   –>

                <!–

                <entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" />

                <entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" />

                   –>

                <entry key-ref="queryDatabaseAuthenticationHandler" value-ref="proxyPrincipalResolver" />

            </map>

        </constructor-arg>

  • 创建好数据库以及数据,进行验证 https://127.0.0.1:8443/cas

  • cas客户端

打开项目的WEB-INF/web.xml

加入如下配置,红色部分按实际情况修改:

    <!– ======================== CAS start ======================== –>

    <context-param>

        <param-name>casServerLogoutUrl</param-name>

        <param-value>http://127.0.0.1:8088/cas/login</param-value>

    </context-param>

    <listener>

        <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>

    </listener>

    <filter>

        <filter-name>CAS Single Sign Out Filter</filter-name>

        <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>

    </filter>

    <filter-mapping>

        <filter-name>CAS Single Sign Out Filter</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

    <filter>

        <filter-name>CAS Filter</filter-name>

        <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>

        <init-param>

            <param-name>casServerLoginUrl</param-name>

            <param-value>http://127.0.0.1:8088/cas/login</param-value>

        </init-param>

        <init-param>

            <param-name>serverName</param-name>

            <param-value>http://127.0.0.1:8080</param-value>

        </init-param>

    </filter>

    <filter-mapping>

        <filter-name>CAS Filter</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

    <filter>

        <filter-name>CAS Validation Filter</filter-name>

        <filter-class>

            org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter

        </filter-class>

        <init-param>

            <param-name>casServerUrlPrefix</param-name>

            <param-value>http://127.0.0.1:8088/cas</param-value>

        </init-param>

        <init-param>

            <param-name>serverName</param-name>

            <param-value>http://127.0.0.1:8080</param-value>

        </init-param>

    </filter>

    <filter-mapping>

        <filter-name>CAS Validation Filter</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

    <filter>

        <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>

        <filter-class>

            org.jasig.cas.client.util.HttpServletRequestWrapperFilter

        </filter-class>

    </filter>

    <filter-mapping>

        <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

    <filter>

        <filter-name>CAS Assertion Thread Local Filter</filter-name>

        <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>

    </filter>

    <filter-mapping>

        <filter-name>CAS Assertion Thread Local Filter</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

    <!– ======================== end ======================== –>

修改项目的pom.xml

            <dependency>

                <groupId>org.jasig.cas.client</groupId>

                <artifactId>cas-client-core</artifactId>

                <version>3.3.3</version>

            </dependency>

此条目发表在未分类分类目录,贴了, 标签。将固定链接加入收藏夹。