Cas5.3.2 服务端 自定义登入界面

2023-11-03

第一:项目整体结构:

自定义页面涉及资源全部存放再src/main/resources 文件夹目录下:

目录 含义
services 配置自定义登入网站模板
static 静态文件目录,用于存放js,css代码的
templates 模板文件目录,用于存放html
digipower.properties 存放digipower网站模板的配置信息

 

services 目录配置

service目录,设定每一个子网站对应的请求样式,如果不设定,默认使用指定默认样式。

HTTPSandIMAPS-10000001.json 文件解析

该json配置文件是系统默认的登录模板,自定义模板配置文件规则:文件名称+id.json,如果不是这种格式cas 服务端不然找不到配置文件。

  HTTPSandIMAPS-10000001.json 文件内容:

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

自定义模板配置文件内容(digipower-1000.json):

{
  "@class" : "org.apereo.cas.services.RegexRegisteredService",
  "serviceId" : "^(https|imaps|http)://.*",
  "name" : "digipower",
  "id" : 1000,
  "description" : "CAS-SSO 登入",
  "evaluationOrder" : 10,
  "theme": "digipower"
}

application.properties 配置

注意:设置cas需要从json文件做初始化操作,不然我们配置的json没有生效

# cas 自定义登入界面
# 默认主题
cas.theme.defaultThemeName=digipower
# 开启识别json文件,默认false
cas.serviceRegistry.initFromJson=true

static 文件夹

digipower.css:

h1 {
    color: blue;
}

templates 登录模板

目录结构可以看到,每个子站点,都会新建一个文件夹,文件夹的名称需要和 service里面配置站点的theme的名称对应上,casLoginView.html 这个模板的名称,不能瞎改,这个是固定的

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <title th:text="${#themes.code('digipower.pageTitle')}"></title>
    <link rel="stylesheet" th:href="@{${#themes.code('digipower.css.file')}}"/>
</head>

<body>
<h1 th:text="${#themes.code('digipower.pageTitle')}"></h1>
<h2>CAS-SSO 单点登录</h2>
<div>
    <form method="post" th:object="${credential}">
        <div th:if="${#fields.hasErrors('*')}">
            <span th:each="err : ${#fields.errors('*')}" th:utext="${err}"/>
        </div>
        <h2 th:utext="#{screen.welcome.instructions}"></h2>

        <section class="row">
            <label for="username" th:utext="#{screen.welcome.label.netid}"/>
            <div th:unless="${openIdLocalId}">
                <input class="required"
                       id="username"
                       size="25"
                       tabindex="1"
                       type="text"
                       th:disabled="${guaEnabled}"
                       th:field="*{username}"
                       th:accesskey="#{screen.welcome.label.netid.accesskey}"
                       autocomplete="off"/>
            </div>
        </section>

        <section class="row">
            <label for="password" th:utext="#{screen.welcome.label.password}"/>
            <div>
                <input class="required"
                       type="password"
                       id="password"
                       size="25"
                       tabindex="2"
                       th:accesskey="#{screen.welcome.label.password.accesskey}"
                       th:field="*{password}"
                       autocomplete="off"/>
            </div>
        </section>

        <section>
            <input type="hidden" name="execution" th:value="${flowExecutionKey}"/>
            <input type="hidden" name="_eventId" value="submit"/>
            <input type="hidden" name="geolocation"/>
            <input class="btn btn-submit btn-block"
                   name="submit"
                   accesskey="l"
                   th:value="#{screen.welcome.button.login}"
                   tabindex="6"
                   type="submit"/>
        </section>
    </form>
</div>
</body>
</html>

配置模板信息:

digipower.properties:

# 自定义登入首页相关参数配置
#定义的字段和信息,可以在页面读取到
digipower.css.file=/themes/digipower/css/digipower.css
digipower.pageTitle=CAS-SSO 登入

启动服务

到项目的根目录,找到build.cmd,然后debug启动服务。

build.cmd debug

访问测试:

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

Cas5.3.2 服务端 自定义登入界面 的相关文章

  • cas mysql_CAS服务器动态验证,CAS使用MySQL数据库验证-(二)

    步骤 一 搭建CAS服务器 gt 二 修改application properties 静态验证的配置 xff0c 需要注释 xff1a CAS Authentication Credentials cas authn accept use
  • cas-overlay-template 搭建单点登录服务端

    1 先下载overlay template的源码 git clone https github com apereo cas overlay template git 切换到5 3的分支 2 编译的坑 需要下载cas server weba
  • cas下linux虚拟机在线扩容磁盘

    cas下linux在线扩容磁盘 xff1a 1 修改虚拟机配置 xff0c 扩大需要扩容的磁盘 xff0c 然后以root进入系统 xff0c lsblk查看扩容的空间 2 使用growpart扩展分区 root 64 zgy growpa
  • cas服务器连接数据库

    进行数据库的连接 xff0c 必须要导入一些必要的包 xff0c 比如数据库驱动 xff0c mysql连接等包 xff0c 这些maven依赖都能在网上找到 1 找到cas overlay template 5 3文件夹下的pom文件 x
  • 锁与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 6.2服务部署到整合cas-client

    1 什么sso是单点登录 单点登录 xff08 Single Sign On xff09 xff0c 简称为 SSO xff0c 是比较流行的企业业务整合的解决方案之一 SSO的定义是在多个应用系统中 xff0c 用户只需要登录一次就可以访
  • CAS 服务端的搭建

    上文讲了CAS客户端 xff0c 本文记录CAS Server的搭建步骤 CAS Server的版本一定要选好 xff0c 我选的是CAS5 3 xff0c Java版本用的8 xff0c 目前最新的CAS6 5的Java版本最低是11了
  • cas 配置相关

    默认配置 span class token comment span span class token comment CAS Cloud Bus Configuration span span class token comment sp
  • SSO、CAS、OAuth、OIDC

    参考 简单了解概念 xff1a https www bilibili com video BV1XG411w7DN 简单了解操作 xff1a https www bilibili com video BV1334y11739 openid
  • OAuth2.0 授权模式,基于HttpClient 实现

    功能代码如下 package com zzg ucas config import java io IOException import org apache http HttpResponse import org apache http
  • 悲观锁synchronized、乐观锁CAS

    1 悲观锁 乐观锁 悲观锁是一种思想 在多线程竞争下 加锁 释放锁会导致比较多的上下文切换和调度延时 引起性能问题 一个线程持有锁会导致其它所有需要此锁的线程挂起 如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置 引起性能
  • Spring Security 与 CAS 集成

    任何人都可以在此处粘贴简单的步骤来集成 Spring security 和 CAS 以进行单点登录和单点退出 注意我不需要任何基于角色的访问 我有一个已经与 Spring Security 集成的 Web 应用程序 现在我尝试使用 CAS
  • 无法解析“SingleSignOutFilter”中的“setCasServerUrlPrefix”

    最近升级了依赖 CAS 进行身份验证的 Spring Boot 应用程序后 该项目不再编译 因为setCasServerUrlPrefix找不到方法SingleSignOutFilter java cannot find symbol sy
  • Apache Maven 错误:无法将工件 org.apache.maven.plugins:maven-clean-plugin:pom: 2.5 传输到中央

    我对此很陌生 我正在 apache maven 上工作 我在代理服务器后面工作 每次 我都会尝试构建maven项目 它给了我这个错误 我还更改了 settings xml 文件中的代理设置 但它不起作用 它一直给我同样的问题 构建失败 我在
  • 将属性从 CAS 释放到 Spring security

    我在客户端使用 Spring security 3 X 在服务器上使用 CAS 4 0 当我进行 CAS Spring 安全集成时 我能够达到票证验证成功的水平 并能够在客户端获得适当的角色 但我在 casServiceValidation
  • jasig cas 重定向过多问题

    我正在尝试使用 spring security 和 spring security cas 带有 Jasig CAS 的 SSO 来保护 spring boot Web 应用程序 尝试访问受保护的资源时 我遇到了太多重定向错误 该项目可用h
  • 浏览器不遵循 AJAX 响应的重定向(PHP 生成的响应使用 CAS 身份验证)

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

    我有一个使用 spring security 和 CAS spring 3 0 5 cas 3 4 5 的应用程序 但是当我登录时 会话 ID 没有改变 当我登录时CasAuthenticationFilter执行身份验证 如果身份验证成功
  • 通过cas进行ajax调用

    我需要编写一个谷歌小工具来读取谷歌群组的提要 问题是我正在进行 ajax 调用来检索提要 而我们的 google apps 域受 CAS 中央身份验证服务 保护 因此 我在拨打电话时收到 400 错误请求 我怀疑浏览器在进行 ajax 调用

随机推荐

  • 禁止弹窗中蒙层底部页面跟随滚动的几种方法汇总

    场景概述 众所周知 弹窗是一种常见的交互方式 而蒙层是弹窗必不可少的元素 用于隔断页面与弹窗区块 暂时阻断页面的交互 但是 在蒙层元素中滑动的时候 滑到内容的尽头时 再继续滑动 蒙层底部的页面会开始滚动 显然这不是我们想要的效果 因此需要阻
  • linux内核epoll实现分析

    为了更好的分享体验 博客搬迁至极客驿站 欢迎查阅 epoll与select poll的区别 select poll epoll都是IO多路复用的机制 I O多路复用就通过一种机制 可以监视多个描述符 一旦某个描述符就绪 能够通知程序进行相应
  • Linux汇编语言编译

    Linux中汇编的使用 一 安装nasm编译器 二 编译过程简介 三 编译实例 一 安装nasm编译器 输入以下命令安装nasm编译器 sudo apt install nasm 二 编译过程简介 1 预处理 预处理的过程主要包括以下过程
  • 区块链用到的技术

    区块链的核心技术 加密算法 P2P 共识算法 智能合约 分布式存储 加密算法 目的 保证数据的安全 防止数据被非法窃取 验证身份 应用于数字签名或者数字证书 在不暴露身份的前提下知道 我是我 手段 对称加密 加密和解密使用的密钥相同 非对称
  • 数据结构与算法学习笔记(第一章)

    配套材料 大话数据结构 主 中国大学MOOC浙江大学 数据结构 补充 介绍 数据结构是相互之间存在一种或多种特定关系的数据元素集合 数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间关系和操作等相关问题的学科 为什么要学习数
  • Linux进程、系统性能和计划任务

    成功不易 加倍努力 1 进程和内存管理 1 1 什么是进程 1 2 进程结构 1 3 进程相关概念 1 3 1 物理地址空间和虚拟地址空间 1 3 2 用户和内核空间 1 3 3 C代码和内存布局之间的对应关系 1 3 4 进程使用内存问题
  • 一个非常有用的函数——COALESCE

    很多人知道ISNULL函数 但是很少人知道Coalesce函数 人们会无意中使用到Coalesce函数 并且发现它比ISNULL更加强大 其实到目前为止 这个函数的确非常有用 本文主要讲解其中的一些基本使用 首先看看联机丛书的简要定义 返回
  • java对象创建过程(jvm)

    虚拟机遇到一条new指令时 开始进行对象的创建 1 检查这个指令的参数是否能在常量池中定位到一个类的符号引用 true 则继续下一步 false 说明这个类还没有被定义 会抛出ClassNotFoundException 2 检查这个符号引
  • centos7自定义镜像运行Flask

    一 centos7自定义镜像 1 支持22端口的sftp连接 参考链接 Centos7创建支持ssh服务器的docker容器 2 支持flask 上一步保存的镜像名为 centos7 dn 0119 docker run d p 8023
  • TCP通信过程详解以及tcp长连接和短连接

    1 TCP连接 当网络通信时采用TCP协议时 在真正的读写操作之前 server与client之间必须建立一个连接 当读写操作完成后 双方不再需要这个连接 时它们可以释放这个连接 连接的建立是需要三次握手的 而释放则需要4次挥手 所以说每个
  • Swing001——入门简介

    一 Swing简介 Swing是什么 Swing 是新一代的图形界面工具 特点 轻量级组件 采用纯 Java 实现 跨平台支持 不再依赖于本地平台的图形界面 更多的图形界面组件 可以开发出美观的图形界面程序 二 Swing 容器 创建图形用
  • word2vec

    Author kangbingbing Email kangb93 126 com Datawhale word2vec简介 Word2vec是Google实现word embedding的一种具体的方式 因为速度快效果好 而广为人知 而W
  • 一些好用的vscode插件

    一直用的sublime text 喜欢它的轻巧 不过最近试了下vscode 发现还是蛮中意的 插件生态丰富而且配置挺人性化 另外一些shortcuts功能确实提高编辑效率 缺点是如果安装太多插件 内存会飙高些 这里记下目前用的一些觉得不错的
  • 何为智能指针以及QT中的智能指针

    目的 对于指针的使用中有两个导致软件崩溃的问题 一是忘记释放动态申请的内存 二是指针指向的内存被释放 为了解决这个问题 出现了智能指针 效果 智能指针其实是一个类 在这个类的构造函数和析构函数实现以下功能 当有一个指针指向对象A时 计数器加
  • printf、sprintf、fprintf的区别

    printf sprintf fprintf的区别 int printf const char format int fprtintf FILE stream const char format int sprintf char str c
  • chromecast投屏_利用谷歌Chromecast,3个简单的步骤教你将手机投屏到电视上

    无论是在线观看电影 视频通话 展示度假照片还是在电视上玩游戏 把你的安卓 Android 手机的屏幕内容投屏到电视机上都很简单 放过你的家人和朋友们吧 与其让他们挤在你的Android手机或平板电脑的小屏幕上前浏览照片或观看最新的疫情播报视
  • python文件读写函数总结

    1 python读取csv文件 usr bin python coding UTF 8 df pd read csv filepath usecols func name para value df t df fillna value 对空
  • 线性回归算法及案例

    线性回归 寻找 一种能预测的趋势 回归问题的条件 前提 1 收集的数据 2 假设的模型 即一个函数 这个函数里含有未知的参数 通过学习 可以估计出参数 然后利用这个模型去预测 分类新的数据 案例 from sklearn datasets
  • DRBD分布式存储解决方案实战

    一 DRBD分布式存储解决方案 1 DRBD简介 DRBD的全称为 Distributed Replicated Block Device DRBD 分布式块设备复制 DRBD是由内核模块和相关脚本而构成 用以构建高可用性 HA 的集群 其
  • Cas5.3.2 服务端 自定义登入界面

    第一 项目整体结构 自定义页面涉及资源全部存放再src main resources 文件夹目录下 目录 含义 services 配置自定义登入网站模板 static 静态文件目录 用于存放js css代码的 templates 模板文件目