Ho un'applicazione GoogleAppEngine che è necessario per connettersi a un altro server localhost, ma quando sto cercando di fare questo dal codice server, ottengo:Esiste un modo corretto per manipolare le autorizzazioni di sicurezza di GoogleAppEngine?
java.security.AccessControlException: access denied (java.net.SocketPermission localhost resolve)
So che posso specificare il mio ulteriore concessione di sicurezza utilizzando argomenti Java virtual machine (li ho specificato in Web Application configurazione di esecuzione):
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";
};
ma ha la precedenza il responsabile della sicurezza interna GoogleAppEngine che si trova nella classe privata a com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager
, così le proprietà, richieste per AppEngine sé sono disabilitati in quel modo.
Esiste un modo per fare in modo che la classe di gestione della sicurezza interna di GoogleAppEngine utilizzi il mio file di criteri anziché sostituirlo manualmente con un file stub (che consente qualcosa) in un barattolo?
Ho trovato una soluzione di classe fittizia all'indirizzo http://dmitrygusev.blogspot.com/2009/08/turn-java-security-manager-off-in.html, ma spero ancora di trovare un altro modo per ignorare solo uno permesso –
Come prevedete di eseguire il server locale su AppEngine? Se hai intenzione di eseguire il server da qualche altra parte, si verificheranno altri problemi? (firewall, restrizioni Google) – phsiao
sì, ma localhost è solo un test uno/sostituto, ho voluto essere in grado di connettersi con un altro server aperto (jabber, ad esempio), ma sì, molto probabilmente sarà limitato a GAE (Speravo, ho la possibilità concessa di ignorare queste impostazioni se ho veramente capito cosa sto facendo, ma ora vedo che va bene su localhost ma non su GAE) ... –