Менеджер безопасности в Tomcat - PullRequest
0 голосов
/ 12 июля 2011

У меня есть приложение 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.Как я могу это сделать?

...