• CAS单点登录(SSO)服务端的部署和配置---连接MySQL进行身份认证


    一、修改系统host,加入

    127.0.0.1 server.test.com
    127.0.0.1 client1.test.com
    127.0.0.1 client2.test.com

    二、安装gradle,配置好环境变量(请参考gradle的相关资料)

    三、首先到github下在CAS的发布的相应版本,https://github.com/apereo/cas/releases,解压出来

    进入cas-server-webapp目录,在此目录下打开cmd

    输入gradle build回车,build successful编译打包成功之后,会生成一个build目录,进入到build的lib目录

    这里我们就看到了CAS认证服务端的war包。

    第四步、配置tomcat的HTTPS

    【安全证书配置】:
    1. 打开cmd命令窗口
    2. 生成证书,在cmd窗口输入以下命令:
    keytool -genkey -alias ssodemo -keyalg RSA -keysize 1024 -keypass zhoubang -validity 365 -keystore c:zhoubang.keystore -storepass zhoubang
    【说明】:-alias后面的别名可以自定义,-keypass指定证书密钥库的密码, -storepass和前面keypass密码相同,否则下面tomcat 配置https 会访问失败 -keystore指定证书的位置,这里指定放在c盘根目录,密钥库名称可以自定义,这里是zhoubang.keystore
    3. 命令输入完成,回车之后,会提示你输入一些资料,见下图:

    【注意】:第一个让你输入的“您的名字与姓氏是什么”
    4.导出证书:
    在cmd窗口继续输入以下命令,导出证书:
    keytool -export -alias ssodemo -keystore c:zhoubang.keystore -file c:ssodemo.crt -storepass zhoubang
    【说明】:-alias后面的名称要与生成证书的命令里面的alias的名称一致. –keystore后面指定证书存放的位置,这里我放在C盘根目录,同时证书名称要与【生成证书】对应的命令里的keystore名称一致.这里是zhoubang.keystore,-file后面才crt路径,我也指定在c盘根目录. –storepass的证书密码要与上面输入的密码一致.
    如下图所示:
    我们再看看c盘下面是否生成crt文件:
    5.客户端导入证书
    在cmd窗口输入命令:
    keytool -import -keystore %JAVA_HOME%jrelibsecuritycacerts -file c: ssodemo.crt -alias ssodemo
    【说明】:-file指定证书的位置,也就是上一步导出证书的位置,即c: ssodemo.crt 命令中指定了JAVA_HOME,意思是将证书导入到客户端证书库,也就是jdk证书库中.因为客户端应用运行在本地,需要jdk的支持。
    回车之后,会让你输入密钥库口令,注意,这里的密码必须要输入changeit,不能输入上面指定的密码zhoubang,切记,否则导入客户端证书会有问题,如果是多台机器演示,需要在每一台客户端导入该证书,步骤都是一样的。当看到提示“是否信任此证书”,输入y回车即可,见下图:(说明,命令中的-alias后面的别名可以自定义,如果出现【证书未导入,别名<***>已经存在】的错误,该意思是说客户端的密钥库中已经存在该别名证书了,重新指定其他别名即可.)

    至此,CAS所需的证书环境,已经配置好。
    下面,开始我们的CAS服务、Tomcat、以及多客户端的配置及测试访问。

    ● 部署CAS-Server相关的Tomcat
    1. 配置HTTPS
    解压apache-tomcat-7.0.57-windows-x64.zip,我本地路径为E:apache-tomcat-7.0.57,编辑E:apache-tomcat-7.0.57confserver.xml,找到下面片段:
    <!--
    <Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
    -->
    去掉注释,修改成:

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
    maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
    keystoreFile="C:/zhoubang.keystore" keystorePass="zhoubang"
    clientAuth="false" sslProtocol="TLS" />

    其中,keystoreFile就是创建证书的路径,keystorePass就是创建证书的密码.
    2. 验证HTTPS配置
    其他按照默认配置不作修改,双击E:apache-tomcat-7.0.57in startup.bat 启动tomcat 验证https是否配置成功,我本地使用火狐浏览器访问,在地址栏输入
    https://server.test.com:8443/ 出现下面画面,其实这就表明cas服务端tomcat的https配置是没有问题了.
    点击【我已充分了解可能的风险】,点击出现的【添加例外】—【确认安全例外】,,将会出现下面tomcat默认首页.tomcat已经支持https协议访问了,一切ok!

     第五步、将war包重命名为cas-server-webapp.war,放到tomcat的webapps目录,进入自动解压的文件夹

    打开属性配置文件

    这个就是测试用户名和密码

    输入用户名密码验证登录

    说明部署是没问题的。

    第六步、创建一个MySQL数据库,新建一张users表,添加username和password字段

    第七步、配置数据库认证

    参考官方文档:https://apereo.github.io/cas/4.2.x/installation/Database-Authentication.html#database-components

    首先拷贝MySQL驱动到cas-server-webapp项目的lib目录下

    然后到下载的CAS源码的cas-server-support-jdbc目录下gradle build编译jdbc的支持jar包

    编译好之后,同样到build》libs目录下拷贝cas-server-support-jdbc-4.2.7.jar包到cas-server-webapp项目的lib目录下

    打开deployerConfigContext.xml配置文件

    将<alias name="acceptUsersAuthenticationHandler" alias="primaryAuthenticationHandler" />这一行注释掉

    加入

    <alias name="queryDatabaseAuthenticationHandler" alias="primaryAuthenticationHandler" />
    <alias name="dataSource" alias="queryDatabaseDataSource" />
    
    <bean id="dataSource"
    class="com.mchange.v2.c3p0.ComboPooledDataSource"
    p:driverClass="${database.driverClass}"
    p:jdbcUrl="${database.url}"
    p:user="${database.user}"
    p:password="${database.password}"
    p:initialPoolSize="${database.pool.minSize}"
    p:minPoolSize="${database.pool.minSize}"
    p:maxPoolSize="${database.pool.maxSize}"
    p:maxIdleTimeExcessConnections="${database.pool.maxIdleTime}"
    p:checkoutTimeout="${database.pool.maxWait}"
    p:acquireIncrement="${database.pool.acquireIncrement}"
    p:acquireRetryAttempts="${database.pool.acquireRetryAttempts}"
    p:acquireRetryDelay="${database.pool.acquireRetryDelay}"
    p:idleConnectionTestPeriod="${database.pool.idleConnectionTestPeriod}"
    p:preferredTestQuery="${database.pool.connectionHealthQuery}" />

    ,然后打开cas.properties,加入数据库的相关配置如下:(请修改为自己的数据库地址,用户名和密码)

    # == Basic database connection pool configuration ==
    database.driverClass=com.mysql.jdbc.Driver
    database.url=jdbc:mysql://127.0.0.1:3306/sso_test?useUnicode=true&amp;characterEncoding=UTF-8&amp;
    database.user=root
    database.password=admin
    database.pool.minSize=6
    database.pool.maxSize=18
    
    # Maximum amount of time to wait in ms for a connection to become
    # available when the pool is exhausted
    database.pool.maxWait=10000
    
    # Amount of time in seconds after which idle connections
    # in excess of minimum size are pruned.
    database.pool.maxIdleTime=120
    
    # Number of connections to obtain on pool exhaustion condition.
    # The maximum pool size is always respected when acquiring
    # new connections.
    database.pool.acquireIncrement=6
    
    # == Connection testing settings ==
    
    # Period in s at which a health query will be issued on idle
    # connections to determine connection liveliness.
    database.pool.idleConnectionTestPeriod=30
    
    # Query executed periodically to test health
    database.pool.connectionHealthQuery=select 1
    
    # == Database recovery settings ==
    
    # Number of times to retry acquiring a _new_ connection
    # when an error is encountered during acquisition.
    database.pool.acquireRetryAttempts=5
    
    # Amount of time in ms to wait between successive aquire retry attempts.
    database.pool.acquireRetryDelay=2000

    然后重启tomcat,验证登录

     输入数据库的账号密码

    至此CAS单点登录认证服务端就部署好了。

  • 相关阅读:
    Nop中的Cache浅析
    使用DapperExtensions实现简单仓储
    使用nodejs爬取拉勾苏州和上海的.NET职位信息
    使用Microsoft Fakes进行单元测试(2)
    使用Microsoft Fakes进行单元测试(1)
    小程序之滚动到页面底部
    小程序之动态修改页面标题
    小程序之面试题
    小程序之公共组件的开发
    小程序之web-view打开外部链接
  • 原文地址:https://www.cnblogs.com/jay763190097/p/6492005.html
Copyright © 2020-2023  润新知