私のアプリケーションは、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 クラスの bind/submit メソッドが呼び出されます。ただし、常に InitialFlowSetupAction が呼び出され、例外なくフォームが再表示されます。少なくとも、例外があるかどうかを追跡できます。
プロパティを UsernamePasswordCredentials に設定するために、フォームのユーザー名とパスワードのフィールドにバインドの問題がある可能性はありますか?
基本的に、「サインイン」ボタンのクリック時に InitialFlowSetupAction が呼び出される理由を知りたいですか?