casは認証コードを追加します

5770 ワード

casは検証コードを追加して、長い間苦しめて、やっと整理しました.ほとんどはhttp://binghejinjun.iteye.com/blog/1255293これを参考にしたのです.しかし、彼は検証コードのエラーを上げることができません.
赤いフォントは私のために追加されました.認証コードのエラーを提示できます.簡単です.ありがとうございます.原作者ありがとうございます.
 
1.   まず、私が使っているcasのバージョンは3.4.6です.検証コードはCAPTCHAを採用しています.jarカバンはgoogleで検索できます.casを配置したら、web-infoディレクトリの下でlogin-webflow.xmlを見つけて、下記のコードを見つけます. 
<view-state id="viewLoginForm" view="casLoginView" model="credentials"> 

        <var name="credentials" class="org.jasig.cas.authentication.principal.UsernamePasswordCredentials" /> 

        <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"> 

            <set name="flowScope.credentials" value="credentials" /> 

            <evaluate expression="authenticationViaFormAction.doBind(flowRequestContext, flowScope.credentials)" /> 

        </transition> 

</view-state> 

このセグメントのコードの機能は、cas登録中のユーザー名とパスワードを紐付けすることです. 
<view-state id="viewLoginForm" view="casLoginView" model="credentials"> 

        <var name="credentials" class="org.jasig.cas.authentication.principal.UsernamePasswordCredentials" /> 

        <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="yzmSubmit"> 

            <set name="flowScope.credentials" value="credentials" /> 

            <evaluate expression="authenticationViaFormAction.doBind(flowRequestContext, flowScope.credentials)" /> 

        </transition> 

</view-state> 

つまり、realSubmitをyzmSubmitに変更するだけでいいです.そして、次のような構成を追加します. 
  <!--fan add start--> 

<action-state id="yzmSubmit"> 

        <evaluate expression="yzmViaFormAction.submit(flowRequestContext,messageContext)" /> 

<transition on="success" to="realSubmit" /> 

<transition on="error" to="viewLoginForm" /> 

</action-state> 

<!--fan add end--> 
この段階の構成は、あなたが提示した検証コードの正しさを検証するためにカスタムの検証コード検証器である.   2.web-infoでcas-servlet.xmlを見つけ、開けたら、加入する 
<!--fan add start--> 

<bean id="yzmViaFormAction" class="com.ivan.zhang.servlet.YzmAction" 

/>