[JAVA] Pb de connexion DB Oracle à partir d'une applet [Résolu]

Pb de connexion DB Oracle à partir d'une applet [Résolu] [JAVA] - Java - Programmation

Marsh Posté le 12-05-2006 à 12:34:35    

Bonjour les gens :hello:
 
Je vais pas tourner autour du pot : j'ai un ptit problème de connexion :(. Certes ça reste moins grave qu'un problème d'érection, mais j'apprécierais volontiers un ptit coup de main [:amandine75011].
 
Alors voilà, j'ai installé Oracle express edition 10.2 ainsi que le jdk 1.5 et j'aimerais pouvoir me connecter à la base à partir d'une applet java. Seulement, forcément, bah j'arrive pas à me connecter (AccessControlException inside), alors que pourtant dans une application java, avec le même code, là tout se passe bien. Petits détails techniques : je suis sous windows, un firewall tourne sur le pc, et j'ai du déplacer et décompresser le driver oracle dans le répertoire de l'applet car sinon il me sortait des ClassNotDefFoundException (une erreur surrement liée au classpath donc, que je ne n'ai pas non plus avec la version application).
le code :

Code :
  1. try
  2. {
  3. DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
  4. saConnexion = DriverManager.getConnection (
  5.  "jdbc:oracle:thin:@localhost:1521:XE", "system", "oracle" );
  6. }
  7. catch (Exception telleE)
  8. {
  9. telleE.printStackTrace() ;
  10. }


et la jolie erreur :

Code :
  1. java.security.AccessControlException: access denied (java.util.PropertyPermission oracle.net.wallet_location read)
  2.         at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
  3.         at java.security.AccessController.checkPermission(AccessController.java:427)
  4.         at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
  5.         at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1285)
  6.         at java.lang.System.getProperty(System.java:661)
  7.         at oracle.jdbc.driver.OracleDriver$1.run(OracleDriver.java:1427)
  8.         at java.security.AccessController.doPrivileged(Native Method)
  9.         at oracle.jdbc.driver.OracleDriver.getSystemProperty(OracleDriver.java:1423)
  10.         at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:596)
  11.         at java.sql.DriverManager.getConnection(DriverManager.java:525)
  12.         at java.sql.DriverManager.getConnection(DriverManager.java:171)
  13.         at AppletEcobourse.init(AppletEcobourse.java:22)
  14.         at sun.applet.AppletPanel.run(AppletPanel.java:378)
  15.         at java.lang.Thread.run(Thread.java:595)


 
Toute aide sera la bienvenue, qu'elle soit sous forme de solution imparable, de conseil quelconque, de ticket restaurant ou même de lien google :jap: .
 
Merci d'avance :p


Message édité par HannibAlBundy le 13-05-2006 à 22:36:33
Reply

Marsh Posté le 12-05-2006 à 12:34:35   

Reply

Marsh Posté le 13-05-2006 à 19:26:54    

Allez, s'il vous plait, personne n'aurait d'idée ou de piste de réflexion ? Donc apparemment c'est lié aux restrictions de sécurité des applets (serait-ce le "localhost" qui le dérange :heink: ?), mais doit bien y avoir moyen d'outrepasser ça quand même non :sarcastic: ?
 
Merci d'avance d'avance pour toute forme de contribution :jap:.

Reply

Marsh Posté le 13-05-2006 à 22:22:05    

normal que ça ne va pas...
 
Une applet est du code téléchargé. Donc à priori suspect. Donc ne peut faire certaines opérations tel que lire les infos de la machine sur laquelle elle tourne ou encore créer des connexions réseaux autre que vers le serveur web duquel elle provient, etc... (principe de SANDBOX de JAVA) tout à fait normal.
 
Cependant, on peut imaginer de signer l'applet pour quelle face la connexion, mais ça devient très marteau burin et c'est vachement lourd. Donc la solution généralement utilisée et d'avoir une servlet qui communique avec l'applet pour lui fournir les infos de la base de données. Puisque la servlet tourne sur le server web, celle ci à accès à la base de donnée et pas de prob de sécurité... Voila bonne chance

Reply

Marsh Posté le 13-05-2006 à 22:35:47    

ok, compris chef :jap:.
Merci pour ce petit cours gratuit :hello:.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed