IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Glassfish et Payara Java Discussion :

Faces JAAS Josso SAM authentification erreur


Sujet :

Glassfish et Payara Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 80
    Points : 74
    Points
    74
    Par défaut [Résolu] Faces JAAS Josso SAM authentification erreur
    Bonjour,

    Dans le cadre de l'intégration de JOSSO sur glassfish v2.1 et Faces je rencontre une difficulté pour retrouver l'URL initiale qui a déclenchée le passage sur le formulaire de login (c'est la méthode que j'ai choisit pour cette aplication JSF).
    Je ne suis pas dans la situation où c'est Glassfish qui fait directement l'authentification, mais je me redirige vers un autre serveur pour cela (Josso).
    Mon problème n'est pas JOSSO puisque sur une servlet Catalina classique tout fonctionne bien, mais spécifiquement sur la servlet Faces.
    Mon problème n'est pas non plus l'authentification puisque j'obtient mon subject et mon principal.
    Ce que je souhaiterais trouver c'est une méthode qui me donne la première URL demandée par le navigateur et que Glassfish (Grizzly ?) à refuser de me donner (erreur 302) pour ensuite me rediriger vers la page de Login.

    Salutations,

    Stéphane Popoff

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 80
    Points : 74
    Points
    74
    Par défaut complément infos
    Bonjour,

    Je sais la sécurité c'est pas la première chose à laquelle on pense, mais bon ...
    Pour préciser mon contexte dans le cas de la servlet Faces j'utilise un filtre pour analyser les demandes et faire les uthentifications sur le serveur distant et en local. Dans le cas de Catalina j'utilise un Valve mais avec le même realm et loginModule. Voici le code qui m'authentifie du côté Faces et qui fonctionne (spécifique Glassfish 2.1 et pas facile à trouver sur Google):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
      public boolean authentif(String user, String pass){
          try {
                sub = new Subject();
                //sub.getPrivateCredentials().add(new PasswordCredential(user,pass, Realm.getDefaultRealm()));
                sub.getPrivateCredentials().add(new PasswordCredential(user,pass, "jossoRealm"));
                LoginContext lc = new LoginContext("josso", sub);
                lc.login();
                System.out.println("Succès JAASHelper login recheche subject");
                sub = lc.getSubject();
                //SecurityContext securityContext =  new SecurityContext(user,lc.getSubject(), Realm.getDefaultRealm());
                sc =  new SecurityContext(user,lc.getSubject(), "jossoRealm");
     
                SecurityContext.setCurrent(sc);
                bAuth = true;
                System.out.println("Info JAASHelper fin authentif sub="+sub.toString());
          } catch (LoginException e) {
                System.err.println("Erreur JAASHelper login "+e.toString());
          }
          return bAuth;
    Mon problème reste pour autant le même comment récupérer sur un événement, la première URL qui déclenche l'erreur 302 et la redirection vers la page de login, voir extrait du web.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
        <security-constraint>
            <display-name>Constraint1</display-name>
            <web-resource-collection>
                <web-resource-name>the_faces</web-resource-name>
                <description>les pages faces</description>
                <url-pattern>/faces/*</url-pattern>
                <http-method>GET</http-method>
                <http-method>POST</http-method>
                <http-method>HEAD</http-method>
                <http-method>PUT</http-method>
                <http-method>OPTIONS</http-method>
                <http-method>TRACE</http-method>
                <http-method>DELETE</http-method>
            </web-resource-collection>
            <auth-constraint>
                <description/>
                <role-name>role1</role-name>
                </auth-constraint>
        </security-constraint>
        <login-config>
            <auth-method>FORM</auth-method>
            <realm-name>jossoRealm</realm-name>
            <form-login-config>
                <form-login-page>/faces/login-redirect.jsp</form-login-page>
                <form-error-page>/faces/login-redirect.jsp</form-error-page>
                </form-login-config>
        </login-config>
    Merci d'avance pour votre attention.

    Stéphane Popoff

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 80
    Points : 74
    Points
    74
    Par défaut complément d'analyse
    Re,

    En fait il doit manquer quelque chose dans la fin du procees d'authentification et qui doit permettre de soulever le barrage de la page de login, parce que moi la seule ressource à laquelle j'accède c'est cette page de login. Pour info le code de la page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <%@page contentType="text/html; charset=UTF-8" language="java" session="true" %>
    <!--
    Redirects the user to the proper login page.  Configured as the login url the web.xml for this application.
    -->
    <%
        String ssoSessionId;
        ssoSessionId = (String) request.getAttribute("org.josso.agent.ssoSessionid");
        if(ssoSessionId==null){
            response.sendRedirect(request.getContextPath() + "/josso_login/");
        }else {
            %><%= "Zut!" %><%
        }
    %>
    Je sais c'est pas terrible de testé un attribut mais normalement (voir Catalina) cela fonctionne car c'est dans le filtre que tous les traitements sont fait.
    Donc ma question du jour c'est qu'est-ce qu'il faut mettre dans le http pour qu'il franchisse la barrière, sachant que je suppose que j'ai fait ce qu'il fallait du côté servlet ?

    SP

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 80
    Points : 74
    Points
    74
    Par défaut nouvelle approche SAM
    Re,

    Bon pas beaucoup de monde sur le coup

    Je vais prendre une autre orientation et faire un module SAM qui fondamentalement ressemble à un filter mais en mieux de mon point de vue.

    La suite au prochaine épisode

    SP

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 80
    Points : 74
    Points
    74
    Par défaut Erreur entre SAM et filter PWC1406
    Re,

    Cela n'amuse que moi, mais si je trouve la solution cela aidera peut être quelqu'un

    Donc le module SAM fonctionne mais j'ai une erreur juste avant de passer sur mon filtre que je garde uniquement pour lancer une fois un agent, le doFilter ne sert que de log, voici la pile:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    StandardWrapperValve[default]: PWC1406 : servlet.service() pour le servlet default a émis une exception.
    java.lang.IllegalStateException
            at org.apache.coyote.tomcat5.CoyoteResponseFacade.sendError(CoyoteResponseFacade.java:449)
            at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:756)
            at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:400)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
            at sun.reflect.GeneratedMethodAccessor73.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:292)
            at java.security.AccessController.doPrivileged(Native Method)
            at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
            at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:325)
            at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:208)
            at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:420)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
            at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
            at org.apache.catalina.core.StandardPipeline.doChainInvoke(StandardPipeline.java:599)
            at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:92)
            at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
            at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
            at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
            at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
    Cette erreur est trop générale pour être significative, il faut analyser la pile, ce qui m'étonne c'est le nom de la servlet 'default' et puis que cela ne marche pas

    Bon le week-end porte conseil

    SP

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 80
    Points : 74
    Points
    74
    Par défaut erreur SEC5052 c'est mieux
    Bonsoir,

    Toujours sur le grill, maintenant l'erreur est plus précise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    **JossoSAM** security context =SecurityContext[ Initiator: 93543F6B0C443D94D073F425A2EECE8ASubject Objet :
            Principal : spo
            Principal : role1(members)
            Principal : manager(members)
            Principal : 93543F6B0C443D94D073F425A2EECE8A
            Principal : role1
            Principal : manager
            Identité privée : Realm=jossoRealm Username=93543F6B0C443D94D073F425A2EECE8A Password=######## TargetName = [B@93370a
     ]
    **JossoSAM** finalise le flux http nom=93543F6B0C443D94D073F425A2EECE8A
    **JossoSAM** requête coyote avec principal p=93543F6B0C443D94D073F425A2EECE8A
    **JossoSAM** session avec principal p=93543F6B0C443D94D073F425A2EECE8A
    Redirecting to original '/techDecisionTest1/faces/welcomeJSF.jsp' on SUCCESS!
    SEC5052 : Un objet ayant une valeur null a été utilisé pour la construction de SecurityContext.
    StandardWrapperValve[default]: PWC1406 : servlet.service() pour le servlet default a émis une exception.
    java.lang.IllegalStateException
            at org.apache.coyote.tomcat5.CoyoteResponseFacade.sendError(CoyoteResponseFacade.java:449)
            at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:756)
            at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:400)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
            at sun.reflect.GeneratedMethodAccessor74.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:292)
            at java.security.AccessController.doPrivileged(Native Method)
            at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
            at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:325)
            at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:208)
            at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:420)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
            at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
            at org.apache.catalina.core.StandardPipeline.doChainInvoke(StandardPipeline.java:599)
            at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:92)
            at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
            at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
            at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
            at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
    **JossoSAM** on retourne une réponse SUCCESS !!
    J'ai quelque chose de vide dans le context de sécurité, pourtant mon log me dit qu'il est bien remplit
    Il faut dire que je remplit la requête et la session avec des trucs qui marche sur Catalina mais sans doute pas vraiment avec Faces:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
       private void setAuthenticationResult(String name, Subject s, MessageInfo m) throws IOException, UnsupportedCallbackException {
          System.out.println("**JossoSAM** finalise le flux http nom="+name);
          HttpServletRequest request = (HttpServletRequest) m.getRequestMessage();
          handler.handle(new Callback[]{new CallerPrincipalCallback(s, name)});
          if (name != null) {
          // add the default group if the property is set
              if (defaultGroup != null) {
                  handler.handle(new Callback[]{
                      new GroupPrincipalCallback(s, defaultGroup)
                  });
              }
              m.getMap().put(AUTH_TYPE_INFO_KEY, "jossoRealm");
          }else{
              System.err.println("**JossoSAM** pas de callback pour le principal");
          }
          //on essaie une methode pour mettre à jour le flux http au niveau securité
          CoyoteRequest httpReq = null;
          Session session = null;
          try {
              httpReq = getUnwrappedCoyoteRequest(request);
              session = getSession(httpReq);
          } catch (Exception e) {
              System.err.println("**JossoSAM** erreur sur la requête coyote ou la session "+e.toString());
              return;
          }
          if(httpReq==null){
              System.err.println("**JossoSAM** requête coyote vide");
              return;
          }else{
              for(Principal p : s.getPrincipals()){
                  if(p.getName().equals(name)){
                    httpReq.setUserPrincipal(p);
                    httpReq.setAuthType(WEBAUTH_PROGRAMMATIC);
                    System.out.println("**JossoSAM** requête coyote avec principal p="+p.getName());
                    break;
                  }
     
              }
          }
          if(session==null){
              System.err.println("**JossoSAM** session active vide");
              return;
          }else{
              for(Principal p : s.getPrincipals()){
                  if(p.getName().equals(name)){
                    session.setPrincipal(p);
                    session.setAuthType(WEBAUTH_PROGRAMMATIC);
                    System.out.println("**JossoSAM** session avec principal p="+p.getName());
                   break;
                  }
     
              }
          }
       }
    Je vais essayer sur GF v3 prelude des fois que ...

    SP

  7. #7
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    Essaye v3 Preview (prelude est vraiment dépassé maintenant), ou mieux encore une version plus récente dispo sur http://download.java.net/glassfish/v3/promoted/ (build 70 par exemple)

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 80
    Points : 74
    Points
    74
    Par défaut try again
    Bonjour,

    Merci pour cette info, je vais mettre à jour ma version 2.1 avec la 2.1.1 et je pense qu'il faut que je trouve le code source de ce qui est fait dans GlassFish quand une application utilise un des Realm standard. D'ailleurs je ne sais pas si c'est dans le Realm ou le LoginModule qu'est fait la mise à jour des données d'authentification

    Mon test avec V3 n'est pas vraiment probant car je crois que mon application n'est pas "attrapée" par mon module SAM. De plus dans V3 le support de SAM semble vraiment limité à SOAP.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    FIN: Intercept Entry: 
        intercept: HttpServlet
        defaultServerID: null
        defaultClientID:  null
    FIN: ID Entry: 
        module class: techDecision.JossoSAM
        id: jossoSAM
        type: server
        request policy: javax.security.auth.message.MessagePolicy@77622b
        response policy: javax.security.auth.message.MessagePolicy@1ce08c7
        options: {realm.name=jossoRealm, group.name=user}
    FIN: Loading com.sun.enterprise.security.ssl.SSLUtils from bundle: org.glassfish.security.securitycommon [20]
    FIN: com.sun.enterprise.security.ssl.SSLUtils.class.getClassLoader() = 20.0
    FIN: Loading com.sun.enterprise.security.ssl.SecuritySupportImpl from bundle: org.glassfish.security.securitycommon [20]
    FIN: com.sun.enterprise.security.ssl.SecuritySupportImpl.class.getClassLoader() = 20.0
    FIN: Loading keystoreFile = /home/spopoff/GlassFish_v3_Prelude/glassfish/domains/spo_dom/config/keystore.jks, keystorePass = changeit
    FIN: Loading keystoreFile = /home/spopoff/GlassFish_v3_Prelude/glassfish/domains/spo_dom/config/cacerts.jks, keystorePass = changeit
    FIN:  Calling hasUserDataPermission()
    FIN: [Web-Security][ hasUserDataPermission ] Principal: null ContextPath: /testJossoGL3
    FIN: [Web-Security] Setting Policy Context ID: old = null ctxID = testJossoGL3/testJossoGL3
    FIN: [Web-Security] hasUserDataPermission perm: (javax.security.jacc.WebUserDataPermission  GET)
    FIN: [Web-Security] hasUserDataPermission isGranted: true
    FIN:  Calling authenticate()
    FIN: [Web-Security] Policy Context ID was: testJossoGL3/testJossoGL3
    FIN: [Web-Security] Generating a protection domain for Permission check.
    FIN: [Web-Security] Checking with Principals: null
    FIN: [Web-Security] Codesource with Web URL: file:/testJossoGL3/testJossoGL3
    FIN: [Web-Security] Checking Web Permission with Principals : null
    FIN: [Web-Security] Web Permission = (javax.security.jacc.WebResourcePermission /faces/welcomeJSF.jsp GET)
    FIN: DD did not specify ID, or DD-specified ID for [HttpServlet] not found in config -- attempting to look for default ID
    FIN: no default config ID for [HttpServlet]
    FIN: JAMC: http msg authentication fail
    javax.security.auth.message.AuthException: null ServerAuthContext
            at com.sun.web.security.RealmAdapter.validate(RealmAdapter.java:1289)
            at com.sun.web.security.RealmAdapter.invokeAuthenticateDelegate(RealmAdapter.java:1162)
            at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:687)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
            at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:96)
            at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:187)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:651)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1030)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:142)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:651)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1030)
            at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:242)
            at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:180)
            at com.sun.grizzly.http.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:633)
            at com.sun.grizzly.http.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:570)
            at com.sun.grizzly.http.DefaultProcessorTask.process(DefaultProcessorTask.java:827)
            at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:152)
            at com.sun.enterprise.v3.services.impl.GlassfishProtocolChain.executeProtocolFilter(GlassfishProtocolChain.java:71)
            at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:103)
            at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:89)
            at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
            at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:67)
            at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:56)
            at com.sun.grizzly.util.WorkerThreadImpl.processTask(WorkerThreadImpl.java:325)
            at com.sun.grizzly.util.WorkerThreadImpl.run(WorkerThreadImpl.java:184)
    FIN:  Failed authenticate() test
    SP

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 80
    Points : 74
    Points
    74
    Par défaut [Résolu] Victoire !!
    Bon j'ai tout résolu mes problèmes et obtenu ce que je souhaitais atteindre.
    Je suis resté sur la version 2.1 on verra plus tard pour la 3 (y a pas que l'informatique dans la vie, il y a aussi le ménage
    En gros j'avais une erreur sur le type de réponse que je faisais dans le SAM, il fallait utiliser SUCCESS et pas SEND_SUCCESS (je n'étais pas sûr de moi, le succès me semblait trop facile. Et puis dans tous les changements que j'avais apporté au code de Rom Mozillohttp://www.javaworld.com/community/node/979 j'avais oublier de mettre à jour les handler sur le principal et les groupes.

    Donc maintenant tout va bien mais j'ai tellement de code dans tous les sens en particulier un login programatic dont je ne suis pas certain qu'il serve à quelque chose que tout cela tient du miracle.

    Heureusement que personne d'autre que moi utilisera ce code que vous pourrez trouver sur habilitants google code JossoAgentGL2

    SP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/02/2015, 13h14
  2. Digest authentification : erreur 401
    Par NejNej dans le forum C#
    Réponses: 4
    Dernier message: 07/09/2011, 10h33
  3. Jaas formulaire d'authentification tomcat
    Par rc_29 dans le forum Sécurité
    Réponses: 3
    Dernier message: 15/03/2008, 07h31
  4. [ JAAS ][ Struts ] Formulaire Authentification
    Par cirdec dans le forum Struts 1
    Réponses: 14
    Dernier message: 05/02/2006, 18h22
  5. [JAAS]Module d'authentification
    Par yanis97 dans le forum Sécurité
    Réponses: 3
    Dernier message: 10/07/2005, 19h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo