【CAS】自定义Controller配置

2024-08-25 18:48

本文主要是介绍【CAS】自定义Controller配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【回顾】
	在上篇博客中分享的是对cas源码进行的第一步扩展,使得可以满足我们使用多个条件去处理用户的认证。
本篇博客将继续分享对cas源码的第二步扩展,自定义Controller配置。
【需求】
	我们在上篇博客中,增加的是一个用户的输入条件,这样不仅没有方便用户,还额外增加了一个认证条件,
难免是有些麻烦用户了。所以,负责人提出将输入条件改为下拉框选择条件,让用户选择各自的企业。
【想法】
	既然需要让用户选择,那么我们就需要去查询现有的企业,然后加载到下拉列表。为了避免引用其他程序的
jar包,于是就决定对cas源码进行扩展,而之前也看过cas的一个框架图,用到了springmvc框架,所以就决定将此查
询方法写到cas源码中,然后通过js调用查询所有学校的url地址,加载数据。
【实现】
	1. 修改cas-server-webapp-support源码,修改的目录结构说明如下:
		
	增加了一个连接数据库的工具类,增加了一个dao和service类,此代码都很简单,三层的思想,就不展示代

码了。
	QueryAllCompanyController类中,调用service的方法,将查询到的数据进行了一次包装,代码如下:

	@SuppressWarnings({ "unchecked", "rawtypes" })public class QueryAllCompanyController extends AbstractController{@NotNullprivate QueryAllCompanyService queryAllCompanyService;public QueryAllCompanyService getQueryAllCompanyService() {return queryAllCompanyService;}public void setQueryAllCompanyService(QueryAllCompanyService queryAllCompanyService) {this.queryAllCompanyService = queryAllCompanyService;}@Overrideprotected ModelAndView handleRequestInternal(HttpServletRequest arg0,HttpServletResponse arg1) throws Exception {ModelAndView mav = new ModelAndView();MappingJackson2JsonView view = new MappingJackson2JsonView();Map<String,Object> attributes = new HashMap<String,Object>();List list=queryAllCompanyService.queryAllCompany();List companyList;companyList=list.subList(0, 10);attributes.put("status", Boolean.TRUE);attributes.put("reason", "操作成功");attributes.put("dataList", companyList);view.setAttributesMap(attributes);mav.setView(view);return mav;}}

	2. 修改cas-servlet.xml,增加自定义的Controller的配置:
	

	3. 修改web.xml文件,增加匹配规则:
				

	4. 修改cas-servlet.xml文件,注入dao、service和controller:
  

	5. 访问地址(http://ip:端口号/cas/events),若成功返回json数据,则说明查询到的数据没有问题。
  
	6. 最后通过js,将dataList绑定到下拉框,完成。
          
【总结】
	这一过程磕磕绊绊,最开始接到任务花了两天没有实现,就放下了,第二阶段颗粒归仓,总觉得可以实现,
所以又开始拿起了,花了一天时间,居然完成了之前预期的目标,这一阶段的工作也算是画上了一个句号了。
	现在想想,之前遇到的问题主要有:
	1. 源码。很早就下载了源码,因为导入工作空间,pom文件报错,所以一直没有在本地运行过,这样必然增
加了扩展源码的难度,每次修改后只能导出为jar包替换原有的jar包,只能凭tomcat中的日志去判断是哪出问题了,
但即使没有错误日志了,也无法实现,就很难找到其它原因了。 这一次,将源码直接部署,发现运行是没有问题的,
这样至少可以检验到后台写的方法是没有问题的。
	2. 思路。cas框架利用了springmvc的框架,而其登录认证流程是用的spring web flow.之前并没有明确是
写controller还是写action,更偏向于写action,将自己写的action添加到spring web flow的流程中某个节点。折

腾了两天,controller和action都没有实现。
	3. 想当然。之前也尝试了自定义controller的方法,但在cas源码框架中,东西太多,不知道该如何进行配

置。但结合自己的学习经验,觉得实现的方式不止一种,所以xml和注解的方式混用,导致总是访问登录页面,而无
法访问到自己配置的controller。这次,将之前所写的注解都去掉了,所有注入用的都是用的xml中的配置方式。

这篇关于【CAS】自定义Controller配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1106366

相关文章

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

如何使用Nginx配置将80端口重定向到443端口

《如何使用Nginx配置将80端口重定向到443端口》这篇文章主要为大家详细介绍了如何将Nginx配置为将HTTP(80端口)请求重定向到HTTPS(443端口),文中的示例代码讲解详细,有需要的小伙... 目录1. 创建或编辑Nginx配置文件2. 配置HTTP重定向到HTTPS3. 配置HTTPS服务器