Tomcat中的安全管理器

时间:2011-07-12 07:52:18

标签: tomcat securitymanager

我有一个Tomcat Java应用程序,我希望它是安全的,所以我创建了一个自定义的SecurityManager,我阻止了我认为很危险的所有操作(我可能错过了一些,但这是另一个问题)。它运作良好一段时间,但随后我的应用程序停止工作,并在catalina.out我看到以下消息:

12/07/2011 10:31:42 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler process
SEVERE: Error reading request, ignored
java.lang.SecurityException
    at gwtchat.server.ScriptBotSecurityManager.checkWrite(ScriptBotSecurityManager.java:167)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:234)
    at java.net.SocketOutputStream.<init>(SocketOutputStream.java:58)
    at java.net.AbstractPlainSocketImpl.getOutputStream(AbstractPlainSocketImpl.java:411)
    at java.net.Socket$3.run(Socket.java:857)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.Socket.getOutputStream(Socket.java:854)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:163)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:288)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:636)

在第一行中,gwtchat.server.ScriptBotSecurityManager是我自定义的SecurityManager,函数是checkWrite(FileDescriptor fd),我阻止了它,因为不希望我的应用程序写入文件。

当然我想只阻止我的应用程序,而不是Tomcat服务器本身。我怎么能这样做?

0 个答案:

没有答案