<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
Automatic login after identification
</h3>
<span style="margin-bottom: 10px;">
created by <a href="http://community.jboss.org/people/cinephil">Philippe Leménager</a> in <i>JBoss Web Development</i> - <a href="http://community.jboss.org/message/570046#570046">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><p>Hello Seamians !</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>I'm developping my first Seam app.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>This app will be open to a restricted list of studients registered in the database of the app.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>For the authentication of the users, I use the Authenticator.java automaticaly generated by New Seam Web Project, adapted by myself.</p><p>Login page works fine, redirect to the page I want in relation to the type of the user and the link "Logout" appears at the top right of the page, meaning that the app recognize the user connected.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>I've added to the Login page a link to an Identification page for the studients never connected to the app. It's inspired from Authnticator.java and works fine, redirect to the good page when the studient is found in the database but there is still "Login" instead of "Logout" at the top-right of the page.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>What can I do to log in automaticaly the studient found in the database ?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>My adapted Authenticator.java :</p><pre class="alt2" dir="ltr" style="margin: 0px; padding: 6px; border: 1px inset; width: 640px; height: 258px; text-align: left; overflow: auto;">@Name("authenticator")<br/>public class Authenticator<br/>{<br/>    @Logger private Log log;<br/> <br/>    @In Identity identity;<br/>    @In Credentials credentials;<br/>    <br/>    @In EntityManager entityManager;<br/>    <br/>    private String pageSuivante = "/home.xhtml";<br/>    <br/>    public String getPageSuivante()<br/>    {<br/>        return this.pageSuivante;<br/>    }<br/>    <br/>    public void setPageSuivante(String page)<br/>    {<br/>        this.pageSuivante = page;<br/>    }<br/> <br/>    public boolean authenticate()<br/>    {<br/>        <br/>        try<br/>        {<br/>            log.info("authenticating {0}", credentials.getUsername());<br/>            <br/>            Query query = entityManager.createQuery(<br/>                    "FROM ThUtilisateurUti u " +<br/>                    "WHERE u.utiLogin = :username " +<br/>                        "AND u.utiMotPasse = :password");<br/>            query.setParameter("username", credentials.getUsername());<br/>            query.setParameter("password", ThUtilisateurUti.generateMD5(credentials.getPassword()));<br/>            <br/>            ThUtilisateurUti user = (ThUtilisateurUti) query.getSingleResult();<br/>    <br/>            int typeUtilisateur = user.getTeTypeUtilisateurTu().getTuId();<br/>            <br/>            identity.addRole(user.getTeTypeUtilisateurTu().getTuLibelle());<br/>            <br/>            <br/>            switch (typeUtilisateur)<br/>            {<br/>                case 1 : // Administrateur<br/>                    setPageSuivante("/home.xhtml");<br/>                    return true;<br/>                    <br/>                case 2 : // Étudiant<br/>                    setPageSuivante("/accueilEtudiant.xhtml");<br/>                    return true;<br/>                    <br/>                case 3 : // Gestionnaire<br/>            }<br/>            setPageSuivante("/login.xhtml");<br/>            //return true;<br/>            return false;<br/>            <br/>        }<br/>        catch (NoResultException ex)<br/>        {<br/>            //setPageSuivante("/login.xhtml");<br/>            return false;<br/>        }<br/>    }<br/> <br/>}</pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>My Identification.java in its actual state :</p><pre class="alt2" dir="ltr" style="margin: 0px; padding: 6px; border: 1px inset; width: 640px; height: 258px; text-align: left; overflow: auto;">@Scope(EVENT)<br/>@Name("identification")<br/>public class Identification<br/>{<br/>    @Logger private Log log;<br/> <br/>    @In EntityManager entityManager;<br/>    @In StatusMessages statusMessages;<br/>    <br/>    //@In private TePersonnePrs personne;<br/>    //@In private ThEtudiantEtu etudiant;<br/>    <br/>    private String nom;<br/>    private String prenom;<br/>    private Date dateNaissance;<br/> <br/>    private String pageSuivante = "/home.xhtml";<br/> <br/>    public String getPageSuivante()<br/>    {<br/>        return this.pageSuivante;<br/>    }<br/>    <br/>    public void setPageSuivante(String page)<br/>    {<br/>        this.pageSuivante = page;<br/>    }<br/> <br/>    public boolean identifier()<br/>    {<br/>        try<br/>        {<br/>            log.info("identification.identifier() "<br/>                    + "Tentative d'identification avec les paramètres suivants : "<br/>                    + "#{identification.nom}, #{identification.prenom}, #{identification.dateNaissance}");<br/>    <br/>            Query query = entityManager.createQuery(<br/>                    "from ThEtudiantEtu e " +<br/>                    "where e.prsNom = :nom " +<br/>                        "and e.prsPrenom = :prenom " +<br/>                        "and e.etuDateNaissance = :dateNaissance ");<br/>            query.setParameter("nom", this.getNom());<br/>            query.setParameter("prenom", this.getPrenom());<br/>            query.setParameter("dateNaissance", this.getDateNaissance());<br/>            <br/>            ThEtudiantEtu etudiant = (ThEtudiantEtu) query.getSingleResult();<br/>            <br/>            setPageSuivante("/accueilEtudiant.xhtml");<br/>            return true;<br/>        }<br/>        catch (NoResultException ex)<br/>        {<br/>            return false;<br/>        }<br/>        <br/>    }<br/> <br/>    // add additional action methods<br/>  <br/>    @Length(max = 30)<br/>    public String getNom()<br/>    {<br/>        return nom;<br/>    }<br/>  <br/>    public void setNom(String nom)<br/>    {<br/>        this.nom = nom;<br/>    }<br/> <br/>    @Length(max = 30)<br/>    public void setPrenom(String prenom) {<br/>        this.prenom = prenom;<br/>    }<br/> <br/>    public String getPrenom() {<br/>        return prenom;<br/>    }<br/> <br/>    public void setDateNaissance(Date dateNaissance) {<br/>        this.dateNaissance = dateNaissance;<br/>    }<br/> <br/>    public Date getDateNaissance() {<br/>        return dateNaissance;<br/>    }<br/>  <br/>}</pre><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>I've tried to add role in identity, like in Authenticator.java but it doesn't work.</p></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
<p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/570046#570046">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JBoss Web Development at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2112">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>