Файл Tomcat catalina.policy предоставляет политики безопасности для JVM в JDK 21, где Security Manager устарел.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Файл Tomcat catalina.policy предоставляет политики безопасности для JVM в JDK 21, где Security Manager устарел.

Сообщение Anonymous »

У меня есть следующий код JAVA 21, работающий на сервере Tomcat 9, где метод вызывается с использованием CompletableFuture:

Код: Выделить всё

CompletableFuture.supplyAsync(this::makeHttpCall);
Метод makeHttpCall выполняет вызов HTTP API:

Код: Выделить всё

public static String makeHttpCall () {
OkHttpClient client = new OkHttpClient.Builder().build();
Request request = new Request.Builder()
.url("https://example.com/api/v1")
.build();

try (Response response = client.newCall(request).execute()) {
String body = "";
if (response.body() != null) {
body = response.body().string();
}
return body;
} catch (Exception e) {
log.error(e.getMessage());
return null;
}
}
При выполнении вышеуказанной задачи возникает исключение разрешения:

Код: Выделить всё

java.security.AccessControlException: access denied ("java.net.SocketPermission" "example.com" "resolve")
Аналогичное исключение выдается при выполнении задачи, которая считывает данные ОС изнутри:

Код: Выделить всё

java.security.AccessControlException: access denied ("java.util.PropertyPermission" "os.arch" "read")
Я понимаю, что политика безопасности по умолчанию для общего пула ForkJoinPool очень консервативна и запускает задачи без каких-либо привилегий.
Менеджер безопасности имеет устарел с версии JDK 17 и помечен для удаления. Tomcat по-прежнему добавляет политику безопасности через файл catalina.policy, который считывается JVM при запуске сервера Tomcat.
Какими должны быть идеальные политики в файле catalina.policy, чтобы избежать этих разрешений Исключения?

Подробнее здесь: https://stackoverflow.com/questions/789 ... 1-where-se
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»