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

Servlets/JSP Java Discussion :

Gros problème de policy..


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Par défaut Gros problème de policy..
    Bonjour à tous,

    je dois créer un programme similaire à Twitter. La version RMI fonctionne parfaitement, maintenant je dois créer une nouvelle version, toujours en RMI, mais intégré à un navigateur en utilisant JSP/JavaBeans via Tomcat.

    Je n'avais pas de problème de policy avec l'ancienne version, mais là c'est la galère : j'ai tenté tout ce que j'ai trouvé sur internet, rien n'y fait, il y a toujours un problème de "java.security.AccessControlException: access denied" : parfois c'est SocketException, sinon c'est "java.util.PropertyPermission * read,write" alors que dans mon fichier policy tout est autorisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    grant {
       permission java.security.AllPermission; 
       permission java.net.SocketPermission "127.0.0.1:1099","connect,accept,resolve";
       permission java.net.SocketPermission "*:80", "connect";
       permission java.util.PropertyPermission "*", "read,write";
       permission java.lang.RuntimePermission "createSecurityManager,setSecurityManager";
    };
    Voila la méthode où a toujours lieu l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        public void setInterface() throws NotBoundException, MalformedURLException, RemoteException{
                System.getProperties().put("java.security.policy", "policy");
                System.setSecurityManager(new RMISecurityManager());
     
                this.myIntTwitter = (InterfaceTwitter) Naming.lookup("rmi://localhost:1099/abs");
        }
    J'ai tenté de la modifier dans tous les sens et rien n'y fait, je suis désespéré... Peut-être est-ce car je place mal le policy ? Où faut-il le mettre ? En fait je crée un .war que je déploie ensuite via tomcat. Le policy est dans le dossier avec toutes les classes.

    Quelqu'un peut-il m'aider ?

    Cordialement.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par skankou Voir le message
    Bonjour à tous,
    il y a toujours un problème de "java.security.AccessControlException: access denied" : parfois c'est SocketException, sinon c'est "java.util.PropertyPermission * read,write"
    Normalement, tomcat démarre sans security manager, a moins que tu n'ai précisé le paramètre -security lors de son démarrage. Tu ne devrais donc pas avoir ce genre de problème

    Voila la méthode où a toujours lieu l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        public void setInterface() throws NotBoundException, MalformedURLException, RemoteException{
                System.getProperties().put("java.security.policy", "policy");
                System.setSecurityManager(new RMISecurityManager());
     
                this.myIntTwitter = (InterfaceTwitter) Naming.lookup("rmi://localhost:1099/abs");
        }
    Une webapplication n'est pas censée modifier le security manager de la jvm. Ceci aurait des conséquence pour toutes les web applications. Tu devrais travailler sans security manager ou, a défaut, connfigurer ton security manager via le fichier $CATALINA_BASE/conf/catalina.policy et démarrer tomcat avec le paramètre -security.


    Note que le choix du rmi dans un contexte webapp est curieux. D'habitude on s'oriente plutot sur une technologie genre EJB, qui utilise RMI en bakend mais a l'avantage d'etre géré par les conteneurs J2EE de manière standard.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Par défaut
    Pour le choix du RMI, c'est le sujet qui est comme ça, mais merci pour la précision, je vais regarder ça pour ma culture générale

    Pour tomcat, c'est NetBeans qui le démarre, mais l'option "Use security manager" est désactivé (je pense que c'est ça...).

    Sans security manager (en enlevant les 2 lignes donc) j'ai droit à une exception sur la permission des sockets :

    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    Etat HTTP 500 -
     
    type Rapport d'exception
     
    message
     
    description Le serveur a rencontr� une erreur interne () qui l'a emp�ch� de satisfaire la requ�te.
     
    exception
     
    org.apache.jasper.JasperException: An exception occurred processing JSP page /login.jsp at line 19
     
    16:     </head>
    17:     <body>
    18:         <%  beans.RMIConnection myrmi = new beans.RMIConnection();
    19:             myrmi.setInterface();
    20:             beans.Callback mycall = new beans.Callback();
    21:             beans.Login lg = new beans.Login();
    22:             lg.setUsername("az");
     
     
    Stacktrace:
            org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
            org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
            org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
            org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
            javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
            sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            java.lang.reflect.Method.invoke(Method.java:616)
            org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:269)
            java.security.AccessController.doPrivileged(Native Method)
            javax.security.auth.Subject.doAsPrivileged(Subject.java:537)
            org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:301)
            org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
     
    cause m�re
     
    java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:1099 connect,resolve)
            java.security.AccessControlContext.checkPermission(AccessControlContext.java:342)
            java.security.AccessController.checkPermission(AccessController.java:553)
            java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
            java.lang.SecurityManager.checkConnect(SecurityManager.java:1051)
            java.net.Socket.connect(Socket.java:536)
            java.net.Socket.connect(Socket.java:492)
            java.net.Socket.<init>(Socket.java:389)
            java.net.Socket.<init>(Socket.java:203)
            sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40)
            sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:146)
            sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613)
            sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
            sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
            sun.rmi.server.UnicastRef.newCall(UnicastRef.java:340)
            sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
            java.rmi.Naming.lookup(Naming.java:101)
            beans.RMIConnection.setInterface(RMIConnection.java:28)
            org.apache.jsp.login_jsp._jspService(login_jsp.java:86)
            org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
            javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
            org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
            org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
            org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
            javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
            sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            java.lang.reflect.Method.invoke(Method.java:616)
            org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:269)
            java.security.AccessController.doPrivileged(Native Method)
            javax.security.auth.Subject.doAsPrivileged(Subject.java:537)
            org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:301)
            org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
     
    note La trace compl�te de la cause m�re de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/6.0.20.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    sans security manager, tout est autorisé, donc t'as du en activer une quelque part.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Par défaut
    Il y en avait un dans le programme serveur que j'ai enlevé (en RMI), mais toujours le même résultat. RMI a-t-il un security manager par défaut ?

Discussions similaires

  1. [Lecture de FichierXML] <--Gros problème
    Par waldo2188 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 18/03/2005, 17h15
  2. gros problème id
    Par Sékiltoyai dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/12/2004, 11h53
  3. Gros problème avec la facturation de Tiscali
    Par Harry dans le forum Dépannage et Assistance
    Réponses: 5
    Dernier message: 21/10/2004, 18h55
  4. Gros problème de session/cookies
    Par valfredr dans le forum XMLRAD
    Réponses: 18
    Dernier message: 03/06/2004, 09h21
  5. Gros Problème avec DirectShow et la méthode RELEASE
    Par Olivier Delmotte dans le forum DirectX
    Réponses: 3
    Dernier message: 10/03/2003, 18h10

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