Вы уверены, что правильно интерпретируете значение getPermission()
? Javadoc на getPermission()
[1] утверждает:
Возвращает:
объект разрешения, представляющий разрешение, необходимое для установления соединения, представленного этим URLConnection.
Означает: возвращается ли объект Permission
или нет, просто сообщает вам, может ли вашей JVM потребоваться какое-либо действие, предоставленное в политике безопасности JVM, для подключения к указанному URL. Вы на самом деле не проверяете разрешение самостоятельно в своем примере кода выше.
Обычно вам не нужно этого делать, так как большинство исполняющих классов в любом случае делают это самостоятельно. SecurityManager
, участвующий в этом, выдаст соответствующее исключение, если фактическое разрешение не предоставлено.
Я предлагаю просто открыть соединение и начать работу, не проверяя getPermission()
, поскольку вы все равно это узнаете, когда не будет установлено разрешение при первом вызове, когда выбрасывается SecurityException
.
[1] http://java.sun.com/j2se/1.5.0/docs/api/java/net/URLConnection.html#getPermission()