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服务端 的相关文章

  • 轻松搭建CAS 5.x系列(6)-在CAS Server上增加OAuth2.0协议

    概述说明 CAS Server默认搭建出来 xff0c 客户端程序只能按照CAS自身的协议接入 CAS的强大在于 xff0c 有官方的插件 xff0c 可以支持其他的协议 本章节就让CAS Server怎么增加OAuth2 0的登录协议 安
  • CAS server6.x配置与部署笔记

    由于最近将公司的springboot升级到了springboot2 xff0c 而5 x的cas server使用的是springboot1 xff0c 因此为了更方便的开发cas server xff0c 将cas server升级为6
  • 实战:CAS搭建

    一 CAS服务器的搭建 1 下载CAS服务器的源码 xff0c 我下载的是CAS Maven WAR Overlay 的分支4 2 X版本 注 xff1a 如若不想了解查找下载地方过程 xff0c 请直接参见 xff08 3 xff09 的
  • 锁与CAS详解

    一 悲观锁与乐观锁 乐观锁和悲观锁问题 xff0c 是出现频率比较高的面试题 本文将由浅入深 xff0c 逐步介绍它们的基本概念 实现方式 含实例 适用场景 xff0c 以及可能遇到的面试官追问 xff0c 希望能够帮助你打动面试官 乐观锁
  • 搭建Cas服务

    环境要求 JDK 1 8CAS 5 3tomcat 9 1 cas项目下载地址 xff1a https github com apereo cas overlay template tree 5 3 2 使用idea导入cas overla
  • cas-overlay-template-5.3 集成Oauth2.0

    第一步 在pom xml 文件添加oauth2 0协议支持
  • 单点登录CAS学习(二):使用IDEA搭建cas-overlay-5.3工程

    上一篇对于单点登陆进行了初步了解 我们做单点登录应用的时候 会有两个场景 单点登录的服务端 单点登录的客户端 指各个应用系统 从本篇开始的系列文章将分别介绍服务端的工程如何搭建 客户端如何改造以适用于单点登录 首先从服务端开始 我们往往需要
  • ABA问题基础及解决

    一 ABA问题的产生 二 AtomicReference原子引用 三 AtomicStampedReference版本号原子引用 四 ABA问题解决 前面的内容之间的关联 CAS gt Unsafe类 gt CAS思想 gt ABA问题 g
  • cas 编译安装依赖时提示: Failure to find net.shibboleth.tool:xmlsectool:jar:2.0.0

    错误信息 Could not resolve dependencies for project org apereo cas cas overlay war 1 0 Failure to find net shibboleth tool x
  • Spring Security 与 CAS 集成

    任何人都可以在此处粘贴简单的步骤来集成 Spring security 和 CAS 以进行单点登录和单点退出 注意我不需要任何基于角色的访问 我有一个已经与 Spring Security 集成的 Web 应用程序 现在我尝试使用 CAS
  • CAS 服务票证验证失败

    我已点击链接http lukesampson com post 315838839 cas on windows localhost setup in 5 mins 则cas服务器工作正常 登录url为http 10 1 1 26 8080
  • 如何实施单点登录

    我想实现 SSO 单点登录 我发现了很多关于 CAS OpenID 和许多不同事物的链接和文章 我真的迷失了那么我应该使用 CAS 吗 我安装了 CAS Server 并将其部署到 Tomcat 中 你下一步怎么做 或者这是错误的 您能解释
  • Grails:Spring Security CAS 在 2.2.3 中工作,但在 2.3.0 中不起作用

    我有一个使用 Groovy 2 0 的 Grails 2 2 3 项目 我使用 Spring Security 将其设置为使用 CAS 进行身份验证 使用 LDAP 进行用户角色 当我运行应用程序时 一切都按预期进行 任何人都允许访问 ap
  • 当 Apache Web 服务器使用 mod_jk 连接 Tomcat 时启用 SSL

    I have usr local tomcat webapps cas 我的 java 应用程序正在运行 当我尝试连接 Tomcat 和 Apache Web 服务器 httpd 之后http 192 168 0 117 cas我可以看到登
  • 使用 Spring Security + CAS 进行循环重定向,但应该可以工作

    我正在尝试将基本应用程序从仅使用 Spring Security 更改为使用 CAS 以启用 SSO 但我在某个地方遇到了重定向循环 并且我无法找出问题所在 我还制作了另外两个模拟应用程序 在 CAS 上没有问题 因为它们正在工作 我使用
  • 有没有办法有条件地应用注释?

    在我的 java play 应用程序中 我有注释 RequiresAuthentication clientName CasClient 在我的控制器内 我只想在生产环境中对用户进行身份验证 如何有条件地应用注释 如果我处理身份验证的方式是
  • 使用 Grails Spring Security CAS 插件重定向循环

    我正在处理一个涉及 CAS 服务器的项目 该项目使用单点登录 SSO 与其他基于 Spring 的项目一起使用 但我收到了涉及 Grails spring security cas 插件的重定向循环 版本 spring security C
  • 在 CAS 中,如果尚未接受协议,如何限制仅访问一项服务?

    有一个要求 用户应该首先接受一些许可协议 存在仅在服务中 以便能够登录所有其他服务 所以流程应该是 用户通过CAS登录 因为他还没有接受协议 所以只能登录serviceS 当他接受serviceA上的协议后 他也可以登录其他服务 Notes
  • 如何使用第三方 CAS 身份验证从独立的 React 前端和 django 后端(相同域,不同端口)对用户进行身份验证?

    我正在设置 django 后端Django REST framework用于提供API 通过第三方CAS服务器实现身份验证 目前我的后端认证已经成功实现 使用django cas ngpackage 这意味着我可以为不同的用户组实现不同的权
  • 浏览器不遵循 AJAX 响应的重定向(PHP 生成的响应使用 CAS 身份验证)

    好吧 看来我最初的问题犯了一个错误 因此 这里有一些更正 答案仍然适用 因为当协议更改为 HTTPS SSL 时 第二个重定向就会停止 就我而言 重定向发生了多次 并且浏览器不遵循第二次重定向 遵循第一个重定向 但返回错误 我一直读到包含重

随机推荐

  • 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