JAR, bd SQLITE, APPLET, access denied AccesControlException: (\"java.util.PropertyPermission\" \"user.dir\" \"read\")

José Luis
10 de Mayo del 2012
Hola.

Para una aplicación que desarrollo en mi trabajo, necesito mandar una página web a un navegador. Ésta contiene un japplet. El requisito es que el usuario sólo sepa la ip del host que manda el applet, no ha de saber nada de la base de datos, la configuración que en ésta se guarda...

Tenía una versión anterior que probé en una intranet, similar al entorno que va destinado: en un equipo se solicitaba el applet, que mandaba el equipo servidor. El applet no estaba empaquetado en un jar ni en un jni, tiraba directamente de decenas de class y consultaba ficheros xml de configuración en el equipo servidor, es decir el applet buscaba éstos en el localhost del servidor. Con esto quiero decir que el applet no accedía al equipo del usuario o agente web.

Ahora, la versión que implemento tira de una bd donde se guarda la configuración, empaquetada aquélla dentro del jar que se ejecuta, Es una sqlite (la versión con postgres falla igual). Sé que no puede accederse igual a un recurso empaquetado en un jar que a un fichero, pero no sé la manera de acceder a un recurso que es una bd, porque ha de hacerse una conexión a ésta y no cargar un fichero.

En cualquier caso, falla al conectarse a la bd: intenta acceder para leer sin permisos al directorio user.dir. La bd no está en ese directorio, sino empaquetada en el jar. Entiendo que user.dir está bloqueado porque es el directorio del equipo cliente (en mis pruebas, cliente y servidor son el mismo). He intentado añadir
permission java.util.PropertyPermission "${user.home}", "read";
al java.policy pero otra aplicación me lo bloquea, y sigue pasando aún parando jre7. No es eso lo que debería hacer, pues es un peligro en la seguridad. Tampoco debería pasar, porque en la versión anterior, sin empaquetar, no accedía a los recursos del cliente.

Necesito consejo, gracias de antemano.