cas5.2.6 搭建cas服务端

2023-05-16

 

1.打包cas服务器端war包

下载cas-overlay-template-5.2.zip

1.1配置pom.xml

<dependencies>
        <dependency>
            <groupId>org.apereo.cas</groupId>
            <artifactId>cas-server-support-jdbc-drivers</artifactId>
            <version>${cas.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apereo.cas</groupId>
            <artifactId>cas-server-support-jdbc</artifactId>
            <version>${cas.version}</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>
    </dependencies>

1.2增加src/main/resources目录

添加application.properties如下:

##
# CAS Server Context Configuration
#
server.context-path=/cas
server.port=8443

server.ssl.key-store=file:/etc/cas/thekeystore
server.ssl.key-store-password=changeit
server.ssl.key-password=changeit
# server.ssl.ciphers=
# server.ssl.client-auth=
# server.ssl.enabled=
# server.ssl.key-alias=
# server.ssl.key-store-provider=
# server.ssl.key-store-type=
# server.ssl.protocol=
# server.ssl.trust-store=
# server.ssl.trust-store-password=
# server.ssl.trust-store-provider=
# server.ssl.trust-store-type=

server.max-http-header-size=2097152
server.use-forward-headers=true
server.connection-timeout=20000
server.error.include-stacktrace=ALWAYS

server.compression.enabled=true
server.compression.mime-types=application/javascript,application/json,application/xml,text/html,text/xml,text/plain

server.tomcat.max-http-post-size=2097152
server.tomcat.basedir=build/tomcat
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%t %a "%r" %s (%D ms)
server.tomcat.accesslog.suffix=.log
server.tomcat.max-threads=10
server.tomcat.port-header=X-Forwarded-Port
server.tomcat.protocol-header=X-Forwarded-Proto
server.tomcat.protocol-header-https-value=https
server.tomcat.remote-ip-header=X-FORWARDED-FOR
server.tomcat.uri-encoding=UTF-8

spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true

##
# CAS Cloud Bus Configuration
#
spring.cloud.bus.enabled=false
# spring.cloud.bus.refresh.enabled=true
# spring.cloud.bus.env.enabled=true
# spring.cloud.bus.destination=CasCloudBus
# spring.cloud.bus.ack.enabled=true

endpoints.enabled=false
endpoints.sensitive=true

endpoints.restart.enabled=false
endpoints.shutdown.enabled=false

management.security.enabled=true
management.security.roles=ACTUATOR,ADMIN
management.security.sessions=if_required
management.context-path=/status
management.add-application-context-header=false

security.basic.authorize-mode=role
security.basic.enabled=false
security.basic.path=/cas/status/**

##
# CAS Web Application Session Configuration
#
server.session.timeout=300
server.session.cookie.http-only=true
server.session.tracking-modes=COOKIE

##
# CAS Thymeleaf View Configuration
#
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.cache=true
spring.thymeleaf.mode=HTML
##
# CAS Log4j Configuration
#
# logging.config=file:/etc/cas/log4j2.xml
server.context-parameters.isLog4jAutoInitializationDisabled=true

##
# CAS AspectJ Configuration
#
spring.aop.auto=true
spring.aop.proxy-target-class=true

##
# CAS Authentication Credentials
#
#cas.authn.accept.users=casuser::Mellon

 

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

# ticket\u8FC7\u671F\u8BBE\u7F6E
cas.ticket.st.numberOfUses=10
cas.ticket.st.timeToKillInSeconds=600

#登出后自动跳转到/cas/logout?service=http://... service后跟的地址

cas.logout.followServiceRedirects=true

#mysql 8.0.12
#cas.authn.jdbc.query[0].url=jdbc:mysql://localhost:3306/DY_PMIS?serverTimezone=UTC&useSSL=false
#cas.authn.jdbc.query[0].user=root
#cas.authn.jdbc.query[0].password=
#cas.authn.jdbc.query[0].sql=SELECT * FROM myuser WHERE username=?
#cas.authn.jdbc.query[0].fieldPassword=yourpasswordfiledname
#cas.authn.jdbc.query[0].driverClass=com.mysql.cj.jdbc.Driver
#
#cas.authn.jdbc.query[0].passwordEncoder.type=com.encode.cas.CustomPasswordEncode
#cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8
#cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5

#mysql 5.6.22
cas.authn.jdbc.query[0].url=jdbc:mysql://ip:3306/DY_PMIS?serverTimezone=UTC&useSSL=false
cas.authn.jdbc.query[0].user=root
cas.authn.jdbc.query[0].password=
cas.authn.jdbc.query[0].sql=SELECT * FROM usert WHERE com_num=?
cas.authn.jdbc.query[0].fieldPassword=yourpasswordfiledname
cas.authn.jdbc.query[0].driverClass=com.mysql.cj.jdbc.Driver

cas.authn.jdbc.query[0].passwordEncoder.type=com.encode.cas.CustomPasswordEncode
cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8
cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5
 

1.3 如果为md5加密,如上配置cas.authn.jdbc.query[0].passwordEncoder.type=com.encode.cas.CustomPasswordEncode:

package com.encode.cas;

import java.math.BigInteger;
import java.security.MessageDigest;

import org.springframework.security.crypto.password.PasswordEncoder;

public class CustomPasswordEncode implements PasswordEncoder{

    @Override
    public String encode(CharSequence password) {
        try {
            //给数据进行md5加密
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(password.toString().getBytes());
            return new BigInteger(1, md.digest()).toString(16);
        } catch (Exception e) {
            return null;
        }
    }

    @Override
    public boolean matches(CharSequence rawPassword, String encodePassword) {
        // 判断密码是否存在
        if (rawPassword == null) {
            return false;
        }

        //通过md5加密后的密码
        String pass = this.encode(rawPassword.toString());
        //比较密码是否相等的问题
        return pass.equalsIgnoreCase(encodePassword);
    }
}
2.部署

将war包放到tomcat webapp 下

启动后,在浏览器输入http://localhost:8080/cas出现登陆页面ok

 

 

 

坑:

注意:下载非overlay,打包不成功

mysql驱动包版本过低,数据库连接池报错

注意:tomcat版本

https://blog.csdn.net/u013825231/article/details/79132399

https://jingyan.baidu.com/article/fdbd4277a615e9b89e3f481c.html

https://www.jianshu.com/p/5a1eed54fe54

https://blog.csdn.net/yelllowcong/article/details/79236506

 

ext {
    publishSnapshots = Boolean.getBoolean("publishSnapshots")
    publishReleases = Boolean.getBoolean("publishReleases")
    sonatypeUsername = System.getProperty("sonatypeUsername")
    sonatypePassword = System.getProperty("sonatypePassword")
    testCategoryType = System.getProperty("testCategoryType")
    forceBom = Boolean.getBoolean("forceBom")
    enableRemoteDebugging = Boolean.getBoolean("enableRemoteDebugging")
    continuousIntegrationBuild = Boolean.getBoolean("CI") || Boolean.getBoolean("TRAVIS") || Boolean.getBoolean("CONTINUOUS_INTEGRATION")

    publishingRelease = publishReleases && rootProject.sonatypeUsername != null && rootProject.sonatypePassword != null
    /*
    Open the Git repository in the current directory.
    Get commit id of HEAD.
     */
    //git = org.ajoberstar.grgit.Grgit.open(dir: file('.').canonicalPath)
    //def gitHead = git.head()
    currentRevision = "cas-5.3.6"
    //currentAbbreviatedRevision = gitHead.abbreviatedId

}

def isArtifactSigningRequired = {
    return (publishReleases && sonatypeUsername != null && sonatypePassword != null)
}

/*
    See: https://github.com/tbroyer/gradle-errorprone-plugin/issues/56
    Do not use caching by default to work around issues with parallel builds.
    TODO May be removed with Java 9 and above.
 */
if (JavaVersion.VERSION_1_8.isJava8()) {
    def url = new URL("$projectUrl")
    new HttpURLConnection(url) {
        @Override
        void connect() throws IOException {
        }
        @Override
         void disconnect() {
        }
        @Override
        boolean usingProxy() {
            return false
        }
    }.setDefaultUseCaches(false)
}

apply from: rootProject.file("gradle/overrides.gradle")
apply from: rootProject.file("gradle/dependencies.gradle")
apply plugin: "com.github.kt3k.coveralls"
apply plugin: "com.github.ben-manes.versions"

buildscript {
    repositories {
        mavenLocal()
        jcenter()
        /* maven { url "https://maven.eveoh.nl/content/repositories/releases" }        
        */
        maven { url "http://maven.aliyun.com/nexus/content/groups/public/"}

        maven { url "https://plugins.gradle.org/m2/" }
        maven { url "https://repo.spring.io/plugins-release" }
    }

    dependencies {
        classpath "org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion"
        classpath "com.netflix.nebula:gradle-lint-plugin:9.3.2"
        classpath "io.franzbecker:gradle-lombok:1.14"
        classpath "com.github.ben-manes:gradle-versions-plugin:0.17.0"
        classpath "io.spring.gradle:propdeps-plugin:0.0.10.RELEASE"
        classpath "org.ajoberstar:grgit:2.2.0"
        classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.0.14"
        classpath "com.moowork.gradle:gradle-node-plugin:1.2.0"
        classpath "org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.8.2"
        classpath "org.owasp:dependency-check-gradle:3.3.2"
    }
}

 

cas服务端:

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

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cas5.2.6 搭建cas服务端 的相关文章

随机推荐

  • git push origin --tags失败,提示prohibited by Gerrit

    环境 xff1a linux 43 jenkins 43 gradle 情景 xff1a gradle 编译android包的时候 xff0c 希望Push tag到remote 服务器 xff0c 每次都失败在git push origi
  • PB编程:键盘enter默认触发和界面打开默认输入

    1 键盘enter默认触发 xff1a 键盘按下enter后 xff0c 触发某个按钮 在该界面的KEY事件中 xff0c 输入代码 xff1a if keydown keyenter then cb 1 triggerevent 34 c
  • Mininet

    部分转载自 负载均衡 常用命令 link s1 h2 downlink s1 h2 up通过 switch 选项跟 controller选项可以分别指定采用哪种类型的交换机跟控制器 xff0c 例如使用用户态的交换sudo mn switc
  • 我的2014

    我是一个双鱼座的女孩 xff0c 我很喜欢幻想 没事时总是会喜欢去想象自己的未来或者近期生活的样子 进入大学后 xff0c 我发现很多东西很多事都不是想象中的那么美好 大学生活不似想象中的那么简单轻松 xff0c 想要学好自己的专业 xff
  • 开源的文本标注工具

    开源的标注工具 自然语言处理标记工具汇总 https blog csdn net wangyizhen nju article details 94559607 spacy原来有两个标注工具 xff0c displaCy ent和displ
  • 网络虚拟化协议GENEVE

    去年看到过一篇文章 1 xff0c 说是通过OpenVSwitch的测试 xff0c GENEVE的性能要略优于VXLAN 我相信大多数人的反应可能跟我的第一反应一样 xff0c 这不又是一种Overlay协议吗 xff1f 为什么性能会更
  • C++ 一个简单的判断子网掩码是否有效的函数

    简介 子网掩码 subnet mask 又叫网络掩码 地址掩码 子网络遮罩 xff0c 它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网 xff0c 以及哪些位标识的是主机的位掩码 子网掩码不能单独存在 xff0c 它必须结合IP
  • css中块元素和内联元素有什么区别?

    块级元素和内联元素 xff0c 我想接触过CSS的朋友都有所了解 xff0c 但是在实际写CSS代码时却考虑的并不多 xff0c 我们无意中就已经按照块级元素和内联元素的规则进行布局样式了 我有时在想 xff0c 为什么要区别块级元素和内联
  • 用docker启动ubuntu的桌面环境

    在win10下使用了docker之后 xff0c 已经完全抛弃了之前虚拟机的开发方式 xff0c 在学习一些计算机视觉相关的内容时 xff0c 可能需要在图形化界面进行开发和调试 xff0c 所以尝试了下在dockerhub上搜索了下支持d
  • 使用Git Extensions直接push代码到Gerrit审核

    公司使用Gerrit代码审核 xff0c 本地push代码只能提交到refs for branch xff0c 所以使用git bash进行push时 xff0c 需要使用如下命令 git push origin HEAD refs for
  • C++避免变量重复定义

    C 43 43 小白选手 求轻拍 在A cpp B cpp文件中同时包含B h 这样的话在B h中的变量就会重复定义了 解决的办法是在B h中 变量前面加上extern关键字 在B cpp文件中再定义一次
  • 使用Eclipse编译运行MapReduce程序

    下载eclipse 64位 http eclipse bluemix net packages mars 1 JAVA LINUX64 解压到安装目录 安装 Hadoop Eclipse Plugin 要在 Eclipse 上编译和运行 M
  • 内部网盘phpdisk创建记录

    PHPDISK的这次创建是在PHPWIND8 7的基础上 xff0c 一起安装的 xff0c 所以单独安装PHPDISK所需要的RPM包就不需要再安装了 将PHPDISK解压缩后 xff0c UPLOAD文件夹里面的东西 xff0c 复制到
  • July 17th 模拟赛C T2 Number Solution

    空降题目处 外网 点我点我点我 空降题目处 内网 点我点我点我 Description 给出一个整数 xff0c 你可以对 进行两种操作 1 将x变成4x 43 3 2 将x变成8x 43 7 问 xff0c 最少通过多少次操作 xff0c
  • np.maximum vs np.minimum

    一直按照字面意思理解 xff0c 以为maxmum取最大值 examples 原来是有广播机制的 xff0e np maximum 取对应位置上的大值 xff0c np minimum 取对应位置上的较小值 xff0e import num
  • tensorflow通过模型文件,使用tensorboard查看其模型图Graph

    Google提供了一个工具 xff0c TensorBoard xff0c 它能以图表的方式分析你在训练过程中汇总的各种数据 xff0c 其中包括Graph结构 所以我们可以简单的写几行Pyhton xff0c 加载Graph xff0c
  • numpy中np.maximum的使用

    np maximum X Y out 61 None X和Y逐位进行比较 选择最大值 xff0c 最少接受两个参数 gt gt gt np maximum 2 3 4 1 5 2 array 2 5 4 gt gt gt np maximu
  • [svn]status命令

    wangyetao 64 linux u1604 LinuxRoom SVN FILE 个人空间 xx wangyetao 64 linux u1604 LinuxRoom SVN FILE 个人空间 xx svn help status
  • 维护型项目的管理

    最近 xff0c 一直在维护一个项目 项目很大 xff0c 有很多个系统相互配合 xff0c 且使用的语言也不一样 有JAVA写的系统 xff0c 有PHP写的 xff0c 各系统用的数据库也不一样 xff0c 还有一些我说不出来的技术 项
  • cas5.2.6 搭建cas服务端

    1 打包cas服务器端war包 下载cas overlay template 5 2 zip 1 1配置pom xml lt dependencies gt lt dependency gt lt groupId gt org apereo