2012-09-05 10 views
6
permission java.net.SocketPermission "192.168.1.1:31337", "connect, accept, resolve"; 

¿Qué permite el siguiente permiso? ¿Mi aplicación puede aceptar conexiones solo desde 192.168.1.1:31337 (tal vez un cliente externo) o aceptar conexiones en 192.168.1.1:31337 (mi aplicación se ejecuta en 192.168.1.1:31337, donde está la diferencia de 'escuchar '?).¿Cómo entender java Socket-Permissions?

Respuesta

3

Si su código es un applet o se ejecuta bajo un administrador de seguridad de Java, debe otorgarle explícitamente permisos para hacer cosas.

Para que un acceso a los recursos que se le permita a un applet (o una aplicación que se ejecuta con un controlador de seguridad), el correspondiente permiso debe concederse explícitamente al código de intentar el acceso.

De forma predeterminada, su código no tiene permiso de socket. Su permiso dice que su código tiene permiso para aceptar la conexión, para conectarse y para resolver solo el host con IP 192.168.1.1 en el puerto 31337.

Las acciones "aceptar" y "conectar" son obvias.

La acción "resolver" está implícita cuando alguna de las otras acciones es presente. La acción "resolver" se refiere a las búsquedas del servicio de host/nombre IP.

La acción "escuchar" solo tiene sentido cuando se usa con "localhost".

La diferencia entre escuchar y aceptar es que escuchar significa "estar preparado para la conexión y ver si hay una conexión en espera" y aceptar significa "ok, aceptarlo".

See the docs for permissions in java 7. y java.net.SocketPermission java docs

+0

Bueno, la documentación sun dice: Del mismo modo, si el permiso siguiente: p2 = new SocketPermission ("localhost: de 1024", "aceptar, conectar, escuchar"); se concede a algún código, permite que el código acepte conexiones, se conecte o escuche en cualquier puerto entre 1024 y 65535 en el host local. Entonces, "aceptar" permite conexiones con el host específico, no desde el host específico. – lazydaemon

+0

Por supuesto está "encendido", no "desde". El resto de la respuesta sugiere esto. Corregido Gracias. – dcernahoschi