zoukankan      html  css  js  c++  java
  • springboot项目使用cas进行单点登录-服务器端实现

    说明 :

    1:实现目标,多个springboot项目,使用cas 实现单点登录。

    2:cas使用cas-overlay-template-5.3版本 springboot 2.0 tomcat9 jdk1.8 开发平台 idea

    详细过程

    重要配置:先记录下:

    application.properties 里配置

    cas.tgc.secure=false
    cas.serviceRegistry.initFromJson=true

    还有一个 HTTPSandIMAPS-10000001.json 添加http, 这个会影响 客户端使用http访问

    {
      "@class" : "org.apereo.cas.services.RegexRegisteredService",
      "serviceId" : "^(https|http|imaps)://.*",
      "name" : "HTTPS and IMAPS",
      "id" : 10000001,
      "description" : "This service definition authorizes all application urls that support HTTPS and IMAPS protocols.",
      "evaluationOrder" : 10000
    }

    1:下载 cas-overlay-template-5.3

    下载地址:https://github.com/apereo/cas-overlay-template/tree/5.3

    ,然后解压到你想放的地址

    2:导入idea中,什么都不用修改,打包,放入到本地tomcat下,启动tomcat ,就可以看到登录页面,默认账号只有一个

    casuser:Mellon. 到这一步,算是和cas有个初步的印象。

    进行一些修改,变成自己想要的模样

    3:使用数据库用户

    添加jdbc依赖,不要插错位置,在pom里有一段注释很清楚的写着:

    <!--
                    ...Additional dependencies may be placed here...
                    -->

    然后在这里插入三个依赖包:

     <!-- https://mvnrepository.com/artifact/org.apereo.cas/cas-server-support-jdbc -->
                    <dependency>
                        <groupId>org.apereo.cas</groupId>
                        <artifactId>cas-server-support-jdbc</artifactId>
                        <version>${cas.version}</version>
                    </dependency>
                    <!-- https://mvnrepository.com/artifact/org.apereo.cas/cas-server-support-jdbc-drivers
                     通过mvn命令添加的
                    -->
                    <dependency>
                        <groupId>org.apereo.cas</groupId>
                        <artifactId>cas-server-support-jdbc-drivers</artifactId>
                        <version>${cas.version}</version>
                        <scope>runtime</scope>
                    </dependency>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.46</version>
                    </dependency>

    4:重新打包

    就会发现,一直在downloading downloaded...慢,一直等到打包成功,因为默认的下载路径应该是国外服务器,所以特别的慢,于是改下maven setting里修改,配置到阿里云镜像,

     <mirror>
          <id>nexus</id>
          <mirrorOf>*</mirrorOf> 
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </mirror>
        <mirror>
          <id>nexus-public-snapshots</id>
          <mirrorOf>public-snapshots</mirrorOf>
          <url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url>
    </mirror>

    再重新打包,发现特别的快,而且下载了很多jar,但还是没有成功,报错此文件找不到,于是自己下载,手动加载到本地库(这个应该都很熟悉了吧,搜索一大把的有)

    5:修改项目的application.properties 文件,注掉默认的用户,添加数据库配置,这样再使用tomcat访问,用户就是自己数据库里配置的了。

    ##
    # CAS Authentication Credentials
    #
    #cas.authn.accept.users=casuser::Mellon
    
    # add db infor
    cas.authn.jdbc.query[0].url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
    cas.authn.jdbc.query[0].user=root
    cas.authn.jdbc.query[0].password=root
    cas.authn.jdbc.query[0].sql=select * from user where username=?
    cas.authn.jdbc.query[0].fieldPassword=password
    cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver

     6:继续修改,之前登录页面一直有 两个warning,一个是提示要使用https,一个是要使用数据库,数据库的我们已经实现了,现在修改https

    要实现https,要有keystore,使用

    keytool -genkey -alias cas -keyalg RSA -keysize 2048 -keypass 123456 -storepass 123456 -keystore D:/angin.keystore -dname "CN=localhost,OU=angiiin.com,O=angiiiin,L=TianJin,ST=TianJin,C=CN"

    生成后 配置tomcat  server.xml,同时把8080商品的http连接器注掉,这样再启动tomcat登录就可以使用https了。

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                   maxThreads="150" SSLEnabled="true">
            <SSLHostConfig>
                <Certificate certificateKeystoreFile="D:/angiiiin.keystore"
                             type="RSA" certificateKeystoreType="JKS" certificateKeystorePassword="123456"/>
            </SSLHostConfig>
     </Connector>
    找到那个感觉 就算打开了那个脑洞

    本文来自博客园,作者:xiao~xiao,转载请注明原文链接:https://www.cnblogs.com/angin-iit/p/12336388.html

  • 相关阅读:
    Luogu4233 射命丸文的笔记 DP、多项式求逆
    LOJ2267 SDOI2017 龙与地下城 FFT、概率密度函数、Simpson
    LOJ2882 JOISC2014 两个人的星座 计算几何
    UOJ343 清华集训2017 避难所 构造、打表
    Solution -「CTS2019」珍珠
    「珂朵莉树」学习笔记
    CSP2019-J/S 游记
    LeetCode(164)Maximum Gap
    LeetCode(165) Compare Version Numbers
    LeetCode(162) Find Peak Element
  • 原文地址:https://www.cnblogs.com/angin-iit/p/12336388.html
Copyright © 2011-2022 走看看