cas-server5.3自定义密码校验规则

news2025/2/25 6:17:08

前面几篇文章都是关于cas的,今天继续,cas有自己的一个加密配置.如果只是简单使用MD5或者SM3等加密算法进行加密的话,可以不需要再进行自定义操作,但是我们一般还会给用户密码加盐,这样的话原本的配置就不满足了,所以需要再自定义一个密码校验规则

实现PasswordEncoder接口

PasswordEncoder中有两个方法

encode:这个方法如果我们仅仅是做校验的话是没什么用的,它主要是对用户输入的密码进行加密

matches:此方法是对用户输入密码和数据库中的密码是否一致做校验的,rawPassword是用户输入的密码,encodedPassword是数据库中存的密码此密码CAS根据我们配置文件中的配置项自动查询出来的

添加依赖及配置

想要实现校验用户密码的功能,需要根据用户输入的用户名来查询加密用的盐值,因此我们需要引入Mybatis的依赖,此处我使用了Mybatis-Pllus与druid连接池

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.2.16</version>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.5.1</version>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

application.properties中的配置就不一一列举了,根据自己的需求来,没什么不同的

想要获取用户名,我们需要重请求上下文中获取,也因此我们还需要引入一个依赖

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
    </dependency>

 完事就没有什么特殊的了,就是在matches方法中,根据用户获取到盐,然后将用户输入的密码根据自己的加密算法进行加密,与encodedPassword参数作对比,通过则返回true,不通过返回false就可以了

踩坑

对于实现这个功能并不难,在这过程中踩了一个坑,我们配置完Mybatis-Plus之后,免不了需要自定义一些Bean注入到IOC容器中,当我做完这一切测试的时候怎么也拿不到自定义的bean对象,后来发现自定义的Bean根本就没有被注入进容器,经过反反复复尝试,终于,,,我们不能按照自己创建的springboot项目来配置,需要自定义一个配置类,然后告诉spring来加载这个类才行,就像如下

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1087923.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据报表的种类

根据报表使用频率不同&#xff0c;目的不同&#xff0c;使用群体不同&#xff0c;细化程度不同等情况&#xff0c;一般数据报表可以分为日常报表和临时报表&#xff0c;日常报表又分为管理报表和专题分析报表。 1. 日常报表 日常报表通常是指使用频率较高&#xff08;一般取3…

LED台灯控制芯片 LED调光芯片 LED驱动芯片AH6730

AH6730是一款专为LED台灯设计的多功能控制芯片。它采用电容式触摸控制&#xff0c;除了提供简单的开关控制功能外&#xff0c;还能实现从0到100或从100到0的无级调光&#xff0c;方便用户选择合适的亮度。该芯片的触摸板材兼容金属、亚克力板和硬塑料等材质。它具有两个通道的输…

Sketch macOS 支持m1 m2 Sketch 2023最新中文版

SketchUp Pro 2023是一款功能强大的三维建模软件&#xff0c;适用于建筑设计师、室内设计师、工程师和其他创意专业人士。以下是SketchUp Pro 2023的一些主要特点和功能&#xff1a; 三维建模&#xff1a;SketchUp Pro 2023允许用户以直观的方式创建三维模型。通过简单的绘图工…

【前端小技巧】如何使用 Eolink Apilkit 调用 Mock ?

在开发过程中&#xff0c;进度比较赶的情况下&#xff0c;前端人员当页面写完时&#xff0c;后台的接口还没写完&#xff0c;等要交付的时候后端才把接口给你&#xff0c;这个时候就很尴尬。 这个时候 Mock 就可以很好的解决这个问题&#xff0c;前端团队可以在 API 还没开发完…

CVE-2020-1938 Tomcat远程文件包含漏洞

漏洞简介 CVE-2020-1938是由长亭科技安全研究员发现的存在于 Tomcat 中的安全漏洞&#xff0c;由于 Tomcat AJP 协议设计上存在缺陷&#xff0c;攻击者通过 Tomcat AJP Connector 可以读取或包含 Tomcat 上所有 webapp 目录下的任意文件&#xff0c;例如可以读取 webapp 配置文…

whistle安卓手机抓包(图文详解)

1、安装node https://nodejs.org &#xff08;官网下载对应的node,一般推荐长期稳定版本 LTS&#xff09; 需要node的版本是大于 v0.10.0 查看自己本地node 版本号 node -v2、安装whistle npm i -g whistle3、开启whistle 补充说明&#xff1a; ● w2 stop&#xff1a;关闭…

ubuntu为可执行程序添加桌面图标

ubuntu为可执行程序添加桌面图标 1 在桌面目录&#xff0c;创建以.desktop为后缀的文件 cd ~/Desktop touch orb_slam.desktop 2 为desktopt添加执行权限 添加执行权限&#xff0c;才能实现双击运行&#xff0c;否则不能实现 chmod ax orb_slam.desktop3 编辑文件 ##(1)打…

Android+Appium自动化测试环境搭建及实操

1、Appium简介1.1 Appium概念1.2 Appium工作原理 2、Appium Server环境搭建2.1 Java JDK2.1.1 下载JDK2.1.2 运行exe安装JDK&#xff0c;设置安装路径2.1.3 设置环境变量2.1.4 验证安装结果 2.2 Android SDK2.2.1 下载安装Android SDK安装包2.2.2 下载platform-tools&#xff0…

php以半小时为单位,输出指定的时间范围

//可预订小时范围$hour [];for ($i$startHour*3600;$i<$endHour*3600;$i1800){//以半小时为单位输出$startHourItem date(H:i,strtotime(date(Y-m-d))$i);//小时开始$endHourItem date(H:i,strtotime(date(Y-m-d))$i1800);//当前时间再加半小时$hourItemStr $startHourI…

广州华锐互动:炼钢工厂VR仿真实训系统

随着科技的发展&#xff0c;我们的教育体系和职业培训方法也在迅速变化。其中&#xff0c;虚拟现实&#xff08;VR&#xff09;技术的出现为我们提供了一种全新的学习和培训方式。特别是在需要高度专业技能和安全性的领域&#xff0c;如钢铁冶炼。本文将探讨如何使用VR进行钢铁…

lark发消息艾特接口

首先访问"https://open.larksuite.com/api-explorer?apiNamebatch_get_id&projectcontact&resourceuser&versionv3"页面登录&#xff0c;然后点击左侧通过手机号或邮箱获取用户id&#xff0c;查询参数下面选择成员&#xff0c;搜索用户&#xff0c;点击…

探秘PMP和六西格玛的不同:哪一个能为你的职业生涯加分?

今天&#xff0c;我们将带你深入了解一项相对冷门但价值不菲的证书——六西格玛黑带。 可能你曾听说过PMP&#xff0c;但相比之下&#xff0c;六西格玛黑带的资源分享似乎较少&#xff0c;考试内容却更为广泛深入。这里&#xff0c;让我为你详细解析这一考试&#xff0c;带你进…

使用Python 获取天气数据

目录 前言 一、天气数据来源 二、Python获取天气数据 三、Python使用代理IP 四、Python获取天气数据实例 总结 前言 Python获取天气数据涉及到网络请求和数据解析两个方面&#xff0c;而代理IP则可以帮助我们有效地应对一些反爬虫的网站。本文将介绍如何在Python中获取天…

99%必用git指令

这14个Git命令&#xff0c;你都会吗&#xff1f; 必须了解的命令整理 1&#xff0c;git init 初始化一个新的Git仓库。 这将在当前目录中创建一个名为".git"的子目录&#xff0c;Git会将所有仓库的元数据存储在其中。 2&#xff0c;git clone 克隆一个已存在的仓…

PMP证书有什么用?考试条件是什么?

PMP证书摆在明面上的一个用处就是在招聘项目经理岗或者PMO岗的岗位要求中都会有一条&#xff1a;持有PMP证书优先。面试的时候&#xff0c;如果两个候选人的经历、经验、期望薪资都差不多&#xff0c;那么HR就会更倾向于有PMP/ACP等证书的候选人。 PMP是什么&#xff1f; PMP是…

常用的SQL语句

目录 前言 MySQL 创建数据库 创建表 字段类型 字段的特殊标识 SQL语句 向表中写入数据 SELECT语句 查询数据 INSERT INTO 语句 添加数据 UPDATE语句 修改数据 ​编辑 DELETE语句 删除数据 ​编辑 WHERE语句 AND和OR ORDER BY子句 COUNT(*)函数 前言 在MySQ…

网格管理安全巡检系统—助企业全面安全检查

通过应用安全巡检管理系统&#xff0c;企业能更好地管理控制安全风险&#xff0c;保障员工生命安全和财产安全&#xff0c;避免出现各种危险隐患&#xff0c;帮助企业快速提高生产发展实力。 一、凡尔码搭建安全巡检系统的功能 1.巡检计划:帮助用户制定巡检计划&#xff0c;包括…

超全整理,服务端性能测试——nginx部署项目+查看日志(详细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 nginx部署静态项目…

后端使用aop和redis实现防抖

在公司的代码开发中遇到了,快速点击就会重复提交的bug&#xff0c;刚好最近在优化代码于是想着在后端实现防抖 1.整体思路 2.创建防抖的注解 防抖我一般放在存储方法上&#xff0c;在程序运行时使用&#xff0c;于是我的防抖注解是method类型 Target(ElementType.METHOD) Ret…

南美智利市场最全分析开发攻略,收藏一篇就够了

智利是拉美和加勒比国家共同体和南美进步论坛的成员国&#xff0c;与阿根廷和巴西并称为ABC国家。拥有较高的国际竞争力和生活质量&#xff0c;具有稳定的政治环境&#xff0c;全球化的、自由的经济环境&#xff0c;以及较低的腐败感知和相对较低的贫困率&#xff0c;是南美最富…