`

用户登录之webflow配置详解(一)

    博客分类:
  • CAS
 
阅读更多

该部分主要是讲解在CAS server中登录流程的定义以及相关源码分析。我们注重的更多是与CAS相关的业务部分。所以,我们重点是对登录流程的讲解。具体涉及到webflow的知识点,我会粗略的讲解一下,但不会针对webflow的原理或源码进行大篇幅的讲解。想深入理解webflow工作原理的读者需要参考官方的webflow2.21版本的reference

WebflowSpring MVC集成

server工程下,看web.xml文件中定义了一个casservlet,该类中并没有太多的业务逻辑,但是该类中持有了一个DispatcherServlet。该类是spring MVC的核心类。也是处理请求的实际的业务类。通过该类的实例,cas server将用户发往cas servlet的请求交给spring MVC处理。

Spring MVC核心配置文件是cas-servlet.xml。在该文件中,webflow将于springMVC进行集成。

下面,我们就从login开始说起。

<!-- 根据工作流定义,生成一个执行器 -->

    <webflow:flow-executor id="flowExecutor" flow-registry="flowRegistry">

        <webflow:flow-execution-attributes>

            <webflow:always-redirect-on-pause value="false" />

        </webflow:flow-execution-attributes>

    </webflow:flow-executor>

 

    <!-- 注册一个工作流  id是子路径  flow入口-->

    <webflow:flow-registry id="flowRegistry" flow-builder-services="builder">

        <webflow:flow-location path="/WEB-INF/login-webflow.xml" id="login" />

    </webflow:flow-registry>

 

<webflow:flow-builder-services id="builder" view-factory-creator="viewFactoryCreator" expression-parser="expressionParser" />

 

 

在该文件中,我们可以看到上面的配置项。这就是将webflow框架作为spring MVC的一个节点来进行配置。

webflow:flow-registry节点就是注册了一个webflow流程,该流程的入口,也就是ID=login”。这样,交给springMVC的请求路径如果是login的,则有springMVC交给webflow处理。

webflow中,会定义一些视图,这些视图都是以view=”XXX”的形式存在的。那么XXX又是如何找到对应的页面呢??看flow-builder-services节点,我们会发现有个view-factory-creator属性,该属性就定义了视图解析工厂。

该视图解析工厂是由视图解析器组成的。这里只定义了一个视图解析器,就是viewResolvers。该视图解析器是springFramework中的ResourceBundleViewResolver的一个实例,该类可以通过basenames属性,找到value值对应的properties属性文件,该文件中式类似ke=values类型的内容,正是该文件将jsp文件映射成视图名称。

至此,springMVCwebflow已经集成完毕。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics