Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Error de permisos al acceder a recursos en un applet

Estas en el tema de Error de permisos al acceder a recursos en un applet en el foro de Java en Foros del Web. Buenas, estoy creando una aplicación con java y quiero que se vea en un navegador por lo que estoy utilizando el componente applet. Cuando ejecuto ...
  #1 (permalink)  
Antiguo 12/03/2013, 01:47
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años
Puntos: 0
Error de permisos al acceder a recursos en un applet

Buenas, estoy creando una aplicación con java y quiero que se vea en un navegador por lo que estoy utilizando el componente applet.

Cuando ejecuto el programa en eclipse no tengo ningún problema pero al ejecutar en local me da problemas de permisos al intentar acceder a los recursos y a la base de datos, realicé lo de firmar la aplicación y también añadí un código que para realizar las acciones de mi aplicación con privilegios pero nada.

También subí mi aplicación a un servidor por si ese era el problema y tampoco a funcionado, sigue dando problemas al intentar acceder a los recursos y a la base de datos.

Espero que me podais echar una mano.

Un saludo.
  #2 (permalink)  
Antiguo 12/03/2013, 02:08
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Error de permisos al acceder a recursos en un applet

Hola:

Pues así, sin ver nada de nada, va a ser dificil ayudarte.

Por favor, explica cómo ejecutas en local ¿haces la página, la metes en un servidor web instalado en tu pc y la visitas con el navegador? ¿O abres el fichero html correspondiente directamente con el navegador sin ningún tipo de servidor web instalado en tu pc?

También estaría bien ver qué es eso de "problemas de permisos al intentar acceder a los recursos", imagino que salta una excepción o algo. ¿Cómo intentas acceder al recurso y qué excepción salta exactamente en qué línea de código?

En cuanto a la firma, ¿te sale un popup en el navegador cuando abres el applet que el applet está firmado y te pide confirmación para confiar en dicho applet?

¿Y cómo es ese código que dices " para realizar las acciones de mi aplicación con privilegios". Que yo sepa no existe ese tipo de código, ya que si la aplicación misma pudiera darse privilegios sin intervención del usuario, menuda seguridad tendrían los navegadores.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 12/03/2013, 02:24
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años
Puntos: 0
Respuesta: Error de permisos al acceder a recursos en un applet

Buenas, te respondo:

Cita:
Por favor, explica cómo ejecutas en local ¿haces la página, la metes en un servidor web instalado en tu pc y la visitas con el navegador? ¿O abres el fichero html correspondiente directamente con el navegador sin ningún tipo de servidor web instalado en tu pc?
Tengo generado el jar, las carpetas con los recursos y una página html con el siguiente código:

Código PHP:
<html>
<
head>

</
head>
<
body>
    <
center><applet
        code
="app.DialogTest"
        
width="1024"
        
height="768"
        
archive="TestApplet.jar, lib/sqlite-jdbc-3.7.2.jar">
        
Necesitas tener Java instalado y un navegador compatible para poder ejecutar este programa.
    </
applet></center>
</
body>
</
html
Todo esto está alojado en un servidor web, no lo tengo en local.

Cita:
También estaría bien ver qué es eso de "problemas de permisos al intentar acceder a los recursos", imagino que salta una excepción o algo. ¿Cómo intentas acceder al recurso y qué excepción salta exactamente en qué línea de código?
Me salta está excepción al crear la conexión a la base de datos:

java.security.AccessControlException: access denied ("java.util.PropertyPermission" "user.dir" "read")

Cita:
En cuanto a la firma, ¿te sale un popup en el navegador cuando abres el applet que el applet está firmado y te pide confirmación para confiar en dicho applet?
Me aparece la ventana de si deseo ejecutar la aplicación y cuando voy a acceder a la base de datos me aparece otro mensaje que me recomienda que no ejecute el código, acepto los riesgos y se lanza la excepción.

Cita:
¿Y cómo es ese código que dices " para realizar las acciones de mi aplicación con privilegios". Que yo sepa no existe ese tipo de código, ya que si la aplicación misma pudiera darse privilegios sin intervención del usuario, menuda seguridad tendrían los navegadores.
Esto lo he explicado muy mal, en esta página está explicado lo que digo

http://www.coderanch.com/how-to/java...ocalFileSystem

Gracias por contestar!

Saludos.
  #4 (permalink)  
Antiguo 12/03/2013, 04:10
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Error de permisos al acceder a recursos en un applet

Hola:

Hay un java.policy por defecto en donde la instalación de java con una serie de cosas. ¿Lo has modificado con lo que te comentan?. Aquí tienes cómo modificarlo https://forums.oracle.com/forums/thr...readID=1305420

Ojo, ese fichero va en la instalación de java del cliente, no en el servidor. En mi caso, está en este path C:\Program Files\Java\jre6\lib\security\java.policy

En cualquier caso, da la impresión de que estás guardando la base de datos en el pc del cliente, en su directorio HOME, es decir, cada usuario y navegador tendrá su propia base de datos, que no está en el servidor. ¿es eso lo que quieres?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 12/03/2013, 05:01
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años
Puntos: 0
Respuesta: Error de permisos al acceder a recursos en un applet

Buenas,

No me he explicado bien, la aplicación se va a alojar en un servidor y el cliente accede desde su navegador, todo está alojado en mi servidor.

Ya he conseguido acceder a las imagenes (lo he visto en tu blog ), estoy investigando lo de la base de datos y creo que lo puedo hacer con un servlet que se comunique con el applet.

Gracias!

Un saludo.
  #6 (permalink)  
Antiguo 12/03/2013, 06:51
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Error de permisos al acceder a recursos en un applet

Hola:

sqlite (creo que es la que estás usando), es una base de datos "de mentira", es decir, no es un servidor de base de datos. Realmente cuando usas sqlite se accede directamente a un fichero que, tal cual debes tener el applet, lo busca en el directorio del usuario, en su HOME, dando así error.

No vas a poder conectar con sqlite en el servidor puesto que como te comento, sqlite NO es un servidor de base de datos, tendrías que acceder directamente al fichero de sqlite almacenado en el servidor, pero no creo que la cadena de conexión de sqlite te permita poner el dominio o IP del servidor, sólo te deja poner un path. Si consigues hacer público el fichero en el servidor y acceder a él, posiblemente tampoco podrías escribir, sería de sólo lectura (los servidores no permiten que cualquier cliente modifique sus ficheros alegremente, sólo dejan leerlos/descargarlos).

Así que la solución es usar una base de datos en serio en el servidor (MySQL o la que tengas) o bien hacer como dices un servlet. El applet hará peticiones al servlet usando URLs que el servlet entienda, el servlet hará lo que tenga que hacer en sqlite y devolverá los resultados en un formato que el applet entienda (xml, json, etc) como contenido de la URL que el applet a consultado. Tendrías que quitar todo el código JDBC del applet y reemplazarlo por abrir y leer URLs de tu Servlet.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 14/03/2013, 03:29
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años
Puntos: 0
Respuesta: Error de permisos al acceder a recursos en un applet

Buenas, te haré caso y utilizaré una base de datos mysql y que como cuentas un poco lio seguir con la sqlite.

Muchas gracias!

Un saludo.

Etiquetas: applet
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:46.