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

JDBC Java Discussion :

[APPLET] [JDBC] AccessControlException levée sur l'accès bd


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Profil pro
    gnome
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : El Salvador

    Informations professionnelles :
    Activité : gnome

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Points : 71
    Points
    71
    Par défaut [APPLET] [JDBC] AccessControlException levée sur l'accès bd
    Bonjour,

    J'ai une applet qui tente de se connecter à une base Oracle via le driver JDBC... Oracle.

    Celà fonctionne parfaitement dans l'AppletViewer.

    Par contre, depuis la page HTML, un problème (de sécurité semble-t-il) survient. L'exception suivante est levée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    java.security.AccessControlException: access denied (java.net.SocketPermission venus resolve)
    	at java.security.AccessControlContext.checkPermission(Unknown Source)
    	at java.security.AccessController.checkPermission(Unknown Source)
    	at java.lang.SecurityManager.checkPermission(Unknown Source)
    	at java.lang.SecurityManager.checkConnect(Unknown Source)
    	at java.net.InetAddress.getAllByName0(Unknown Source)
    	at java.net.InetAddress.getAllByName0(Unknown Source)
    	at java.net.InetAddress.getAllByName(Unknown Source)
    	at java.net.InetAddress.getByName(Unknown Source)
    	at java.net.InetSocketAddress.<init>(Unknown Source)
    	at java.net.Socket.<init>(Unknown Source)
    	at oracle.net.nt.TcpNTAdapter.connect(Unknown Source)
    	at oracle.net.nt.ConnOption.connect(Unknown Source)
    	...
    Où "venus" est simplement le nom du serveur.


    Comment résoudre ce problème ?

    Pensez-vous que le problème vienne plutôt du navigateur (il s'agit ici de firefox) ou de la JRE (ici une 1.5) ?

    J'ai fouillé dans les paramètres de chacun sans rien trouver de déterminant?


    Merci de votre aide.

    bob

  2. #2
    Membre habitué
    Inscrit en
    Juin 2004
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 165
    Points : 136
    Points
    136
    Par défaut
    Je dirais que cela viens du fait que ta jre n'autorise pas les applets à y accéder.

    Il doit falloir ajouter une ligne dans le fichier java.policy de ta jre (jre\lib\security) qui lui donne cette autorisation. Je n'ai pas cette ligne mais en cherchant sous google ca doit être faisable.

  3. #3
    Membre habitué
    Inscrit en
    Juin 2004
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 165
    Points : 136
    Points
    136
    Par défaut
    Ca doit être une ligne du style :
    permission java.net.SocketPermission "venus", " resolve";

  4. #4
    Membre régulier
    Profil pro
    gnome
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : El Salvador

    Informations professionnelles :
    Activité : gnome

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Points : 71
    Points
    71
    Par défaut
    Salut,

    L'ajout de cette ligne ne semble rien apporter.

    Par contre j'ai, de base, dans le fichier java.policy, les lignes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    grant codeBase "file:${{java.ext.dirs}}/*" {
    	permission java.security.AllPermission;
    };
    Qui, si je comprends bien, correspond à ce que tu me préconises mais avec des autorisations plus larges. Et d'après google, la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    permission java.security.AllPermission;
    devrait résoudre mon problème.


    Visiblement il manque encore qqchose, et je ne sais pas quoi

    bob[/quote]

  5. #5
    Membre habitué
    Inscrit en
    Juin 2004
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 165
    Points : 136
    Points
    136
    Par défaut
    grant codeBase "192.168.1.10"{
    permission java.security.AllPermission;
    permission java.net.SocketPermission "192.168.1.10", " resolve";
    };

    ouù 192.168.1.10 est l'ip de vénus (je te mets cet exemple mais je pense que ca doit marcher si tu mets le nom de domaine de venus)

  6. #6
    Membre régulier
    Profil pro
    gnome
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : El Salvador

    Informations professionnelles :
    Activité : gnome

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Points : 71
    Points
    71
    Par défaut
    Yep,

    J'ai inséré les lignes que tu m'as indiqué. Le système me demande du coup de préciser le protocole, en plus du nom de la machine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    java.security.policy : erreur d'ajout d'entrée :
    	java.net.MalformedURLException: no protocol: venus.prod.prodidact.net
    java.security.AccessControlException: access denied (java.net.SocketPermission venus resolve)
    	at java.security.AccessControlContext.checkPermission(Unknown Source)
    La connection se fait vers une base oracle (9i).
    - J'ai essayé de préciser le port (1521) : négatif
    - J'ai essayé jdbc:oracle:thin (ce par quoi commence l'uri de connection) : négatif

    Que faut-il indiquer pour ce type de connection ?


    merci

    bob

  7. #7
    Membre régulier
    Profil pro
    gnome
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : El Salvador

    Informations professionnelles :
    Activité : gnome

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Points : 71
    Points
    71
    Par défaut
    Je n'ai pas trouvé de réponse quant à l'indication du protocole. Même en indicant "http://x.y.z", j'avais des erreurs.


    Du coup, j'ai tout simplement ajouté dans le java.policy :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    grant {
      permission java.security.AllPermission;
    };
    Et ceci règle tous mes problèmes. Par contre je ne sais pas si celà crée des problèmes de sécurité (trop de tolérance...)

    En tout cas merci!

    bob

  8. #8
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    bonjour,

    pour modifier java.policy tu peux utiliser :
    (Java\jdk1.5.0_03\bin\)policytool

    A +

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

Discussions similaires

  1. Applet JDBC connect erreur
    Par mickael.guilbert dans le forum Applets
    Réponses: 3
    Dernier message: 14/06/2006, 15h55
  2. [Applet] Fichier de log sur le serveur
    Par le Daoud dans le forum Applets
    Réponses: 2
    Dernier message: 23/05/2006, 16h38
  3. [Debutant] Applet listant les fichiers sur le disque
    Par romu92 dans le forum Applets
    Réponses: 2
    Dernier message: 05/05/2006, 09h26
  4. [JDBC][Fermeture] Influence sur les perfs?
    Par fabszn dans le forum JDBC
    Réponses: 3
    Dernier message: 26/12/2005, 16h15
  5. [JDBC][Derby]Problèmes sur un runnable
    Par koko- dans le forum JDBC
    Réponses: 3
    Dernier message: 08/09/2005, 11h05

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