Pregunta

Estoy creando una conexión de socket con un applet sin firmar a un host diferente y estoy obteniendo java.security.accesscontrolexception: acceder denegado

Si firmo este applet con "autoperto" o "CA CERT", ¿el applet gana los permisos para crear una conexión de socket a un host diferente (no es el mismo host que se descargó) y hace un mensaje de seguridademergente si ha sido certificado por una ca?

gracias

¿Fue útil?

Solución

Si no firma el applet, el código que accede a los recursos locales no se ejecutará de ninguna manera.

Si firma el applet con un auto-cert, el endUser solo obtendría un mensaje de advertencia que solicite permiso.Sin embargo, todavía tiene que envolver la llamada dentro de una AccessController#doPrivileged() .

public void init() {
    AccessController.doPrivileged(new PrivilegedAction<Object> {
        @Override public Object run() {
            // Put your original init() here.
            return null;
        }
    });
}

Si firma el applet con un $$$ - CERT, el endUser no obtendrá un mensaje de advertencia.

Otros consejos

Debe ver un cuadro de diálogo apropiado para el certificado, a menos que se acepte discapacitados o ese certificado.Solo si el usuario está de acuerdo es el código dado privilegios completos.

Un mejor enfoque sería atenerse a la conexión con solo el host de origen mismo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top