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

Applets Java Discussion :

Problème de sécurité d'accès d'applet à une base de données dans un JSP


Sujet :

Applets Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 47
    Par défaut Problème de sécurité d'accès d'applet à une base de données dans un JSP
    Salut tt le monde
    Je fais appel à une applet java dans une page jsp. L'applet utilise un fichier qu'elle lit depuis une base de donnée grace à JDBC.
    Quand je lance l'applet depuis l'application java tout marche nickel, par contre depuis la page jsp, j'obtient l'erreur:

    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
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    CacheEntry[http://localhost:8080/PrefuseWeb/prefuse.jar]: updateAvailable=true,lastModified=Wed May 23 16:54:01 CEST 2012,length=5812152
    java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.sun.jdbc.odbc")
    	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.checkPackageAccess(Unknown Source)
    	at sun.plugin2.applet.SecurityManagerHelper.checkPackageAccessHelper(Unknown Source)
    	at sun.plugin2.applet.AWTAppletSecurityManager.checkPackageAccess(Unknown Source)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.Class.forName0(Native Method)
    	at java.lang.Class.forName(Unknown Source)
    	at tests.JDBCSample.open_graph(Unknown Source)
    	at prefuse.demos.wafaaa.demo(Unknown Source)
    	at prefuse.demos.applets.wafa.init(Unknown Source)
    	at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.init(Unknown Source)
    	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)
    CacheEntry[http://localhost:8080/PrefuseWeb/prefuse.jar]: updateAvailable=true,lastModified=Wed May 23 16:56:13 CEST 2012,length=5812152
    java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.sun.jdbc.odbc")
    	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.checkPackageAccess(Unknown Source)
    	at sun.plugin2.applet.SecurityManagerHelper.checkPackageAccessHelper(Unknown Source)
    	at sun.plugin2.applet.AWTAppletSecurityManager.checkPackageAccess(Unknown Source)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.Class.forName0(Native Method)
    	at java.lang.Class.forName(Unknown Source)
    	at tests.JDBCSample.open_graph(Unknown Source)
    	at prefuse.demos.wafaaa.demo(Unknown Source)
    	at prefuse.demos.applets.wafa.init(Unknown Source)
    	at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.init(Unknown Source)
    	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)
    java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.sun.jdbc.odbc")
    	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.checkPackageAccess(Unknown Source)
    	at sun.plugin2.applet.SecurityManagerHelper.checkPackageAccessHelper(Unknown Source)
    	at sun.plugin2.applet.AWTAppletSecurityManager.checkPackageAccess(Unknown Source)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.Class.forName0(Native Method)
    	at java.lang.Class.forName(Unknown Source)
    	at tests.JDBCSample.open_graph(Unknown Source)
    	at prefuse.demos.wafaaa.demo(Unknown Source)
    	at prefuse.demos.applets.wafa.init(Unknown Source)
    	at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.init(Unknown Source)
    	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)
    java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.sun.jdbc.odbc")
    	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.checkPackageAccess(Unknown Source)
    	at sun.plugin2.applet.SecurityManagerHelper.checkPackageAccessHelper(Unknown Source)
    	at sun.plugin2.applet.AWTAppletSecurityManager.checkPackageAccess(Unknown Source)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.Class.forName0(Native Method)
    	at java.lang.Class.forName(Unknown Source)
    	at tests.JDBCSample.open_graph(Unknown Source)
    	at prefuse.demos.wafaaa.demo(Unknown Source)
    	at prefuse.demos.applets.wafa.init(Unknown Source)
    	at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.init(Unknown Source)
    	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)
    Je pense c'est un problème de sécurité, et d'après ce que j'ai lu sur google, même si le jar est signé ça ne change rien au problème.
    Quelqu'un aurait peut être une solution?
    merciiii

  2. #2
    Membre expérimenté
    Avatar de karbos
    Inscrit en
    Novembre 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 155
    Par défaut
    Citation Envoyé par wafabrj Voir le message
    Salut tt le monde
    Je fais appel à une applet java dans une page jsp. L'applet utilise un fichier qu'elle lit depuis une base de donnée grace à JDBC.
    Quand je lance l'applet depuis l'application java tout marche nickel, par contre depuis la page jsp, j'obtient l'erreur:
    Je pense c'est un problème de sécurité, et d'après ce que j'ai lu sur google, même si le jar est signé ça ne change rien au problème.
    Quelqu'un aurait peut être une solution?
    merciiii
    Dans le premier cas, tu accèdes directement à la base de données dans le deuxième, ton serveur filtre la requête... Tu dois faire un peu de config au niveau du serveur pour permettre à ton applet de se connecter à la base de données. Ce n'est pas très recommandé: http://java.sun.com/developer/online...Java1/dba.html

  3. #3
    Membre averti
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 47
    Par défaut
    effectivement, je sais que je dois insérer ces lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    permission java.lang.RuntimePermission
           "accessClassInPackage.sun.jdbc.odbc";
        permission java.util.PropertyPermission
           "file.encoding", "read";
    C'est indiqué qu'il faut insérer ceci dans le fichier grant.policy, sauf que celui ci est généré automatiquement... donc même si je rajoute ces lignes, elles disparaissent après chaque exécution

  4. #4
    Membre averti
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 47
    Par défaut
    j'ai essayé aussi de l'insérer dans le fichier "java.policy" , ansi que "applet.policy" de mon projet java, mais toujours rien...
    je désespère, au secours!!!

  5. #5
    Membre expérimenté
    Avatar de karbos
    Inscrit en
    Novembre 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 155
    Par défaut
    Je ne connais pas l'arborescence de ton projet avec NetBean, mais, tu ne dois pas éditer le bon fichier.
    Je m'explique : je pense que tu édites le fichier qui est (physiquement) sur le serveur, donc à chaque fois que déploies ton projet pour l’exécuter, tu écrases le fichier qui est sur le serveur, et, avec lui, ta modification.
    Il faut donc que tu trouves le fichier qui est (physiquement) dans ton projet et qui va être déployé par NetBean (ou par Ant, je ne sais pas ce que tu utilises) à l'éxécution.
    Fouille un petit peu dans ton arborescence, tu devrais trouver un autre fichier du même nom. Colle une capture d'écran avec tous les dossiers dépliés si tu veux, mais pour l'instant je ne peux pas t'aider plus que ça...

  6. #6
    Membre averti
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 47
    Par défaut
    arborescence.doc
    Merci pour votre aide, voici l'imprime ecran en pièce jointe.
    La modification que j'ai faite (grant) etait dans le fichier "applet.policy" qui apparait dans l'arborescence.
    C'est bien ça nn?

Discussions similaires

  1. accès en réseau à une base de donnée
    Par Dikimb dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/03/2009, 18h13
  2. problème chargement d'un combo à partir d'une base de données
    Par reverse_engineer dans le forum Struts 1
    Réponses: 3
    Dernier message: 10/07/2008, 07h15
  3. Accès R/W à une base de données en multi-utilisateurs
    Par foreigner6 dans le forum Services Web
    Réponses: 1
    Dernier message: 18/02/2008, 20h39
  4. Accès Réseau a une base de données Access par Visual Basic
    Par thegreatbato dans le forum VBA Access
    Réponses: 5
    Dernier message: 06/01/2006, 14h04
  5. Réponses: 15
    Dernier message: 25/10/2004, 11h50

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