我使用了 jasig (3.5.1) cas sever 并成功配置。它工作正常。我的项目有另一个要求。我在下面提到它我需要另一个登录机制。这意味着我需要企业用户的公司代码、手机号码和密码验证,而不是使用用户名密码。所以我为此创建了另一个凭据类
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