0

私は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 サーバー自体ではなく、アプリケーションのみをブロックしたいと考えています。これどうやってするの?

4

0 に答える 0