单点登录(七)cas支持客户端登录——服务器端

本文详细介绍了如何修改CAS服务器,使其支持客户端定义的登录页面。遵循不破坏原有统一登录界面、保持客户端简单及确保功能完整安全的原则,通过修改登录流程,新增远程登录(remoteLogin)和回调视图(remoteCallbackView)节点,调整web.xml和cas-servlet.xml配置,并创建remoteLogin-webflow.xml来定义新的登录流程。
摘要由CSDN通过智能技术生成

cas默认是跳转到服务器端的登录页面,而公司的项目是希望用自己客户端定义的登录页面,而且各个系统还暂时保留着原先的登录页面,所以开始研究怎么让它在客户端登录,这也是我研究cas以来遇到的最大的坎,还好过去了。

一、修改原理

对cas服务器的登录流程(大家可以看看第二篇文章)进行了修改,如下图:

图4 修改后的登录流程

图中红色部分为我们修改的流程节点,这里我们增加了一个开始节点remoteLogin和一个结束节点remoteCallbackView,删除了原有的loginFormView节点、viewGenericLoginSuccess节点,

然后将所有这些节点的转向全部都转向到remoteCallbackView节点,因为登陆和显示登陆成功信息都应该是客户端完成的.

二、修改原则:

        修改需要基于几个基本原则:

        1.不影响原有统一登陆界面功能

        2.客户端应尽量保持简单

        3.尽量保证原有功能的完整性和安全性

三、修改具体流程:

首先,修改/WEB-INF/web.xml,为cas增加一个/remoteLogin的映射:

	<servlet-mapping>
	    <servlet-name>cas</servlet-name>
	    <url-pattern>/remoteLogin</url-pattern>
	</servlet-mapping>

然后修改cas-servlet.xml文件,增加我们对/remoteLogin映射的处理,需要增加一个新流程:

<!-- Handler Mapping -->
	<bean id="handlerMappingB" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
		<property
			name="mappings">
			<props>
				<prop
					key="/login">loginController</prop>
				 <prop key="/remoteLogin">remoteLoginController</prop>
			</props>
		</property>
		<property
			name="interceptors">
			<list>
				<ref bean="localeChangeInterceptor" />
			</list>
		</property>
	</bean>

然后在cas-servlet.xml文件中添加我们上面所配置的remoteController的bean:

<!-- 增加远程控制者,允许以/remote请求启动remote控制流程 -->
	<bean id="remoteLoginController" 
	    class="org.springframework.webflow.executor.mvc.FlowController"
	    p:flowExecutor-ref="remoteLoginFlowExecutor"
	    p:defaultFlowId="remoteLogin-webflow">
	    <property name="argumentHandler">
	        <bean
	 class="org.springframework.webflow.executor.support.RequestParameterFlowExecutorArgumentHandler"
	            p:flowExecutionKeyArgumentName="lt"
	            p:defaultFlowId="remoteLogin-webflow" />
	    </property>
	</bean>
	<flow:executor id="remoteLoginFlowExecutor" registry-ref="remot
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值