Класс SecurityManager

Прямые известные подклассы:
RMISecurityManager
public class SecurityManager
extends Object

Менеджер безопасности — это класс, который позволяет приложениям реализовывать политику безопасности. Он позволяет приложению определить, перед выполнением потенциально небезопасной или чувствительной операции, что это за операция и выполняется ли она в контексте безопасности, который разрешает выполнение данной операции. Приложение может разрешить или запретить выполнение операции.

Класс SecurityManager содержит множество методов с именами, начинающимися со слова check. Эти методы вызываются различными методами в библиотеках Java перед выполнением этими методами определенных потенциально чувствительных операций. Вызов такого check метода обычно выглядит так:

SecurityManager security = System.getSecurityManager();
if (security != null) {
    security.checkXXX(argument,  . . . );
}

Таким образом, менеджер безопасности получает возможность предотвратить завершение операции, выбросив исключение. Процедура менеджера безопасности просто возвращает значение, если операция разрешена, но выбросит SecurityException исключение, если операция запрещена.

Текущий менеджер безопасности устанавливается методом setSecurityManager в классе System. Текущий менеджер безопасности получает методом getSecurityManager.

Специальный метод checkPermission(java.security.Permission) определяет, должно ли быть предоставлено или отклонено запрос на доступ, указанный указанным разрешением. Стандартная реализация вызывает

AccessController.checkPermission(perm);

Если запрашиваемый доступ разрешён, checkPermission возвращает значение без каких-либо действий. Если доступ запрещён, вызывается SecurityException исключение.

Стандартная реализация каждого из других check методов в SecurityManager заключается в вызове метода SecurityManager checkPermission, чтобы определить, имеет ли вызывающий поток разрешение на выполнение запрашиваемой операции.

Обратите внимание, что метод checkPermission с одним аргументом разрешения всегда выполняет проверки безопасности в контексте текущего потока выполнения. Иногда проверка безопасности, которая должна выполняться в заданном контексте, фактически должна выполняться в другом контексте (например, в рабочем потоке). Для этой ситуации предоставляются методы getSecurityContext и checkPermission, которые включают аргумент контекста. Метод getSecurityContext возвращает «снимок» текущего контекста вызова. (Стандартная реализация возвращает объект AccessControlContext.) Пример вызова:

Object context = null;
   SecurityManager sm = System.getSecurityManager();
   if (sm != null) context = sm.getSecurityContext();

Метод checkPermission , который принимает объект контекста в дополнение к разрешению, принимает решения об доступе на основе этого контекста, а не на основе текущего потока выполнения. Таким образом, код в другом контексте может вызвать этот метод, передав разрешение и ранее сохранённый объект контекста. Пример вызова, используя менеджер безопасности sm, полученный, как в предыдущем примере, выглядит следующим образом:

if (sm != null) sm.checkPermission(permission, context);

Разрешения относятся к таким категориям: Файлы, Сокеты, Сеть, Безопасность, Выполнение, Свойства, AWT, Рефлексия и Сериализация. Классы, управляющие этими различными категориями разрешений, — это java.io.FilePermission, java.net.SocketPermission, java.net.NetPermission, java.security.SecurityPermission, java.lang.RuntimePermission, java.util.PropertyPermission, java.awt.AWTPermission, java.lang.reflect.ReflectPermission, и java.io.SerializablePermission.

Все, кроме первых двух (FilePermission и SocketPermission), являются подклассами java.security.BasicPermission, который сам по себе является абстрактным подклассом верхнего уровня класса для разрешений, которым является java.security.Permission. BasicPermission определяет функциональность, необходимую для всех разрешений, содержащих имя, которое соответствует соглашению о наименовании иерархических свойств (например, "exitVM", "setFactory", "queuePrintJob" и т. д.). Знак звёздочки может появляться в конце имени, после ".", или сам по себе, чтобы обозначить соответствие шаблону. Например: "a.*" или "*" — допустимые значения, "*a" или "a*b" — недопустимые.

FilePermission и SocketPermission являются подклассами верхнего уровня класса для разрешений (java.security.Permission). Такие классы, как эти, имеющие более сложный синтаксис имени, чем тот, который используется BasicPermission, являются прямыми подклассами Permission, а не BasicPermission. Например, для объекта java.io.FilePermission, имя разрешения — это имя пути файла (или каталога).

Некоторые классы разрешений имеют список «действий», который указывает действия, разрешенные для объекта. Например, для объекта java.io.FilePermission, список действий (такой как «чтение, запись») указывает, какие действия разрешены для указанного файла (или для файлов в указанном каталоге).

Другие классы разрешений предназначены для «именованных» разрешений — разрешений, содержащих имя, но без списка действий; у вас есть это разрешение или нет.

Примечание: также существует java.security.AllPermission разрешение, которое подразумевает все разрешения. Оно существует, чтобы упростить работу системным администраторам, которым может потребоваться выполнить несколько задач, требующих всех (или множества) разрешений.

См. Разрешения в Java Development Kit (JDK) для информации по разрешениям. В этом документе приведена таблица, в которой перечислены различные методы SecurityManager check и разрешение(я), требуемые стандартной реализацией каждого такого метода. Также содержится таблица методов, требующих разрешений, и для каждого такого метода указано требуемое разрешение.

С:
1.0
См. также:
ClassLoader, SecurityException, getSecurityManager, setSecurityManager, AccessController, AccessControlContext, AccessControlException, Permission, BasicPermission, FilePermission, SocketPermission, PropertyPermission, RuntimePermission, AWTPermission, Policy, SecurityPermission, ProtectionDomain

Конструкторы

Конструктор Описание
SecurityManager()

Создаёт новый SecurityManager.

Методы

Модификатор и тип Метод Описание
void checkAccept​(String host, int port)

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на прием сокет-соединения от указанного хоста и порта.

void checkAccess​(Thread t)

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на изменение аргумента потока.

void checkAccess​(ThreadGroup g)

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на изменение аргумента группы потоков.

void checkConnect​(String host, int port)

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на открытие сокет-соединения с указанным хостом и портом.

void checkConnect​(String host, int port, Object context)

Выбрасывает SecurityException, если указанный контекст безопасности не имеет разрешения на открытие сокет-соединения с указанным хостом и портом.

void checkCreateClassLoader()

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на создание нового загрузчика классов.

void checkDelete​(String file)

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на удаление указанного файла.

void checkExec​(String cmd)

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на создание дочернего процесса.

void checkExit​(int status)

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на остановку виртуальной машины Java с указанным кодом состояния.

void checkLink​(String lib)

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на динамическую подгрузку библиотечного кода, указанного строковым аргументом file.

void checkListen​(int port)

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на ожидание запроса подключения на указанном локальном номере порта.

void checkMulticast​(InetAddress maddr)

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на использование IP-мультиадресации (соединение/выход/отправка/получение).

void checkMulticast​(InetAddress maddr, byte ttl)

Устаревшее.

Используйте #checkPermission(java.security.Permission) вместо этого.

void checkPackageAccess​(String pkg)

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на доступ к указанному пакету.

void checkPackageDefinition​(String pkg)

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на определение классов в указанном пакете.

void checkPermission​(Permission perm)

Выбрасывает SecurityException, если запрашиваемый доступ, указанный заданным разрешением, не разрешен на основании действующей политики безопасности.

void checkPermission​(Permission perm, Object context)

Выбрасывает SecurityException, если указанный контекст безопасности получил отказ в доступе к ресурсу, указанному в заданном разрешении.

void checkPrintJobAccess()

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на инициирование запроса на печать.

void checkPropertiesAccess()

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на доступ к или изменение системных свойств.

void checkPropertyAccess​(String key)

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на доступ к системному свойству с указанным key именем.

void checkRead​(FileDescriptor fd)

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на чтение из указанного дескриптора файла.

void checkRead​(String file)

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на чтение файла, указанного строковым аргументом.

void checkRead​(String file, Object context)

Выбрасывает SecurityException, если указанный контекст безопасности не имеет разрешения на чтение файла, указанного строковым аргументом.

void checkSecurityAccess​(String target)

Определяет, должно ли разрешение с указанным именем целевого разрешения быть предоставлено или отклонено.

void checkSetFactory()

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на установку фабрики сокетов, используемой ServerSocket или Socket, или фабрики обработчиков потоков, используемой URL.

void checkWrite​(FileDescriptor fd)

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на запись в указанный дескриптор файла.

void checkWrite​(String file)

Выбрасывает SecurityException, если вызывающая нить не имеет разрешения на запись в файл, указанный строковым аргументом.

protected Class<?>[] getClassContext()

Возвращает текущий стек выполнения в виде массива классов.

Object getSecurityContext()

Создает объект, инкапсулирующий текущую среду выполнения.

ThreadGroup getThreadGroup()

Возвращает группу потоков, в которую следует инициировать создание любого нового потока во время вызова этого метода.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Конструкторы

SecurityManager

public SecurityManager()

Создает новый SecurityManager.

Если менеджер безопасности уже установлен, этот метод сначала вызывает метод checkPermission менеджера безопасности с разрешением RuntimePermission("createSecurityManager"), чтобы убедиться, что вызывающая нить имеет разрешение на создание нового менеджера безопасности. Это может привести к выбрасыванию SecurityException.

Выбрасывает:
SecurityException - если менеджер безопасности уже существует, и его метод checkPermission не разрешает создание нового менеджера безопасности.
См. также:
System.getSecurityManager(), checkPermission, RuntimePermission

Методы

getClassContext

protected Class<?>[] getClassContext()

Возвращает текущий стек выполнения в виде массива классов.

Длина массива равна количеству методов в стеке выполнения. Элемент с индексом 0 — это класс текущего выполняющегося метода, элемент с индексом 1 — это класс вызывающего метода и так далее.

Возвращает:
стек выполнения.

getSecurityContext

public Object getSecurityContext()

Создает объект, инкапсулирующий текущую среду выполнения. Результат этого метода используется, например, методом checkConnect с тремя аргументами и методом checkRead с двумя аргументами. Эти методы необходимы, поскольку доверенный метод может быть вызван для чтения файла или открытия сокета от имени другого метода. Доверенный метод должен определить, разрешено ли другому (возможно, недоверенному) методу выполнить операцию самостоятельно.

Реализация этого метода по умолчанию возвращает объект AccessControlContext.

Возвращает:
зависимый от реализации объект, инкапсулирующий достаточную информацию о текущей среде выполнения для выполнения некоторых проверок безопасности позже.
См. также:
checkConnect, checkRead, AccessControlContext

checkPermission

public void checkPermission(Permission perm)

Выбрасывает SecurityException, если запрашиваемый доступ, указанный заданным разрешением, не разрешен на основе текущей политики безопасности.

Этот метод вызывает AccessController.checkPermission с заданным разрешением.

Параметры:
perm - запрашиваемое разрешение.
Вызывает исключение:
SecurityException - если доступ не разрешен на основе текущей политики безопасности.
NullPointerException - если аргумент permission является null.
С версии:
1.2

checkPermission

public void checkPermission(Permission perm,
                            Object context)

Выбрасывает SecurityException, если указанному контексту безопасности отказано в доступе к ресурсу, указанному заданным разрешением. Контекст должен быть контекстом безопасности, возвращенным предыдущим вызовом getSecurityContext, а решение о контроле доступа основано на настроенной политике безопасности для этого контекста безопасности.

Если context является экземпляром AccessControlContext, то метод AccessControlContext.checkPermission вызывается с указанным разрешением.

Если context не является экземпляром AccessControlContext, то выбрасывается SecurityException.

Параметры:
perm - указанное разрешение
context - контекст безопасности, зависящий от системы.
Вызывает исключение:
SecurityException - если указанный контекст безопасности не является экземпляром AccessControlContext (например, является null), или ему отказано в доступе к ресурсу, указанному заданным разрешением.
NullPointerException - если аргумент permission является null.
С версии:
1.2
См. также:
getSecurityContext(), AccessControlContext.checkPermission(java.security.Permission)

checkCreateClassLoader

public void checkCreateClassLoader()

Выбрасывает SecurityException, если вызывающему потоку не разрешено создавать новый загрузчик классов.

Этот метод вызывает checkPermission с разрешением RuntimePermission("createClassLoader").

Если вы переопределяете этот метод, то вы должны вызвать super.checkCreateClassLoader в точке, где переопределенный метод обычно выбрасывает исключение.

Вызывает исключение:
SecurityException - если вызывающий поток не имеет разрешения на создание нового загрузчика классов.
См. также:
ClassLoader(), checkPermission

checkAccess

public void checkAccess(Thread t)

Выбрасывает SecurityException, если вызывающему потоку не разрешено изменять аргумент потока.

Этот метод вызывается для текущего диспетчера безопасности методами stop, suspend, resume, setPriority, setName и setDaemon класса Thread.

Если аргумент потока является системным потоком (принадлежит группе потоков с родителем null ), то этот метод вызывает checkPermission с разрешением RuntimePermission("modifyThread"). Если аргумент потока не является системным потоком, этот метод просто молча возвращается.

Приложения, которым нужна более строгая политика, должны переопределить этот метод. Если этот метод переопределен, метод, который его переопределяет, должен дополнительно проверить, имеет ли вызывающий поток разрешение RuntimePermission("modifyThread"), и если да, то молча возвратиться. Это необходимо для того, чтобы код, которому предоставлено это разрешение (например, сам JDK), мог управлять любым потоком.

Если этот метод переопределен, то super.checkAccess должен вызываться первым оператором в переопределенном методе, или эквивалентная проверка безопасности должна быть размещена в переопределенном методе.

Параметры:
t - поток, который необходимо проверить.
Вызывает исключение:
SecurityException - если вызывающий поток не имеет разрешения на изменение потока.
NullPointerException - если аргумент thread является null.
См. также:
resume, setDaemon, setName, setPriority, stop, suspend, checkPermission

checkAccess

public void checkAccess(ThreadGroup g)

Выбрасывает SecurityException, если вызывающему потоку не разрешено изменять аргумент группы потоков.

Этот метод вызывается для текущего диспетчера безопасности при создании нового дочернего потока или дочерней группы потоков, а также методами setDaemon, setMaxPriority, stop, suspend, resume и destroy класса ThreadGroup.

Если аргумент группы потоков является системной группой потоков (имеет родителя null ), то этот метод вызывает checkPermission с разрешением RuntimePermission("modifyThreadGroup"). Если аргумент группы потоков не является системной группой потоков, этот метод просто молча возвращается.

Приложения, которым нужна более строгая политика, должны переопределить этот метод. Если этот метод переопределен, метод, который его переопределяет, должен дополнительно проверить, имеет ли вызывающий поток разрешение RuntimePermission("modifyThreadGroup"), и если да, то молча возвратиться. Это необходимо для того, чтобы код, которому предоставлено это разрешение (например, сам JDK), мог управлять любым потоком.

Если этот метод переопределен, то super.checkAccess должен вызываться первым оператором в переопределенном методе, или эквивалентная проверка безопасности должна быть размещена в переопределенном методе.

Параметры:
g - группа потоков, которая должна быть проверена.
Вызывает исключение:
SecurityException - если вызывающий поток не имеет разрешения на изменение группы потоков.
NullPointerException - если аргумент thread group является null.
См. также:
destroy, resume, setDaemon, setMaxPriority, stop, suspend, checkPermission

checkExit

public void checkExit(int status)

Выбрасывает SecurityException, если вызывающему потоку не разрешено останавливать виртуальную машину Java с указанным кодом состояния.

Этот метод вызывается для текущего диспетчера безопасности методом exit класса Runtime. Значение 0 указывает на успех; другие значения указывают на различные ошибки.

Этот метод вызывает checkPermission с разрешением RuntimePermission("exitVM."+status).

Если вы переопределяете этот метод, то вы должны вызвать super.checkExit в точке, где переопределенный метод обычно выбрасывает исключение.

Параметры:
status - код завершения.
Вызывает исключение:
SecurityException - если вызывающий поток не имеет разрешения на остановку виртуальной машины Java с указанным состоянием.
См. также:
exit, checkPermission

checkExec

public void checkExec(String cmd)

Выбрасывает SecurityException, если вызывающему потоку не разрешено создавать подпроцесс.

Этот метод вызывается для текущего диспетчера безопасности методами exec класса Runtime.

Этот метод вызывает checkPermission с разрешением FilePermission(cmd,"execute"), если cmd является абсолютным путем, в противном случае он вызывает checkPermission с FilePermission("<<ALL FILES>>","execute").

Если вы переопределяете этот метод, то вы должны вызвать super.checkExec в точке, где переопределенный метод обычно выбрасывает исключение.

Параметры:
cmd - указанная системная команда.
Исключения:
SecurityException - если вызывающий поток не имеет разрешения на создание подпроцесса.
NullPointerException - если аргумент cmd является null.
См. также:
Runtime.exec(java.lang.String), Runtime.exec(java.lang.String, java.lang.String[]), Runtime.exec(java.lang.String[]), Runtime.exec(java.lang.String[], java.lang.String[]), checkPermission

checkLink

public void checkLink(String lib)

Вызывает SecurityException, если вызывающий поток не имеет разрешения на динамическую загрузку кода библиотеки, указанного строковым аргументом file. Аргумент представляет собой либо простое имя библиотеки, либо полное имя файла.

Этот метод вызывается для текущего диспетчера безопасности методами load и loadLibrary класса Runtime.

Этот метод вызывает checkPermission с разрешением RuntimePermission("loadLibrary."+lib).

Если вы переопределяете этот метод, то вы должны сделать вызов super.checkLink в точке, где переопределенный метод обычно вызывает исключение.

Параметры:
lib - имя библиотеки.
Исключения:
SecurityException - если вызывающий поток не имеет разрешения на динамическую компоновку библиотеки.
NullPointerException - если аргумент lib является null.
См. также:
Runtime.load(java.lang.String), Runtime.loadLibrary(java.lang.String), checkPermission

checkRead

public void checkRead(FileDescriptor fd)

Вызывает SecurityException, если вызывающий поток не имеет разрешения на чтение из указанного дескриптора файла.

Этот метод вызывает checkPermission с разрешением RuntimePermission("readFileDescriptor").

Если вы переопределяете этот метод, то вы должны сделать вызов super.checkRead в точке, где переопределенный метод обычно вызывает исключение.

Параметры:
fd - зависящий от системы дескриптор файла.
Исключения:
SecurityException - если вызывающий поток не имеет разрешения на доступ к указанному дескриптору файла.
NullPointerException - если аргумент дескриптора файла является null.
См. также:
FileDescriptor, checkPermission

checkRead

public void checkRead(String file)

Вызывает SecurityException, если вызывающий поток не имеет разрешения на чтение файла, указанного строковым аргументом.

Этот метод вызывает checkPermission с разрешением FilePermission(file,"read").

Если вы переопределяете этот метод, то вы должны сделать вызов super.checkRead в точке, где переопределенный метод обычно вызывает исключение.

Параметры:
file - зависящее от системы имя файла.
Исключения:
SecurityException - если вызывающий поток не имеет разрешения на доступ к указанному файлу.
NullPointerException - если аргумент file является null.
См. также:
checkPermission

checkRead

public void checkRead(String file,
                      Object context)

Вызывает SecurityException, если указанный контекст безопасности не имеет разрешения на чтение файла, указанного строковым аргументом. Контекст должен быть контекстом безопасности, возвращенным предыдущим вызовом getSecurityContext.

Если context является экземпляром AccessControlContext, то метод AccessControlContext.checkPermission будет вызван с разрешением FilePermission(file,"read").

Если context не является экземпляром AccessControlContext, то выбрасывается SecurityException.

Если вы переопределяете этот метод, то вы должны сделать вызов super.checkRead в точке, где переопределенный метод обычно вызывает исключение.

Параметры:
file - зависящее от системы имя файла.
context - зависящий от системы контекст безопасности.
Исключения:
SecurityException - если указанный контекст безопасности не является экземпляром AccessControlContext (например, является null), или не имеет разрешения на чтение указанного файла.
NullPointerException - если аргумент file является null.
См. также:
getSecurityContext(), AccessControlContext.checkPermission(java.security.Permission)

checkWrite

public void checkWrite(FileDescriptor fd)

Вызывает SecurityException, если вызывающий поток не имеет разрешения на запись в указанный дескриптор файла.

Этот метод вызывает checkPermission с разрешением RuntimePermission("writeFileDescriptor").

Если вы переопределяете этот метод, то вы должны сделать вызов super.checkWrite в точке, где переопределенный метод обычно вызывает исключение.

Параметры:
fd - зависящий от системы дескриптор файла.
Исключения:
SecurityException - если вызывающий поток не имеет разрешения на доступ к указанному дескриптору файла.
NullPointerException - если аргумент дескриптора файла является null.
См. также:
FileDescriptor, checkPermission

checkWrite

public void checkWrite(String file)

Вызывает SecurityException, если вызывающий поток не имеет разрешения на запись в файл, указанный строковым аргументом.

Этот метод вызывает checkPermission с разрешением FilePermission(file,"write").

Если вы переопределяете этот метод, то вы должны сделать вызов super.checkWrite в точке, где переопределенный метод обычно вызывает исключение.

Параметры:
file - зависящее от системы имя файла.
Исключения:
SecurityException - если вызывающий поток не имеет разрешения на доступ к указанному файлу.
NullPointerException - если аргумент file является null.
См. также:
checkPermission

checkDelete

public void checkDelete(String file)

Вызывает SecurityException, если вызывающий поток не имеет разрешения на удаление указанного файла.

Этот метод вызывается для текущего диспетчера безопасности методом delete класса File.

Этот метод вызывает checkPermission с разрешением FilePermission(file,"delete").

Если вы переопределяете этот метод, то вы должны сделать вызов super.checkDelete в точке, где переопределенный метод обычно вызывает исключение.

Параметры:
file - зависящее от системы имя файла.
Исключения:
SecurityException - если вызывающий поток не имеет разрешения на удаление файла.
NullPointerException - если аргумент file является null.
См. также:
File.delete(), checkPermission

checkConnect

public void checkConnect(String host,
                         int port)

Вызывает SecurityException, если вызывающий поток не имеет разрешения на открытие сокетного соединения с указанным узлом и номером порта.

Номер порта -1 указывает на то, что вызывающий метод пытается определить IP-адрес указанного имени узла.

Этот метод вызывает checkPermission с разрешением SocketPermission(host+":"+port,"connect"), если порт не равен -1. Если порт равен -1, то он вызывает checkPermission с разрешением SocketPermission(host,"resolve").

Если вы переопределяете этот метод, то вы должны сделать вызов super.checkConnect в точке, где переопределенный метод обычно вызывает исключение.

Параметры:
host - имя узла порта для подключения.
port - номер порта протокола для подключения.
Исключения:
SecurityException - если вызывающий поток не имеет разрешения на открытие сокетного соединения с указанными host и port.
NullPointerException - если аргумент host является null.
См. также:
checkPermission

checkConnect

public void checkConnect(String host,
                         int port,
                         Object context)

Вызывает SecurityException, если указанный контекст безопасности не имеет разрешения на открытие сокетного соединения с указанным узлом и номером порта.

Номер порта -1 указывает на то, что вызывающий метод пытается определить IP-адрес указанного имени узла.

Если context не является экземпляром AccessControlContext, то выбрасывается SecurityException.

В противном случае проверяется номер порта. Если он не равен -1, то метод checkPermission объекта context вызывается с разрешением SocketPermission(host+":"+port,"connect"). Если порт равен -1, то метод checkPermission объекта context вызывается с разрешением SocketPermission(host,"resolve").

Если вы переопределяете этот метод, то вы должны сделать вызов super.checkConnect в точке, где переопределенный метод обычно вызывает исключение.

Параметры:
host - имя хоста порт для подключения.
port - порт протокола для подключения.
context - контекст безопасности, зависящий от системы.
Исключение:
SecurityException - если указанный контекст безопасности не является экземпляром AccessControlContext (например, является null), или не имеет разрешения на открытие сокетного подключения к указанному host и port.
NullPointerException - если аргумент host равен null.
См. также:
getSecurityContext(), AccessControlContext.checkPermission(java.security.Permission)

checkListen

public void checkListen(int port)

Выбрасывает SecurityException если вызывающая нить не имеет разрешения ожидать запрос подключения на указанный локальный номер порта.

Этот метод вызывает checkPermission с SocketPermission("localhost:"+port,"listen").

Если вы переопределяете этот метод, то вы должны вызвать super.checkListen в той точке, где переопределенный метод обычно бы бросал исключение.

Параметры:
port - локальный порт.
Исключение:
SecurityException - если вызывающая нить не имеет разрешения прослушивать указанный порт.
См. также:
checkPermission

checkAccept

public void checkAccept(String host,
                        int port)

Выбрасывает SecurityException если вызывающая нить не имеет разрешения принять сокетное соединение от указанного хоста и номера порта.

Этот метод вызывается текущим менеджером безопасности методом accept класса ServerSocket.

Этот метод вызывает checkPermission с разрешением SocketPermission(host+":"+port,"accept").

Если вы переопределяете этот метод, то вы должны вызвать super.checkAccept в той точке, где переопределенный метод обычно бы бросал исключение.

Параметры:
host - имя хоста сокетного соединения.
port - номер порта сокетного соединения.
Исключение:
SecurityException - если вызывающая нить не имеет разрешения на принятие подключения.
NullPointerException - если аргумент host равен null.
См. также:
ServerSocket.accept(), checkPermission

checkMulticast

public void checkMulticast(InetAddress maddr)

Выбрасывает SecurityException если вызывающая нить не имеет разрешения на использование (подключение/отключение/отправка/прием) IP-мультиадресации.

Этот метод вызывает checkPermission с разрешением java.net.SocketPermission(maddr.getHostAddress(), "accept,connect").

Если вы переопределяете этот метод, то вы должны вызвать super.checkMulticast в той точке, где переопределенный метод обычно бы бросал исключение.

Параметры:
maddr - адрес интернет-группы для использования.
Исключение:
SecurityException - если вызывающая нить не имеет разрешения на использование (подключение/отключение/отправка/прием) IP-мультиадресации.
NullPointerException - если аргумент address равен null.
С:
1.1
См. также:
checkPermission

checkMulticast

@Deprecated(since="1.4")
public void checkMulticast(InetAddress maddr,
                           byte ttl)
Устарело.
Используйте #checkPermission(java.security.Permission) вместо этого

Выбрасывает SecurityException если вызывающая нить не имеет разрешения на использование (подключение/отключение/отправка/прием) IP-мультиадресации.

Этот метод вызывает checkPermission с разрешением java.net.SocketPermission(maddr.getHostAddress(), "accept,connect").

Если вы переопределяете этот метод, то вы должны вызвать super.checkMulticast в той точке, где переопределенный метод обычно бы бросал исключение.

Параметры:
maddr - адрес интернет-группы для использования.
ttl - значение в использовании, если это мультиадресная рассылка. Примечание: эта конкретная реализация не использует параметр ttl.
Исключение:
SecurityException - если вызывающая нить не имеет разрешения на использование (подключение/отключение/отправка/прием) IP-мультиадресации.
NullPointerException - если аргумент address равен null.
С:
1.1
См. также:
checkPermission

checkPropertiesAccess

public void checkPropertiesAccess()

Выбрасывает SecurityException если вызывающая нить не имеет разрешения на доступ или изменение системных свойств.

Этот метод используется методами getProperties и setProperties класса System.

Этот метод вызывает checkPermission с разрешением PropertyPermission("*", "read,write").

Если вы переопределяете этот метод, то вы должны вызвать super.checkPropertiesAccess в той точке, где переопределенный метод обычно бы бросал исключение.

Исключение:
SecurityException - если вызывающая нить не имеет разрешения на доступ или изменение системных свойств.
См. также:
System.getProperties(), System.setProperties(java.util.Properties), checkPermission

checkPropertyAccess

public void checkPropertyAccess(String key)

Выбрасывает SecurityException если вызывающая нить не имеет разрешения на доступ к системному свойству с указанным именем key.

Этот метод используется методом getProperty класса System.

Этот метод вызывает checkPermission с разрешением PropertyPermission(key, "read").

Если вы переопределяете этот метод, то вы должны вызвать super.checkPropertyAccess в той точке, где переопределенный метод обычно бы бросал исключение.

Параметры:
key - ключ системного свойства.
Исключение:
SecurityException - если вызывающая нить не имеет разрешения на доступ к указанному системному свойству.
NullPointerException - если аргумент key равен null.
IllegalArgumentException - если key пусто.
См. также:
System.getProperty(java.lang.String), checkPermission

checkPrintJobAccess

public void checkPrintJobAccess()

Выбрасывает SecurityException если вызывающая нить не имеет разрешения на запрос печати.

Этот метод вызывает checkPermission с разрешением RuntimePermission("queuePrintJob").

Если вы переопределяете этот метод, то вы должны вызвать super.checkPrintJobAccess в той точке, где переопределенный метод обычно бы бросал исключение.

Исключение:
SecurityException - если вызывающая нить не имеет разрешения на запрос печати.
С:
1.1
См. также:
checkPermission

checkPackageAccess

public void checkPackageAccess(String pkg)

Выбрасывает SecurityException если вызывающая нить не имеет разрешения на доступ к указанному пакету.

Во время загрузки классов, этот метод может вызываться методом loadClass загрузчиков классов и виртуальной машиной Java для проверки разрешения вызывающего объекта на доступ к пакету загружаемого класса.

Этот метод проверяет, начинается ли указанный пакет или совпадает ли он с любым из пакетов в свойстве безопасности package.access. Реализация также может проверить пакет на наличие дополнительных ограниченных пакетов, как указано ниже. Если пакет ограничен, вызывается checkPermission(Permission) с разрешением RuntimePermission("accessClassInPackage."+pkg).

Если этот метод переопределяется, то super.checkPackageAccess должен вызываться как первая строка переопределенного метода.

Примечание реализации:
Эта реализация также ограничивает все неэкспортированные пакеты модулей, загруженных платформенным загрузчиком классов или его предками. "Неэкспортированный пакет" относится к пакету, который не экспортирован во все модули. В частности, это пакет, который либо вообще не экспортирован содержащим его модулем, либо экспортирован в квалифицированном формате содержащим его модулем.
Параметры:
pkg - имя пакета.
Исключение:
SecurityException - если вызывающая нить не имеет разрешения на доступ к указанному пакету.
NullPointerException - если аргумент имени пакета равен null.
См. также:
loadClass, getProperty, checkPermission

checkPackageDefinition

public void checkPackageDefinition(String pkg)

Выбрасывает SecurityException если вызывающая нить не имеет разрешения на определение классов в указанном пакете.

Этот метод вызывается методом loadClass некоторых загрузчиков классов.

Этот метод проверяет, начинается ли указанный пакет или совпадает ли он с любым из пакетов в свойстве безопасности package.definition. Реализация также может проверить пакет на наличие дополнительных ограниченных пакетов, как указано ниже. Если пакет ограничен, вызывается checkPermission(Permission) с разрешением RuntimePermission("defineClassInPackage."+pkg).

Если этот метод переопределяется, то super.checkPackageDefinition должен вызываться как первая строка переопределенного метода.

Примечание по реализации:
Эта реализация также ограничивает все неэкспортируемые пакеты модулей, загруженных платформа классовым загрузчиком или его предками. "Неэкспортируемый пакет" — это пакет, который не экспортируется во все модули. В частности, это пакет, который либо вообще не экспортируется содержащим его модулем, либо экспортируется квалифицированным образом.
Параметры:
pkg - имя пакета.
Исключения:
SecurityException - если у вызывающей потоковой нити нет разрешения на определение классов в указанном пакете.
NullPointerException - если аргумент имени пакета null.
См. также:
ClassLoader.loadClass(String, boolean), getProperty, checkPermission

checkSetFactory

public void checkSetFactory()

Выбрасывает SecurityException , если вызывающей потоковой нити не разрешено устанавливать сокет-фабрику, используемую ServerSocket или Socket, или фабрику обработчика потоков, используемую URL.

Этот метод вызывает checkPermission с разрешением RuntimePermission("setFactory").

Если вы переопределяете этот метод, то вы должны вызвать super.checkSetFactory в том месте, где переопределяемый метод обычно выбрасывал бы исключение.

Исключения:
SecurityException - если у вызывающей потоковой нити нет разрешения на указание сокет-фабрики или фабрики обработчика потоков.
См. также:
setSocketFactory, setSocketImplFactory, setURLStreamHandlerFactory, checkPermission

checkSecurityAccess

public void checkSecurityAccess(String target)

Определяет, должно ли разрешение с указанным целевым именем разрешения быть предоставлено или отклонено.

Если запрошенное разрешение разрешено, этот метод возвращается без выполнения действий. Если отклонено, генерируется SecurityException.

Этот метод создает объект SecurityPermission для данного целевого имени разрешения и вызывает checkPermission с ним.

См. документацию для SecurityPermission для списка возможных целевых имен разрешений.

Если вы переопределяете этот метод, то вы должны вызвать super.checkSecurityAccess в том месте, где переопределяемый метод обычно выбрасывал бы исключение.

Параметры:
target - целевое имя SecurityPermission.
Исключения:
SecurityException - если у вызывающей потоковой нити нет разрешения на запрашиваемый доступ.
NullPointerException - если target равно null.
IllegalArgumentException - если target пусто.
С:
1.1
См. также:
checkPermission

getThreadGroup

public ThreadGroup getThreadGroup()

Возвращает группу потоков, в которую следует создать любой новый поток, создаваемый в момент вызова. По умолчанию возвращает группу потоков текущей потоковой нити. Это должно быть переопределено конкретным менеджером безопасности, чтобы вернуть соответствующую группу потоков.

Возвращает:
Группа потоков, в которую создаются новые потоки
С:
1.1
См. также:
ThreadGroup

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/SecurityManager.html

Spec-Zone .ru
спецификации, руководства, описания, API