Tengo una aplicación GoogleAppEngine que se requiere para conectarse a otro servidor localhost, pero cuando estoy tratando de hacer esto desde el código del servidor, consigo:¿Existe una forma correcta de manipular los permisos de seguridad de GoogleAppEngine?
java.security.AccessControlException: access denied (java.net.SocketPermission localhost resolve)
Sé que puedo especificar mi subvención adicional de seguridad mediante el uso de argumentos de Java virtual Machine (especifico en aplicación web configuración de ejecución):
java -Djava.security.manager -Djava.security.policy=WEB-INF/java.policy
con java.policy
co ntents:
grant {
permission java.net.SocketPermission "localhost:8081", "connect, resolve";
};
pero se anula el gerente de seguridad interna GoogleAppEngine que se encuentra en la clase privada en com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager
, por lo que las propiedades requeridas para AppEngine sí están desactivadas de esa manera.
¿Hay alguna manera de hacer que la clase del administrador de seguridad interna de GoogleAppEngine use mi archivo de políticas en lugar de reemplazarlo manualmente con un archivo auxiliar (que permite cualquier cosa) en un contenedor?
Encontré una solución de clase ficticia en http://dmitrygusev.blogspot.com/2009/08/turn-java-security-manager-off-in.html, pero todavía espero encontrar otra manera de anular solo una permiso –
¿Cómo espera ejecutar el servidor local en App Engine? Si va a ejecutar el servidor en otro lugar, ¿se encontrará con otros problemas? (cortafuegos, restricciones de Google) – phsiao
sí, pero localhost es solo uno de prueba/sustituto, he querido poder conectarme con otro servidor abierto (jabber, por ejemplo), pero sí, muy posiblemente esté restringido en GAE (Esperé, tengo una posibilidad permitida para anular estas configuraciones si realmente entiendo lo que estoy haciendo, pero ahora veo que está bien en localhost pero no está bien en GAE) ... –