跳过jaas模块的登录页面

时间:2014-07-22 01:38:15

标签: jsf jaas

我创建了一个包含两个登录机制的项目:

  • 第一个是第一个使用简单登录页面的身份验证机制(使用函数findUser从数据库中获取用户)

  • 第二种身份验证机制是JAAS提供的登录机制(j_security_check)

  

基本上我正在努力实现这个目标:当用户愿意时   成功验证(在第一个登录页面中)他应该是   能够跳过第二页登录(由JAAS提供)而没有   以登录表单重新输入用户名和密码(j_security_chek   我更喜欢登录页面根本不显示并直接跳转到资源页面。

我需要一些建议,如果问题不够明确,请不要犹豫通知,请提前感谢您的回复。

1 个答案:

答案 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>

希望能帮到你