0

jasig (3.5.1) cas サーバーを使用し、正常に構成されました。正常に動作します。私のプロジェクトには別の要件があります。以下で述べましたが、別のログインメカニズムが必要です。つまり、スタンドのユーザー名パスワードを使用するのではなく、企業ユーザーの企業コード、携帯電話番号、およびパスワード認証が必要です。そのため、別の Credential クラスを作成しました

public class CodeMobileNumberCredintials implements Credentials{
@NotNull
    @Size(min=1,message = "required.code")
    private String code;

    @NotNull
    @Size(min=1, message = "required.mobileNumber")
    private String mobileNumber;

    @NotNull
    @Size(min=1, message = "required.password")
    private String password;
...
}

Then i created a variable called "codeMobileNumberCredintials"in web-flow.

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

     <view-state id="viewCorporateLoginForm" view="casCorporateLoginView" model="codeMobileNumberCredintials">
            <binder>
                <binding property="code" />
                <binding property="mobileNumber" />
                <binding property="password" />
            </binder>
            <on-entry>
                <set name="viewScope.commandName" value="'codeMobileNumberCredintials'" />
            </on-entry>
            <transition on="submit" bind="true" validate="true" to="realCorporateSubmit">
                <evaluate expression="authenticationViaFormAction.doCorporateBind(flowRequestContext, flowScope.codeMobileNumberCredintials)" />
            </transition>
        </view-state>

問題は、Bean 検証プロセスがカスタム ログイン フォームで機能しないことです。ただし、通常のユーザー名パスワード フォームは検証されます (ユーザー名とパスワードを指定せずにフォームを送信すると、「ユーザー名とパスワードが空白です」と表示されます)。しかし、私のカスタム認証フォームは検証されていません。コントローラークラスに直接行きます。
私はこれを行うために多くの時間を費やしました。誰でも私の仕事を手伝ってもらえますか。

Thank you
Amila
4

2 に答える 2

1

私も同様の問題を抱えていました。これを解決する最も簡単な方法は、cas-server-webappモジュールのcas-servlet.xmlSpring構成ファイルに新しいバリデーターBeanを追加することです。あなたの場合は次のようになります。

      <bean id="codeMobileNumberCredintialsValidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"
    p:messageInterpolator-ref="messageInterpolator" />
于 2012-11-30T08:44:03.160 に答える