Applet Java firmado
-
18-09-2020 - |
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
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.