【发布时间】:2009-10-16 17:15:39
【问题描述】:
我编写了一个使用库 ganymed-ssh2-build210.jar 的 Servlet(它使用这些类:import ch.ethz.ssh2.Connection; import ch.ethz.ssh2.Session; import ch.ethz.ssh2 .StreamGobbler;) 通过 SSH 连接运行命令(出于测试目的,它连接到我的本地计算机)。当我将我的类作为独立应用程序运行时,它可以工作,但是当我将它部署到 Tomcat 中并且 Tomcat 将它作为 Servlet 启动时,我得到了这个异常(我已经切断了结尾,因为我认为它可能无关紧要,但如果有帮助,我可以将其全部包含在内):
java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:22 connect,resolve)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkConnect(SecurityManager.java:1034)
at java.net.Socket.connect(Socket.java:513)
at ch.ethz.ssh2.transport.TransportManager.establishConnection(TransportManager.java:340)
at ch.ethz.ssh2.transport.TransportManager.initialize(TransportManager.java:448)
at ch.ethz.ssh2.Connection.connect(Connection.java:643)
...
这可能与安全策略有关吗?如果是这样,你知道我是如何改变它们的吗?
我正在使用 Java 1.6 和 Tomcat6。
【问题讨论】: