OVH Cloud OVH Cloud

SOS access denied (java.net.SocketPermission xxx.fr resolve)

11 réponses
Avatar
Bertrand B
J'ai ce probl=E8me lorsque mon APPLET veux se conecter sur le serveur o=F9=
=20
elle a =E9t=E9 t=E9l=E9chag=E9e.

Pour un pov' simplet qui s'essaye =E0 Java pour la premi=E8re fois pourri=
ez=20
vous me dire comment contourner cette difficult=E9 ?

10 réponses

1 2
Avatar
O.L.
J'ai ce problème lorsque mon APPLET veux se conecter sur le serveur où elle a
été téléchagée.

Pour un pov' simplet qui s'essaye à Java pour la première fois pourriez vous
me dire comment contourner cette difficulté ?


Essaie en mettant directement l'adresse IP du serveur sur lequel est
hébergée ton applet, comme ça l'applet n'aura plus à faire de resolve
elle même (traduire un nom de domaine en une IP).

Pour connaitre l'IP du serveur : ping xxx.fr

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net

Avatar
Bertrand B

J'ai ce problème lorsque mon APPLET veux se conecter sur le serveur où
elle a été téléchagée.

Pour un pov' simplet qui s'essaye à Java pour la première fois
pourriez vous me dire comment contourner cette difficulté ?



Essaie en mettant directement l'adresse IP du serveur sur lequel est
hébergée ton applet, comme ça l'applet n'aura plus à faire de r esolve
elle même (traduire un nom de domaine en une IP).

Pour connaitre l'IP du serveur : ping xxx.fr

Ca ne devrait rien changer je vais encore coincer mais sur le connect ...


Doit y avoir un truc autour des securitymanager


Avatar
O.L.

J'ai ce problème lorsque mon APPLET veux se conecter sur le serveur où
elle a été téléchagée.

Pour un pov' simplet qui s'essaye à Java pour la première fois pourriez
vous me dire comment contourner cette difficulté ?



Essaie en mettant directement l'adresse IP du serveur sur lequel est
hébergée ton applet, comme ça l'applet n'aura plus à faire de resolve elle
même (traduire un nom de domaine en une IP).

Pour connaitre l'IP du serveur : ping xxx.fr

Ca ne devrait rien changer je vais encore coincer mais sur le connect ...


Doit y avoir un truc autour des securitymanager


Normalement l'applet ne doit pas avoir de pb pour se connecter au
serveur qui l'héberge.
(A moins peut être que ta JVM soit mal configurée en local, je
suppose.)

Tu es sûr de la faire se connecter à la bonne IP ?

Bonne chance,
Olivier

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net



Avatar
Bertrand B



J'ai ce problème lorsque mon APPLET veux se conecter sur le serveu r
où elle a été téléchagée.

Pour un pov' simplet qui s'essaye à Java pour la première fois
pourriez vous me dire comment contourner cette difficulté ?




Essaie en mettant directement l'adresse IP du serveur sur lequel est
hébergée ton applet, comme ça l'applet n'aura plus à faire de resolve
elle même (traduire un nom de domaine en une IP).

Pour connaitre l'IP du serveur : ping xxx.fr

Ca ne devrait rien changer je vais encore coincer mais sur le connect ...


Doit y avoir un truc autour des securitymanager



Normalement l'applet ne doit pas avoir de pb pour se connecter au
serveur qui l'héberge.
(A moins peut être que ta JVM soit mal configurée en local, je supp ose.)

Tu es sûr de la faire se connecter à la bonne IP ?

Bonne chance,
Olivier



En fait en y regardant de plus près j'essaye effectivement de me
connecter à une autre adresse ...... c'est le blème effectivement et je
ne penses pas pouvoir m'en sortir. Ca devient trop compliqué pour un
débutant.




Avatar
O.L.



J'ai ce problème lorsque mon APPLET veux se conecter sur le serveur où
elle a été téléchagée.

Pour un pov' simplet qui s'essaye à Java pour la première fois pourriez
vous me dire comment contourner cette difficulté ?




Essaie en mettant directement l'adresse IP du serveur sur lequel est
hébergée ton applet, comme ça l'applet n'aura plus à faire de resolve
elle même (traduire un nom de domaine en une IP).

Pour connaitre l'IP du serveur : ping xxx.fr

Ca ne devrait rien changer je vais encore coincer mais sur le connect ...


Doit y avoir un truc autour des securitymanager



Normalement l'applet ne doit pas avoir de pb pour se connecter au serveur
qui l'héberge.
(A moins peut être que ta JVM soit mal configurée en local, je suppose.)

Tu es sûr de la faire se connecter à la bonne IP ?

Bonne chance,
Olivier



En fait en y regardant de plus près j'essaye effectivement de me connecter à
une autre adresse ...... c'est le blème effectivement et je ne penses pas
pouvoir m'en sortir. Ca devient trop compliqué pour un débutant.


Oui, une applet ne peut se connecter qu'à son serveur "père".

Ou alors il faudrait peut être voir à la signer/certifier, pour qu'elle
puisse demander des privilèges supplémentaires (= connecter à d'autres
adresses), mais la signature coûte de l'argent je crois (certificat SSL
?), et ça dépasse mes compétences ;)

Sinon, si tu aimes le bidouillage, il y aurait moyen de bricoler
quelque chose en utilisant un contrôle ActiveX (chercher SocketWrench
dans Google). Mais cette solution ne fonctionnerait que sous Windows,
et demanderait de la confiance de la part de l'utilisateur, puisqu'il
aurait à autoriser "à la main" (clic sur OK dans 1 boite de dialogue)
cette opération sensible ...

Bonne chance,
@+

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net





Avatar
Bertrand B





J'ai ce problème lorsque mon APPLET veux se conecter sur le
serveur où elle a été téléchagée.

Pour un pov' simplet qui s'essaye à Java pour la première fois
pourriez vous me dire comment contourner cette difficulté ?





Essaie en mettant directement l'adresse IP du serveur sur lequel
est hébergée ton applet, comme ça l'applet n'aura plus à fa ire de
resolve elle même (traduire un nom de domaine en une IP).

Pour connaitre l'IP du serveur : ping xxx.fr

Ca ne devrait rien changer je vais encore coincer mais sur le

connect ...

Doit y avoir un truc autour des securitymanager




Normalement l'applet ne doit pas avoir de pb pour se connecter au
serveur qui l'héberge.
(A moins peut être que ta JVM soit mal configurée en local, je su ppose.)

Tu es sûr de la faire se connecter à la bonne IP ?

Bonne chance,
Olivier



En fait en y regardant de plus près j'essaye effectivement de me
connecter à une autre adresse ...... c'est le blème effectivement et
je ne penses pas pouvoir m'en sortir. Ca devient trop compliqué pour
un débutant.



Oui, une applet ne peut se connecter qu'à son serveur "père".

Ou alors il faudrait peut être voir à la signer/certifier, pour qu' elle
puisse demander des privilèges supplémentaires (= connecter à d 'autres
adresses), mais la signature coûte de l'argent je crois (certificat S SL
?), et ça dépasse mes compétences ;)



L'aplet signée c'est fait (en fait ce n'est pas compliqué et ça ne coûte
rien si tu utilise une self-signed) maintenant le fait qu'elle reste
untrusted a peut être un impact.
Pour la JVM de IE ça semble suffir mais si java plugin est installé ç a
ne va plus et je n'ai pas trouvé de mécanisme pour demander des
privilèges supplémentaires (private joke : je n'ai pas l'adresse de
goldy) il faut d'après la doc mettre à jour le java.policy et ça ç a me
plait moyen (d'autant plus que je n'ai pas encore réussi à le faire) :[



Sinon, si tu aimes le bidouillage, il y aurait moyen de bricoler quelqu e
chose en utilisant un contrôle ActiveX (chercher SocketWrench dans
Google). Mais cette solution ne fonctionnerait que sous Windows, et
demanderait de la confiance de la part de l'utilisateur, puisqu'il
aurait à autoriser "à la main" (clic sur OK dans 1 boite de dialogu e)
cette opération sensible ...




Je tiens aboslument que mon "applet ou autre truc" n'impose pas une
solution M$ mon navigateur de référence est firefox donc pas d'Active X

Bonne chance,
@+



C'est vraiment le bordel le développement Web ...






Avatar
O.L.
Bertrand B a présenté l'énoncé suivant :
C'est vraiment le bordel le développement Web ...


:D

Quelle idée aussi de vouloir se connecter à un autre serveur que celui
qui héberge ton applet :-p ;-)

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net

Avatar
Bertrand B
Bertrand B a présenté l'énoncé suivant :

C'est vraiment le bordel le développement Web ...



:D

Quelle idée aussi de vouloir se connecter à un autre serveur que ce lui
qui héberge ton applet :-p ;-)

Et bien l'apprenti a réussi ...


Pöur ce qui est du serveur je n'y peux rien c'est un contrainte liée à
wanadoo ...

Donc il faut faire une aplet signée qui modifie le security manager

le doc trouvé sur codeproject :
Applets under the hood


This section discusses how Applets are expected to utilize their freedom
once the Applet's JAR can be signed.



First, an Applet must use its own SecurityManager in order to bypass
certain permission-checks otherwise performed by the default
SecurityManager. The following code displays a simple Applet that
already includes its own SecurityManager as an inner-class


import java.awt.*;

import java.security.*;



public class SignedApplet extends Applet {

final class MySecurityManager extends SecurityManager {

// Permission overriding methods..

public void checkPermission(Permission perm) {}

public void checkPermission(Permission perm, Object context) {}

}

// Rest of Applet goes here..

}

Sometimes, as I have found when testing the Applet version of KeyGuard,
simply having a SecurityManager present as an inner class is not enough.
I am not sure why, but apparently, even a signed Applet may not create
its own ClassLoaders even if it is signed and has a SecurityManager
present as an inner class. Therefore, I needed to create a
SecurityManager class that actually replaces the default
SecurityManager, as the following code shows.


import java.security.*;



public final class KgSecurityManager extends SecurityManager {

public static boolean init() {

try {

SecurityManager sm = System.getSecurityManager();

if (!(sm instanceof KgSecurityManager)) {

System.setSecurityManager(new KgSecurityManager());

}

return true;

} catch (AccessControlException ex) {

// Here's a little trick, if we get an AccessControlException here ,

// this means the user has refused to trust the Applet's Certifica te!

return false;

}

}

// Same permission overriding methods as before..

public void checkPermission(Permission perm) {}

public void checkPermission(Permission perm, Object context) {}

}

Now, my KeyGuard Applet can use the KgSecurityManager class like this:


public class KgApplet extends JApplet {

private static boolean appletAuthorized;




// ...Rest of Applet code goes here...




static {

// This code will run only once, when the KgApplet class is first
loaded in the Browser's JVM..

try {

// Try to initialize the KgSecurityManager class..

appletAuthorized = KgSecurityManager.init();

// Initialize the look & feel setting..


UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName() );

} catch (Exception e) {

e.printStackTrace();

}

}

}

The Applet can now check the appletAuthorized boolean-flag to know if it
is allowed to attempt any operations that will otherwise result in
another AccessControlException if the default SecurityManager is still
in place.


Avatar
O.L.
Bertrand B a exprimé avec précision :
Bertrand B a présenté l'énoncé suivant :

C'est vraiment le bordel le développement Web ...



:D

Quelle idée aussi de vouloir se connecter à un autre serveur que celui qui
héberge ton applet :-p ;-)

Et bien l'apprenti a réussi ...



Cool :)

Pöur ce qui est du serveur je n'y peux rien c'est un contrainte liée à
wanadoo ...

Donc il faut faire une aplet signée qui modifie le security manager


J'avoue que je ne comprend pas trop : je croyais qu'il fallait
obligatoirement acheter un certificat SSL pour pouvoir signer une
applet, paske sinon quel est l'intérêt si n'importe qui peut la signer
et utiliser des fonctionnalités avancées ? :-S

Cela dit, ça m'a l'air bien pratique de pouvoir la signer comme ça ;)

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net



Avatar
Bertrand B
Bertrand B a exprimé avec précision :


Bertrand B a présenté l'énoncé suivant :


C'est vraiment le bordel le développement Web ...




:D

Quelle idée aussi de vouloir se connecter à un autre serveur que
celui qui héberge ton applet :-p ;-)



Et bien l'apprenti a réussi ...



Cool :)

Pöur ce qui est du serveur je n'y peux rien c'est un contrainte lié e à
wanadoo ...

Donc il faut faire une aplet signée qui modifie le security manager



J'avoue que je ne comprend pas trop : je croyais qu'il fallait
obligatoirement acheter un certificat SSL pour pouvoir signer une
applet, paske sinon quel est l'intérêt si n'importe qui peut la sig ner
et utiliser des fonctionnalités avancées ? :-S

Cela dit, ça m'a l'air bien pratique de pouvoir la signer comme ça ;)



Pour simplifier si tu achètes un certificat signé par un autorité d e
certification reconnue par ton logiciel ou par toi ce certificat sera
"trusted" que l'on pourrait traduire par de confiance. Si tu signes toi
même le certificat est untrusted que l'on pourrait traduire don
l'identitré n'est pas garantie.
Après dans l'utilisation ça ne change pas vraiment.
Pour des besoins de tests (pour m'amuser et pour des pb de messagerie)
j'ai décidé d'être moi même autorité de certification pour ma f amille
... http://perso.wanadoo.fr/bertrand.belguise/CA/CA.shtml

Une remarque supplémentaire : pour les impôts le ministère des fina nces
n'a pas jugé bon d'acheter un certificat ils sont leur propre autorité
de certification.




1 2