CAS Server 单点登录SSO 认证服务搭建部署

部署环境

1 下载CAS Server 4.0 :https://github.com/apereo/cas/releases/tag/v4.0.0 

   这里选择4.0是因为其有官方release版本的cas-server-webapp-4.0.0.war。其他版本需要下载源码手动打包。

2 JDK 1.8.111 。注意环境变量配置:JAVA_HOME是指向哪个jdk路径,因为CAS Server是war包,用tomcat启动,tomcat通过JAVA_HOME寻找JDK。

3 TomCat 7.0.92 win64 。测试用过TomCat  8.5 出现404,cas-server配置完禁用https后,访问http://localhost:8080/cas/login总是报404,换  TomCat 7就可以正常访问。可能是8.5的默认配置有调整?

安装cas-server

下载CAS Server 4.0 :https://github.com/apereo/cas/releases/tag/v4.0.0 。解压缩下载下来的“cas-server-4.0.0-release.zip” 
在“modules”文件夹中找到“cas-server-webapp-4.0.0.war”,将其重命名为“cas.war”,在将“cas.war”拷贝到TomCat 7.0.92的“\webapps”文件夹下。稍等一会儿刷新一下,就会看到Tomcat自动将“cas.war”解压到“cas”文件夹中

CAS禁用HTTPS,设置Cookie过期时间

若安全级别不高,不需要证书,可以选择禁用https启用http访问。

cas-server是基于spring开发的,其配置为spring-bean配置文件

在上一步解压“cas”文件夹中修改:

1.WEB-INF/deployerConfigContext.xml中增加参数 p:requireSecure="false" ,是否需要安全验证,即 HTTPS,false 为不采用 如下:< bean class = "org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref = "httpClient" p:requireSecure= "false" />

2. WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml中将p:cookieSecure="true"修改为 p:cookieSecure="false" 禁用httpsp:cookieMaxAge 为过期时间,-1为浏览器关闭后失效。

3. WEB-INF/spring-configuration/warnCookieGenerator.xml中将p:cookieSecure="true"改为 p:cookieSecure="false" 禁用httpsp:cookieMaxAge 为过期时间,-1为浏览器关闭后失效。

启动tomcat测试

win环境下双击TomCat 7.0.92\bin\startup.bat,Tomcat默认是8080端口,访问http://localhost:8080/cas/login,正常情况是CAS的官方登录页面。

若修改Tomcat的端口,必须要改CAS服务器的配置\WEB-INF\cas.properties的server.name

请手动输入账号与密码,默认账号:casuser,密码:Mellon; 如果用户名与密码相同,系统也显示登录成功;

图中Non-secure提醒因为禁用了HTTPS 

使用startup.bat启动tomcat,可以查看cas-server的控制台信息。

https://blog.csdn.net/shanchahua123456/article/details/85570647

控制台信息:

测试环境是通过NGINX(:80)代理localhost:8787服务,localhost:8787项目配置了通用前缀/b,所以其根地址为localhost:8787/b。 

 

服务端数据源设置 

配置数据源,让CAS服务器到数据库中查询用户名密码做登录认证。

(1)修改 cas 服务端中 web-inf 下 deployerConfigContext.xml ,添加如下配置

<!--认证密码查询-->
<bean id="dbAuthHandler"
class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"
p:dataSource-ref="dataSource"
p:sql="select password from tb_user where username = ?"
p:passwordEncoder-ref="passwordEncoder"/>

<!--配置数据源-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
p:driverClass="com.mysql.jdbc.Driver"
p:jdbcUrl="jdbc:mysql://127.0.0.1:3306/casdb?characterEncoding=utf8"
p:user="root"
p:password="root" />

<!--密码的解码格式-->
<!--CAS也支持已定义encoder,实现org.jasig.cas.authentication.handler.PasswordEncoder接口-->
<bean id="passwordEncoder"
class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder"
c:encodingAlgorithm="MD5"
p:characterEncoding="UTF-8" />

然后在配置文件开始部分找到如下配置,添加上面配置的dbAuthHandler

<bean id="authenticationManager" class="org.jasig.cas.authentication.PolicyBasedAuthenticationManager">
    <constructor-arg>
        <map>
        <entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" />
        <!--添加自己配置的DB源查询-->
        <entry key-ref="dbAuthHandler" value-ref="primaryPrincipalResolver"/>
        <!--默认的primaryPrincipalResolver可以注释掉-->
        <!--<entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver"/>-->          
        </map>
    </constructor-arg>

    <property name="authenticationPolicy">
        <bean class="org.jasig.cas.authentication.AnyAuthenticationPolicy" />
    </property>
</bean>

(2)将以下三个 jar 放入 webapps\cas\WEB-INF\lib 下

cas-server-support-jdbc-4.0.0.jar(在“cas-server-4.0.0-release.zip” 的“modules”文件夹中), mysql-connector-java-5.1.32.jar,c3p0-0.9.1.2.jar

国际化

修改WEB-INF\spring-configuration\applicationContext.xml,将国际化配置文件切换为汉语

  <util:list id="basenames">
        <value>classpath:custom_messages</value>
        <value>classpath:messages_zh_CN</value>
    </util:list>

自定义登录页面

默认统一使用的是CAS提供的登录页面。其路径是Cas-Server项目下\WEB-INF\view\jsp\default\ui\casLoginView.jsp 和 \WEB-INF\view\jsp\default\ui\includes\top.jsp。

将自己的js、css、image放到Cas-Server项目主目录的js、images、css 文件夹中。

修改:将原登录页面的样式/文字修改

替换:可以将自己的同名登录页面覆盖原页面casLoginView.jsp,

注意替换的登录页,要包含原登录页的主要表单元素和引用的js,jsp等标签

猜你喜欢

转载自blog.csdn.net/shanchahua123456/article/details/85547516