51  
查询码: 00000597
Cas5.3.2 服务端 自定义登入界面
作者: 周杨 于 2022年01月11日 发布在分类 / 计算机应用 / 服务器 ,于 2022年01月11日 编辑

转自:https://blog.csdn.net/zhouzhiwengang/article/details/90053313


项目整体结构

自定义页面涉及资源全部存放再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

访问测试



 历史版本

备注 修改日期 修改人
格式调整 2022-01-11 14:40:18[当前版本] 系统管理员
CREAT 2022-01-11 14:23:18 系统管理员

 附件

附件类型

PNGPNG

  目录
    知识分享平台 -V 5.1.4 -大信谛威