手把手教Apereo CAS5.2.3 Server端 增量开发 自定义登录页,增加验证码,注册,修改密码等功能的方式

很高兴CAS系列帮助到了不少小伙伴,有不少小伙伴加QQ跟我交流
有个比较普遍的问题是大家不知道怎么把注册,修改密码等相关的功能嵌入CAS,这篇博客统一解答下,有些关于spring的内容是我查找资料结合自身理解的,不一定准确,但是方法一定是我验证可以的

顺手贴上CAS 5.2.X官方文档:https://apereo.github.io/cas/5.2.x/index.html
hugeo的CAS系列:https://blog.csdn.net/u010588262/article/category/7548325
DEMO下载:
part1: https://download.csdn.net/download/u010588262/10327539
part2:https://download.csdn.net/download/u010588262/10372828

part1是前面几篇博客的完整项目,不包含这篇的内容
par2是在part1的基础上的main文件夹,包含此篇的代码

正文

CAS框架本身的功能是用来做登录验证的,其中用到了spring webflow,感兴趣的伙伴可以查找相关资料了解一下,可以对CAS验证的流程有个了解:
这里写图片描述

注册,修改密码等周边功能CAS是不管的,但是我们可以在CAS服务器端的基础上增加自己需要的功能,maver overlay不就是用来做这个的吗,所以我们的大致思路是,把CAS自带的登录页面修改掉,上面增加注册,修改密码的按钮,指向咱们自己写的controller就行了。

重要提醒:有个需要格外关注的地方是,大家请一定按照我第一篇博客(https://blog.csdn.net/u010588262/article/details/79741626)的方法把CAS本身的lib全部添加到开发项目中,maven里不要有spring boot相关的依赖了,因为CAS的lib里就有spring boot核心的包,已经够我们开发了,CAS的lib里没有的包我们再添加依赖。否则打包时开放项目又打进去一份springboot的包,启动时就会报bean重复的问题(在两边版本不一致的情况下),所以保险起见就是pom中不要有springboot的依赖。

有朋友自己写了controller但是启动之后访问时总是404错误,这是因为springboot根本没有扫描咱们自己的包,可以发现CAS打好包之后里面是没有web.xml文件的,就可以知道肯定是有类继承了SpringBootServletInitializer,找一下发现了CasWebApplicationServletInitializer
这里写图片描述
这里面就看到启动类了,最重要的@SpringBootApplication也在这上面:
这里写图片描述
到这里很多小伙伴应该知道了,@SpringBootApplication的功能不赘述了,所以spring默认是到org.apereo.cas.web下寻找component,service,controller,configuration等组件的,所以在咱们自己的包下面使用这些注解spring是扫描不到的,你要做的就是

1. 增加一个配置类:

这里写图片描述

2. 将此配置类配置到spring.factories中,否则spring不管它的哟

这里写图片描述

3. 写个简单的controller试一下吧

这里写图片描述
这里写图片描述

4. 如果看不到效果,去你的target文件夹下看一下打包后的文件是不是真的改过来了,我测试的时候第一次没反应,看target下的spring.factories文件里没加上我的配置类,clean一下重新打包即可。

以上是基础工作


以下是实例

1. 修改登录页面样式+注册

官方文档:https://apereo.github.io/cas/5.2.x/installation/User-Interface-Customization-Themes.html

这块我们要回头说一下客户端注册json文件了,这块不明白的看一下客户端这篇的博客:
https://blog.csdn.net/u010588262/article/details/79806923
简单来说就是每个要使用单点登录的客户端都要在服务端有个配置文件:
这里写图片描述
这些文件固定在service文件夹下,文件生效要在application.properties中添加:

#开启识别json文件,默认false
cas.serviceRegistry.initFromJson=true

文件各字段含义:
1. @class固定的,没研究含义
2. serviceId通过正则表达式匹配客户端过来的url
3. evaluationOrder,如果多个文件的正则都匹配了咋办,哪个Order小用哪个
4. name desc id不说了
5. 细心的小伙伴发现了这里比原来的博客里多了一个theme,就是控制这个客户端过来的登录页面样式了,可以支持不同客户端不同登录页面,很人性化。

在application.properties中配置默认默认主题:

# 默认主题
cas.theme.defaultThemeName=hugeo

下面开始创建咱们自己的登录页面吧,涉及到以下几个文件:
这里写图片描述
因为我们在json文件中配置的主题名称是hugeo,所以在templates下面创建同名hugeo文件夹,文件夹里面是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('demo.pageTitle')}"></title>
    <link rel="stylesheet" th:href="@{${#themes.code('hugeo.css.file')}}"/>
    <script th:src="@{${#themes.code('hugeo.js.file')}}"></script>
</head>

<body>
<h1 th:text="${#themes.code('demo.pageTitle')}&
  • 12
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 25
    评论
### 回答1: 要在Apereo CAS 5.2.3服务器进行增量开发自定义登录面、添加验证码注册修改功能,可以按照以下步骤进行操作: 1. 下载并安装Apereo CAS 5.2.3服务器,确保服务器环境和依赖项已正确配置。 2. 创建自定义登录:在CAS服务器的webapp目录中创建一个新的文件夹,例如customlogin,然后在该文件夹中创建一个HTML文件,可以命名为login.html。在该文件中编写自定义登录面,包括用户名和密码输入框和提交按钮等。 3. 更新CAS配置文件:在CAS服务器的/etc/cas目录下找到配置文件cas.properties,找到并修改以下两个属性: cas.login.viewResolver.basename=/customlogin cas.login.viewResolver.suffix=.html 将上述两行配置添加到配置文件中,并设置自定义登录路径的前缀和后缀。 4. 添加验证码功能:可以使用各种验证码库,如Kaptcha或Google的reCAPTCHA来实现验证码功能。将所选库的相关文件和配置添加到CAS服务器的相应目录中。然后,将验证码相关的代码添加到自定义登录面中,例如在登录表单中添加一个验证码输入框。 5. 实现注册修改功能:首先,在CAS服务器的webapp目录中创建一个新的文件夹,例如user,用于处理注册修改相关的请求。然后,创建相应的HTML文件用于显示注册修改表单,以及处理相关请求的后代码。 6. 更新CAS配置文件:在cas.properties中添加以下配置: cas.logout.success.url=/user/logout.html 这将重定向用户到自定义的登出面。 7. 编写后代码:在新创建的user目录中编写处理注册修改相关请求的后代码,包括验证表单数据和将数据保存到数据库等操作。 8. 部署和测试:将CAS服务器重新启动,并使用浏览器访问自定义登录面,尝试登录注册修改等操作,确保功能正常运行。 请注意,上述步骤仅提供了一个概述,并且可能需要根据具体需求进行适当的修改和调整。此外,CAS的版本升级可能会对上述步骤产生影响,因此建议在实施前先了解相关的CAS文档和社区讨论。 ### 回答2: 首先,在Apereo CAS 5.2.3服务器进行增量开发时,需要了解CAS的整体架构和登录流程。CAS使用Spring Security作为身份验证和授权框架,因此我们可以通过自定义Spring Security的配置来实现自定义登录增加验证码注册修改功能。 1. 自定义登录: 创建一个自定义登录,可以通过使用CAS的主题功能来实现。CAS的主题功能允许我们定义自己的视图和控制器。可以在CAS配置文件中进行如下配置: ```properties cas.viewResolver.viewNames[0]=custom_login_view cas.viewResolver.​custom_login_view​=classpath:/templates/custom_login_view.html ``` 在该配置中,我们将自定义登录命名为`custom_login_view`,并将其路径设置为`classpath:/templates/custom_login_view.html`。 2. 增加验证码: 为了增加验证码功能,我们可以使用Spring Security的表单登录配置。可以在CAS的配置文件中添加如下配置: ```properties cas.authn.​attributeRepository​[0]=org.apereo.cas.authentication.attribute.DefaultAttributeDefinitionStore cas.authn.​attributeRepository​[0].attributes​=attributeName:value ``` 在该配置中,我们可以将自定义的属性添加到登录表单中,例如`attributeName`和`value`。 3. 注册功能: 如果想要在CAS中添加注册功能,可以使用自定义的服务注册表来实现。可以创建自定义注册控制器和视图,并在CAS的配置文件中进行如下配置: ```properties cas.viewResolver.viewNames[0]=custom_register_view cas.viewResolver.​custom_register_view​=classpath:/templates/custom_register_view.html ``` 在自定义注册视图中,可以添加表单输入字段以收集用户注册信息。然后可以在自定义注册控制器中处理该表单的提交,将用户信息存储到数据库或其他持久化层。 4. 修改功能: 要实现修改功能,可以使用CAS提供的扩展点和API来自定义修改逻辑。可以创建自定义修改控制器和视图,并在CAS的配置文件中进行如下配置: ```properties cas.viewResolver.viewNames[0]=custom_modify_view cas.viewResolver.​custom_modify_view​=classpath:/templates/custom_modify_view.html ``` 在自定义修改视图中,可以添加表单输入字段以收集用户修改信息。然后可以在自定义修改控制器中处理该表单的提交,更新用户信息。 通过以上步骤,可以在Apereo CAS 5.2.3服务器实现自定义登录增加验证码注册修改功能。需要注意的是,以上示例仅提供了一种实现方式,具体的实现方式可能因项目需求和环境而有所不同。 ### 回答3: 首先,为了进行apereo CAS 5.2.3 server增量开发,我们需要确保已经成功安装了CAS server并进行了基本配置。接下来,我们将手把手你如何自定义登录增加验证码以及实现注册修改功能。 1. 自定义登录: - 在CAS server的配置文件中,找到`cas.properties`文件,并将其复制到`/etc/cas/config/`目录中。 - 打开复制后的`cas.properties`文件,找到`cas.viewResolver`属性并设置为`default`。 - 在`/etc/cas/config/views/`目录下创建自定义登录的模板文件,例如`login.jsp`。 - 在`login.jsp`中进行自定义设计,并保存文件。 - 在CAS server的`WebContent`目录下找到`WEB-INF/web.xml`文件,并将其中的`welcome-file`设置为`login.jsp`。 - 重新启动CAS server自定义登录将会生效。 2. 增加验证码: - 在CAS server的配置文件中,找到`application.properties`文件,并将其复制到`/etc/cas/config/`目录中。 - 打开复制后的`application.properties`文件,找到验证码相关的属性,并进行相应的配置,例如启用验证码验证码长度,以及验证码的字体、颜色等。 - 在CAS server的`WebContent`目录下找到`WEB-INF/web.xml`文件,添加验证码相关的过滤器配置。 - 在自定义登录的表单中,添加一个验证码输入框,并在表单提交时进行验证码的验证。 - 重新启动CAS server验证码将会在登录时显示并进行验证。 3. 实现注册修改功能: - 在CAS server中创建一个自定义注册修改模块,可以基于现有的模块进行扩展或自行开发。 - 在CAS server的配置文件中,找到`cas.properties`文件,并将其复制到`/etc/cas/config/`目录中。 - 打开复制后的`cas.properties`文件,找到`cas.authn.accept.users`属性并添加一个用于注册修改的用户类型。 - 在注册修改模块中,实现相应的业务逻辑,例如验证用户输入、更新用户信息等。 - 在自定义登录中添加注册修改的链接,并配置相应的路径。 - 重新启动CAS server注册修改功能将会生效。 以上就是手把手你如何在apereo CAS 5.2.3 server上进行增量开发,包括自定义登录增加验证码以及实现注册修改功能的步骤。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值