Login 登录
cas WebFlow 主流程
一、入口注入
WebFlow 请求的入口如下图,向Spring mvc注册一个接口适配器
- 上图在CAS中源码位置 cas-server-core-webflow:6.2.2 org.apereo.cas.web.flow.config.CasWebflowContextConfiguration
- 帮助阅读参考: Spring mvc的请求适配器 HandlerAdapter
-
从上面文章中可以知道在 DispatcherServlet 中通过 handler 然后匹配对应的 HandlerAdapter
- 从上面截图知道,handler 是通过 HandlerMapping获取,然后传递 request 获取对应 handler
-
而 WebFlowMapping 构建如下图
spring-webflow:2.5.1.RELEASE org.springframework.webflow.mvc.servlet.FlowHandlerMapping
流程的读取
二、流程配置
cas-server-core-webflow-api:6.2.2 org.apereo.cas.web.flow.configurer.DefaultLoginWebflowConfigurer
- 初始化开始状态
- 配置初始化动作
- 配置全局异常流程
- 配置结束状态
- 配置条件判断策略
- 创建流程状态动作
- 创建视图状态
- 创建记住功能的配置
初始化开始状态
当状态为初始化状态时,会执行 initialAuthenticationRequestValidationAction 动作 和 verifyRequiredServiceAction 动作
状态 | 跳转流程 | 备注 |
---|---|---|
authenticationFailure | handleAuthenticationFailure | |
error | initializeLoginForm | 登录页面 |
success | ticketGrantingTicketCheck | |
successWithWarnings | showAuthenticationWarningMessages |
初始化动作
- initializeLoginAction
- initialFlowSetupAction
- verifyRequiredServiceAction
全局异常处理流程
异常类型 | 跳转流程 | 备注 |
---|---|---|
UnauthorizedSsoServiceException | viewLoginForm | 登录界面 |
NoSuchFlowExecutionException | viewServiceErrorView | 服务错误界面 |
UnauthorizedServiceException | serviceUnauthorizedCheck | 服务未授权检查流程 |
PrincipalException | serviceUnauthorizedCheck | 服务未授权检查流程 |