我创建了一个包含两个登录机制的项目:
第一个是第一个使用简单登录页面的身份验证机制(使用函数findUser
从数据库中获取用户)
第二种身份验证机制是JAAS提供的登录机制(j_security_check)
基本上我正在努力实现这个目标:当用户愿意时 成功验证(在第一个登录页面中)他应该是 能够跳过第二页登录(由JAAS提供)而没有 以登录表单重新输入用户名和密码(j_security_chek 我更喜欢登录页面根本不显示并直接跳转到资源页面。
我需要一些建议,如果问题不够明确,请不要犹豫通知,请提前感谢您的回复。
答案 0 :(得分:0)
我建立了一个临时解决方案,效果很好。所以很简单,我只是填写了j_username& j_password的值来自第一个登录机制(第一个),我所做的是我用javascript创建了一个函数( accessResource())提交登录表单(表单中包含action = j_security_check)当前页面的
jaasLogin.xhtml:
<h:head>
<title>Facelet Title</title>
<script>
function accessResource(){
document.forms["loginForm"].submit();
}
</script>
</h:head>
<h:body class="metro" onload="accessResource()">
.......
.......
<form id="loginForm" name="loginForm" method="post" action="j_security_check" class="form bg-login">
<div class="container span5" name="container">
<h:outputLabel>Utilisateur</h:outputLabel>
<div class="input-control text" data-role="input-control">
<input type="text" name="j_username" value="#{moduleBean.userBean.username}"/>
<h:commandButton type="button" class="btn-clear" tabindex="-1"></h:commandButton>
</div>
<h:outputLabel>Mot de passe</h:outputLabel>
<div class="input-control password" data-role="input-control">
<input type="password" name="j_password" value="#{moduleBean.userBean.password}" />
<h:commandButton type="button" class="btn-reveal" tabindex="-1"></h:commandButton>
</div>
<div class="buttons">
<input name="login" type="submit" value="LOGIN" />
</div>
</div>
</form>
希望能帮到你