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 :

Erreur lors du déploiement du fichier war sur glassfish


Sujet :

Glassfish et Payara Java

  1. #1
    Membre du Club
    Erreur lors du déploiement du fichier war sur glassfish
    Bonjour tout le monde


    Pour sécuriser mon application j'ai utilisé le Realm de glassfish , dans un premier temps j'ai créer un pool de connexion JDBC et ca ping tres bien . ensuite j'ai crée un domaine pour passer à glassfish les noms des tables et d'autres paramètres qui concernent les utilisateurs et leurs roles depuis la base .alors j'ai fait un clean and build du projet sur mon pc et j'ai copié le war pour le dépolyer l'application sur glassfish mais juste au moment de déployer mon application , je suis confronté au problème ci-dessous.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [#|2016-10-27T08:57:58.628+0000|SEVERE|glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=21;_ThreadName=Thread-2;|Exception while loading the app|#]
     
    [#|2016-10-27T08:58:15.367+0000|SEVERE|glassfish3.1.2|javax.enterprise.system.tools.admin.org.glassfish.deployment.admin|_ThreadID=21;_ThreadName=Thread-2;|Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! access denied (java.awt.AWTPermission accessEventQueue)|#]
     
    [#|2016-10-27T08:58:17.289+0000|INFO|glassfish3.1.2|org.glassfish.admingui|_ThreadID=22;_ThreadName=Thread-2;|Une exception s'est produite :Erreur lors du déploiement*: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! access denied (java.awt.AWTPermission accessEventQueue). Pour plus d'informations, consultez le fichier server.log.|#]
     
    [#|2016-10-27T09:05:13.259+0000|INFO|glassfish3.1.2|javax.enterprise.system.core.security.com.sun.enterprise.security.auth.realm|_ThreadID=20;_ThreadName=Thread-2;|Realm domaine_securite successfully deleted.|#]
     
    [#|2016-10-27T09:05:26.884+0000|WARNING|glassfish3.1.2|org.apache.catalina.connector.Request|_ThreadID=23;_ThreadName=Thread-2;|PWC4011: Unable to set request character encoding to UTF-8 from context , because request parameters have already been read, or ServletRequest.getReader() has already been called|#]
     
    [#|2016-10-27T09:05:26.978+0000|INFO|glassfish3.1.2|org.glassfish.admingui|_ThreadID=23;_ThreadName=Thread-2;|GUI deployment: uploadToTempfile|#]
     
    [#|2016-10-27T09:05:26.978+0000|INFO|glassfish3.1.2|org.glassfish.admingui|_ThreadID=23;_ThreadName=Thread-2;|uploadFileName=Bison.war|#]



    QUE FAIRE ?


    NB : tout marche bien sur mon pc local mais sur le serveur non plus

  2. #2
    Rédacteur/Modérateur

    Bonjour,

    Dans le répertoire lib/security de ton jre, dans le fichier java.policy, ajoute la ligne:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    permission java.awt.AWTPermission "accessEventQueue";


    A+.

  3. #3
    Membre du Club
    Bonjour


    je te remercie infiniment andry pour la réponse j'ai arrivé à déployer l'application après l'ajout de la ligne de permission mais je n'arrive pas à accéder à les pages quand je m'authentifie

    s'il vous plait aider moi à résoudre ce problème pour livrer l'application à la société

    en fait j'ai changer au lieu de localhost j'ai mis l'adresse ip du serveur web sur le fichier de configuration de hibernate et le pool de connexion dans l'interface d'administration , le ping marche tres bien mais quand je m'authentifie je recois cette erreur et c'est qui est bizarre en local tout marche bien

    j'ai cette erreur qui persiste
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    [#|2016-10-27T11:44:14.086+0000|SEVERE|glassfish3.1.2|javax.enterprise.system.core.security.com.sun.enterprise.security.auth.realm|_ThreadID=27;_ThreadName=Thread-2;|SEC1112: Cannot validate user [aline] for JDBC realm.|#]
     
    [#|2016-10-27T11:44:14.086+0000|WARNING|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.web.security|_ThreadID=27;_ThreadName=Thread-2;|WEB9102: Web Login Failed: com.sun.enterprise.security.auth.login.common.LoginException: Login failed: Security Exception|#]
     
    [#|2016-10-27T11:44:42.017+0000|SEVERE|glassfish3.1.2|javax.enterprise.system.core.security.com.sun.enterprise.security.auth.realm|_ThreadID=26;_ThreadName=Thread-2;|SEC1112: Cannot validate user [pouk] for JDBC realm.|#]
     
    [#|2016-10-27T11:44:42.017+0000|WARNING|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.web.security|_ThreadID=26;_ThreadName=Thread-2;|WEB9102: Web Login Failed: com.sun.enterprise.security.auth.login.common.LoginException: Login failed: Security Exception|#]

  4. #4
    Rédacteur/Modérateur

    As-tu configurer realm sur ton nouveau serveur?

    A+.

  5. #5
    Membre du Club
    Bonjour Andry

    j’espère que tu vas bien


    Concernant Realm j'ai pu le configurer avec le serveur mais toujours j'ai des messages d'erreur de java security , je travaille normal je m'authentifie je fais des transactions mais quand je clique sur déconnecter j'ai un message comme ceci :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    AccessControlException: access denied ("java.security.SecurityPermission" "getPolicy")



    et voici la méthode de déconnecter sur mon bean :

    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
     
      public String logout() {
        String result="/index?faces-redirect=true";
     
        FacesContext context = FacesContext.getCurrentInstance();
        HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();
     
        try {
          request.logout();
        } catch (ServletException e) {
          log.log(Level.SEVERE, "Failed to logout user!", e);
          result = "/naout?faces-redirect=true";
        }
     
        return result;
      }



    et voici ce qu'il y a sur le fichier java.policy

    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
     
    // Standard extensions get all permissions by default
     
    grant codeBase "file:${{java.ext.dirs}}/*" {
    	permission java.security.AllPermission;
    };
     
    // default permissions granted to all domains
     
    grant { 
    	// Allows any thread to stop itself using the java.lang.Thread.stop()
    	// method that takes no argument.
    	// Note that this permission is granted by default only to remain
    	// backwards compatible.
    	// It is strongly recommended that you either remove this permission
    	// from this policy file or further restrict it to code sources
    	// that you specify, because Thread.stop() is potentially unsafe.
    	// See the API specification of java.lang.Thread.stop() for more
            // information.
    	permission java.lang.RuntimePermission "stopThread";
     
    	// allows anyone to listen on un-privileged ports
    	permission java.net.SocketPermission "localhost:1024-", "listen";
     
    	// "standard" properies that can be read by anyone
     
    	permission java.util.PropertyPermission "java.version", "read";
    	permission java.util.PropertyPermission "java.vendor", "read";
    	permission java.util.PropertyPermission "java.vendor.url", "read";
    	permission java.util.PropertyPermission "java.class.version", "read";
    	permission java.util.PropertyPermission "os.name", "read";
    	permission java.util.PropertyPermission "os.version", "read";
    	permission java.util.PropertyPermission "os.arch", "read";
    	permission java.util.PropertyPermission "file.separator", "read";
    	permission java.util.PropertyPermission "path.separator", "read";
    	permission java.util.PropertyPermission "line.separator", "read";
     
    	permission java.util.PropertyPermission "java.specification.version", "read";
    	permission java.util.PropertyPermission "java.specification.vendor", "read";
    	permission java.util.PropertyPermission "java.specification.name", "read";
     
    	permission java.util.PropertyPermission "java.vm.specification.version", "read";
    	permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
    	permission java.util.PropertyPermission "java.vm.specification.name", "read";
    	permission java.util.PropertyPermission "java.vm.version", "read";
    	permission java.util.PropertyPermission "java.vm.vendor", "read";
    	permission java.util.PropertyPermission "java.vm.name", "read";
    	 permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
    	 permission java.awt.AWTPermission "accessEventQueue";
    };



    Est ce qu'il n'y a pas moyen de se débarrasser de ces messages de security une fois pour toute ?

  6. #6
    Rédacteur/Modérateur

    Est ce qu'il n'y a pas moyen de se débarrasser de ces messages de security une fois pour toute ?
    Pour faciliter les intrusions?

    Dans dans le fichier cité précédemment, retire la ligne que tu avais ajouté et ajoute:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      grant codeBase "file:/chemin vers le repertoire de ton serveur/-" {
          permission java.awt.AWTPermission "accessEventQueue";
          permission java.security.SecurityPermission "getPolicy";
      };


    Je te conseille de lire cet article pour bien configurer les permissions.

    A+.

  7. #7
    Membre du Club
    Salut andry

    Je te remercie infiniment pour les réponses et l'attention que vous portez à mon sujet


    j'ai ajouté sur le fichier java.policy qui se trouve sur ce chemin C:\Program Files\Java\jre7\lib\security ce que vous m'avez cité dans ton dernier commentaire mais quand je lance l'application via la condole d'administration de glassfish , la fameuse Erreur 404 apparait , par contre quand je modifie le fichier avec les configurations comme ci dessous tout fonctionne tres bien



    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
     
     
    // Standard extensions get all permissions by default
     
    grant codeBase "file:${{java.ext.dirs}}/*" {
    	permission java.security.AllPermission;
    };
     
    // default permissions granted to all domains
     
    grant { 
    	// Allows any thread to stop itself using the java.lang.Thread.stop()
    	// method that takes no argument.
    	// Note that this permission is granted by default only to remain
    	// backwards compatible.
    	// It is strongly recommended that you either remove this permission
    	// from this policy file or further restrict it to code sources
    	// that you specify, because Thread.stop() is potentially unsafe.
    	// See the API specification of java.lang.Thread.stop() for more
            // information.
    	permission java.lang.RuntimePermission "stopThread";
     
    	// allows anyone to listen on un-privileged ports
    	permission java.net.SocketPermission "localhost:1024-", "listen";
     
    	// "standard" properies that can be read by anyone
     
    	permission java.util.PropertyPermission "java.version", "read";
    	permission java.util.PropertyPermission "java.vendor", "read";
    	permission java.util.PropertyPermission "java.vendor.url", "read";
    	permission java.util.PropertyPermission "java.class.version", "read";
    	permission java.util.PropertyPermission "os.name", "read";
    	permission java.util.PropertyPermission "os.version", "read";
    	permission java.util.PropertyPermission "os.arch", "read";
    	permission java.util.PropertyPermission "file.separator", "read";
    	permission java.util.PropertyPermission "path.separator", "read";
    	permission java.util.PropertyPermission "line.separator", "read";
     
    	permission java.util.PropertyPermission "java.specification.version", "read";
    	permission java.util.PropertyPermission "java.specification.vendor", "read";
    	permission java.util.PropertyPermission "java.specification.name", "read";
     
    	permission java.util.PropertyPermission "java.vm.specification.version", "read";
    	permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
    	permission java.util.PropertyPermission "java.vm.specification.name", "read";
    	permission java.util.PropertyPermission "java.vm.version", "read";
    	permission java.util.PropertyPermission "java.vm.vendor", "read";
    	permission java.util.PropertyPermission "java.vm.name", "read";
     
     
               permission java.awt.AWTPermission "accessEventQueue";
               permission java.security.SecurityPermission "getPolicy";
    	   permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
    	   permission java.security.SecurityPermission "setPolicy";
     
    };



    à votre avis quels sont les inconvénients si je laisse les configurations comme ceci , personnellement j'ai pas beaucoup d'idée je suis un simple développeur qui
    débute dans le monde java ??