Post a servlet utilizando paquete HTTPClient desde un applet

vikcen
15 de Marzo del 2004
Hola,

Intento desde un applet lo siguiente:

1)

java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
System.setProperty("java.protocol.handler.pkgs","com.sun.net.ssl.internal.www.protocol");

System.setProperty("javax.net.ssl.trustStore",System.getProperty("java.home") + "\lib\security\mistore");
System.setProperty("javax.net.ssl.trustStorePassword", "Mistore");

System.setProperty("https.proxyHost","159.199.77.235");
System.setProperty("https.proxyPort","8080");

System.setProperty("http.proxyHost","159.199.77.235");
System.setProperty("http.proxyPort","8080");


Voy dando los permisos correspondientes segun las excepciones en el java.policy:

2)

permission java.security.SecurityPermission "insertProvider.SunJSSE";
permission java.util.PropertyPermission "java.protocol.handler.pkgs", "write";
permission java.util.PropertyPermission "java.home", "read";
permission java.util.PropertyPermission "javax.net.ssl.trustStore", "write";
permission java.util.PropertyPermission "javax.net.ssl.trustStorePassword", "write";
permission java.util.PropertyPermission "https.proxyHost", "write";
permission java.util.PropertyPermission "https.proxyPort", "write";
permission java.util.PropertyPermission "http.proxyHost", "write";
permission java.util.PropertyPermission "http.proxyPort", "write";


permission java.net.SocketPermission "xxxxxxxxx.yyyyyyyyyy-zzzz.com", "listen";
permission java.net.SocketPermission "xxxxxxxxx.yyyyyyyyyy-zzzz.com", "connect";
permission java.net.SocketPermission "xxxxxxxxx.yyyyyyyyyy-zzzz.com", "accept";
permission java.net.SocketPermission "xxxxxxxxx.yyyyyyyyyy-zzzz.com", "resolve";


Hago un post al siguiente host xxxxxxxxx.yyyyyyyyyy-zzzz.com utilizando el paquete httpclient para ello:

3)

String sUser=this.sUser;
String sPassw=this.sPassw;
String sRealm=this.sRealm;
String miUrl=this.miUrl;
String sRespuesta;

habilitarProxySsl(); // en este método es donde escribo las lineas antes comentadas en el punto 1


URI oURI=new URI(miUrl);

HTTPConnection oCon = new HTTPConnection(oURI);

oCon.addBasicAuthorization(sRealm, sUser, sPassw);

oCon.setAllowUserInteraction(false);

HTTPResponse oResp = oCon.Post(oURI.getPath(), DATOS);

// DATOS es la variable de tipo NVPair que he rellenado con datos anteriormente

return oResp.getText();


Donde la variable miUrl es "https://xxxxxxxxx.yyyyyyyyyy-zzzz.com/aaaaaaaa/bbbbbbbb/cccccccccccc" y asi 'atacar' al servlet

Este código funciona perfectamente sin ejecutarlo desde un applet, y el problema que tengo actualmente es la siguiente exception:

java.net.UnknownHostException: xxxxxxxxx.yyyyyyyyyy-zzzz.com



Comentar tambien que cuando yo no estaba dando los permisos de:

permission java.net.SocketPermission "xxxxxxxxx.yyyyyyyyyy-zzzz.com", "listen";
permission java.net.SocketPermission "xxxxxxxxx.yyyyyyyyyy-zzzz.com", "connect";
permission java.net.SocketPermission "xxxxxxxxx.yyyyyyyyyy-zzzz.com", "accept";
permission java.net.SocketPermission "xxxxxxxxx.yyyyyyyyyy-zzzz.com", "resolve";

Me daba la siguiente exception: java.security.AccessControlException: access denied (java.net.SocketPermission xxxxxxxxx.yyyyyyyyyy-zzzz.com resolve)

Entonces yo doy los permisos que he comentado y me da la exception con el cual tengo el problema actualmente en el punto 3.

Si alguien tiene alguna idea de una posible solución, por favor comentarmelo. Gracias de antemano.

Un saludo.




vikcen
15 de Marzo del 2004
up