我的应用程序使用 CAS 3.4.11、Spring 3.1 和 Hibernate 4。我的 login-webflow.xml 使用 spring-webflow-2.0.xsd,登录流程如下所示,
<var name="credentials" class="org.jasig.cas.authentication.principal.UsernamePasswordCredentials" />
<on-start>
<evaluate expression="initialFlowSetupAction" />
</on-start>
<view-state id="viewLoginForm" view="casLoginView" model="credentials">
<binder>
<binding property="username" />
<binding property="password" />
</binder>
<on-entry>
<set name="viewScope.commandName" value="'credentials'" />
</on-entry>
<transition on="submit" bind="true" validate="true" to="realSubmit">
<evaluate expression="authenticationViaFormAction.doBind(flowRequestContext, flowScope.credentials)" />
</transition>
</view-state>
bean“initialFlowSetupAction”和“authenticationViaFormAction”在 cas-servlet.xml 中定义为,
<bean id="initialFlowSetupAction" class="org.jasig.cas.web.flow.InitialFlowSetupAction"
p:argumentExtractors-ref="argumentExtractors"
p:warnCookieGenerator-ref="warnCookieGenerator"
p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator"/>
<bean id="authenticationViaFormAction" class="org.jasig.cas.web.flow.AuthenticationViaFormAction"
p:centralAuthenticationService-ref="centralAuthenticationService"
p:warnCookieGenerator-ref="warnCookieGenerator"/>
这里的问题是,在启动登录页面时会调用 InitialFlowSetupAction。单击“登录”按钮时,应调用 AuthenticationViaFormAction 类的绑定/提交方法。但始终调用 InitialFlowSetupAction 并重新显示表单,没有任何异常。至少我可以跟踪是否有异常。
将表单的属性设置为 UsernamePasswordCredentials 是否可能是表单的用户名和密码字段的绑定问题?
基本上我想知道为什么在单击“登录”按钮时会调用 InitialFlowSetupAction?