Свойство sun.net.inetaddr.ttl вызывает исключение AccessControlException - PullRequest
4 голосов
/ 07 марта 2011

Мы используем ReCaptchas в веб-приложении, размещенном на Tomcat.Недавно у нас было несколько проблем с подключением к серверам проверки ReCaptcha, и одна вещь, на которую мы обратили внимание, заключалась в том, чтобы установить тайм-аут для разрешения записи DNS, как это предлагается в ReCaptcha Wiki: http://wiki.recaptcha.net/index.php/Overview#Important:_DNS_Caching

После добавления солнца.Свойство net.inetaddr.ttl (для начала установите его равным 5 минутам) теперь мы всегда получаем AccessControlException при попытке проверить капчу.

java.security.AccessControlException: access denied (java.net.SocketPermission api-verify.recaptcha.net:80 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 sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
at sun.net.www.http.HttpClient.New(HttpClient.java:306)
at sun.net.www.http.HttpClient.New(HttpClient.java:323)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:860)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:801)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:726)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:904)
at net.tanesha.recaptcha.http.SimpleHttpLoader.httpPost(SimpleHttpLoader.java:66)
at net.tanesha.recaptcha.ReCaptchaImpl.checkAnswer(ReCaptchaImpl.java:61)

Вот выдержка из catalina.policy, которую мы"использую:

permission java.net.SocketPermission "*", "resolve";
permission java.net.SocketPermission "api-verify.recaptcha.net:80", "connect,resolve";

Теперь я не ожидаю, что запись DNS серверов ReCaptcha сильно изменится (или вообще не изменится), но перезагрузка сервера, если это произойдет, не является хорошейвещь тоже. Есть идеи, что вызывает такое поведение?

...