Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/03/2006, 06:49
Rascayu
 
Fecha de Ingreso: junio-2004
Mensajes: 43
Antigüedad: 19 años, 11 meses
Puntos: 0
Applet access denied en servidor Tomcat

Hola, tengo una aplicación web alojada en un servidor de pago con soporte para jsp. En una página tengo un applet en el que se carga una imagen, el usuario puede dibujar sobre ella y mediante un botón comunicarse con un servlet que recogerá esa imagen.

En mi servidor localhost funciona todo bien pero en el servidor de pago no se carga el applet y en la consola java veo:

java.security.AccessControlException: access denied (java.net.SocketPermission localhost:9057 connect,resolve)
at java.security.AccessControlContext.checkPermission (Unknown Source)
at java.security.AccessController.checkPermission(Unk nown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.<init>(Unknown Source)


He estado leyendo sobre el tema y he leido que en algunas situaciones la solución es cambiar la politica de permiso (java.policy) aunque creo estos casos es cuando el applet tiene que leer/usar recursos en la máquina cliente.

Creo que mi caso es diferente ya que yo hago todas mis referencias en el servidor. Un ejemplo:

imageBuffer = ImageIO.read(new URL("http://MyAdress/applets"+File.separator+"campo.jpg"));
...

ImageIcon icon = new ImageIcon(imageBuffer);
toServlet = new URL("http://MyAdress/servlet/utiles.ServletApplet");
URLConnection servletConnection= toServlet.openConnection();
...

Pienso que cambiar la política es la solución aunque no en cada máquina cliente sino en la configuración del servidor. Como es un servidor de pago, sólo tengo acceso al directorio tomcat y he visto que existe un fichero llamado "catalina.policy".

He probado varios intentos añadiendo varias líneas pero sin éxito:

grant codeBase "file:${catalina.home}/webapps/pyc/-" {
permission java.net.SocketPermission "localhost:9057", "connect";
};
------------------------
grant codeBase "file:${catalina.home}/webapps/pyc/-" {
permission java.net.SocketPermission "midireccionweb.com:9057", "connect";
};


¿Se debe cambiar la política en este fichero o es el java.policy?

¿Está bien definido la política de permisos?

¿Alguien ha pasado por situación parecida?

Cualquier ayuda será agradecida.