Regístrese para obtener boletines de noticias o para mi los canales RSS para recibir automáticamente las actualizaciones de blog!

La invocación de un método protegido desde el exterior o privados de una clase java: seguro que es imposible?



La respuesta correcta es "depende de la presencia o ausencia de un gestor de seguridad."

De hecho, a través de la reflexión es realmente posible para ir a la fuerza las limitaciones del lenguaje Java sin excesiva dificultad, ammenochè precisamente no se trata de un gestor de seguridad, el único actor capaz realmente de administrar y, finalmente, detener este tipo de fuerzas.

Pero ahora llegamos al ejemplo que vale más que muchas disquisizioni. Dada la clase siguiente:

  net.nothing2hide.test paquete; ClassWithMethodsToHack clase pública (privada void sayHello (String nombre) (System.out.println ( "Hola" + nombre + "! Usted está llamando a un método privado ");)) 

queremos demostrar con qué facilidad invocabile fuera del método privado "sayHello", como ya he anticipado en gran medida a hacer uso de la reflexión:

  net.nothing2hide.test paquete; público de clase PrivateMethodInvocationTest (/ ** * Este ejemplo demuestra cómo la clase * invocar un método protegido por otra clase * * @ param args * / public static void main (String [] args) (String myName = "David"; Método m; intentar (/ / Let'access el método privado / / de reflexión.  Usted podría hacer lo mismo / / con un método protegido ClassWithMethodsToHack.class.getDeclaredMethod m = ( "sayHello", una nueva clase [] () String.class); si (m! = Null) (/ / Vamos a la fuerza el lenguaje Java de acceso / / Controles se refleja en el método.  Notas / / que si un gestor de seguridad se define / / esta solución no puede ser permitido / / y una SecurityException podría plantearse m.setAccessible (true), / / Y por último vamos a invocar la protección método m.invoke (nuevo ClassWithMethodsToHack () , New Object [] (myName ));)) de capturas (Exception e) (e.printStackTrace ();))) 
Suscríbete a mi RSS feeds ¿Te ha gustado este artículo? Suscríbase ahora feeds RSS!



Aún no comment '

Feed RSS de los comentarios de este post. TrackBack URI

Deja tu opinión

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Válido XHTML y CSS. ^ Arriba


Cerrar
Enviar e-mail