Spec-Zone.ru › OpenJDK 21

Класс AccessController

java.lang.Object
java.security.AccessController
@Deprecated(since="17", forRemoval=true) public final class AccessController extends Object
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Этот класс полезен только в сочетании с менеджером безопасности, который устарел и может быть удалён в будущих выпусках. Следовательно, этот класс также устарел и может быть удалён. Замены для менеджера безопасности или этого класса нет.

Класс AccessController используется для операций и решений по управлению доступом.

Более конкретно, класс AccessController используется для трёх целей:

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

Метод checkPermission определяет, следует ли предоставить или отказать в запросе доступа, указанном заданным разрешением. Пример вызова показан ниже. В этом примере checkPermission определит, предоставить ли "чтение" доступа к файлу с именем "testFile" в каталоге "/temp".


 FilePermission perm = new FilePermission("/temp/testFile", "read");
 AccessController.checkPermission(perm);

 

Если затребованный доступ разрешен, checkPermission возвращается без каких-либо действий. Если доступ запрещён, выбрасывается AccessControlException . AccessControlException также может быть выброшен, если запрашиваемое разрешение имеет неправильный тип или содержит недопустимое значение. Такая информация предоставляется по возможности. Предположим, текущий поток прошёл через m вызывающих сторон, в порядке от вызывающей стороны 1 до вызывающей стороны 2 до вызывающей стороны m. Затем вызывающая сторона m вызвала метод checkPermission. Метод checkPermission определяет, разрешен ли доступ или запрещён, согласно следующему алгоритму:

 
 for (int i = m; i > 0; i--) {

     if (caller i's domain does not have the permission)
         throw AccessControlException

     else if (caller i is marked as privileged) {
         if (a context was specified in the call to doPrivileged)
             context.checkPermission(permission)
         if (limited permissions were specified in the call to doPrivileged) {
             for (each limited permission) {
                 if (the limited permission implies the requested permission)
                     return;
             }
         } else
             return;
     }
 }

 // Next, check the context inherited when the thread was created.
 // Whenever a new thread is created, the AccessControlContext at
 // that time is stored and associated with the new thread, as the
 // "inherited" context.

 inheritedContext.checkPermission(permission);
 

Вызывающую сторону можно пометить как "привилегированную" (см. doPrivileged и ниже). При принятии решений по контролю доступа метод checkPermission прекращает проверку, если достигает вызывающей стороны, которая была помечена как "привилегированная" с помощью вызова doPrivileged без аргумента контекста (см. ниже информацию об аргументе контекста). Если домен этой вызывающей стороны имеет указанное разрешение и по крайней мере один из аргументов ограничивающего разрешения (если таковые имеются) подразумевает запрашиваемое разрешение, дальнейшая проверка не выполняется, и checkPermission возвращается без действий, что указывает на разрешение запрошенного доступа. Если у домена вызывающей стороны нет указанного разрешения, выбрасывается исключение, как обычно. Если у домена вызывающей стороны было указанное разрешение, но оно не подразумевалось никакими аргументами ограничивающего разрешения, переданными в вызов doPrivileged , то проверка разрешений продолжается до тех пор, пока не останется больше вызывающих сторон или другой вызов doPrivileged не будет соответствовать запрошенному разрешению и не вернётся нормально.

Нормальное использование функции "привилегированного" доступа выглядит следующим образом. Если вам не нужно возвращать значение из блока "привилегированного" доступа, сделайте следующее:

 
 somemethod() {
     ...normal code here...
     AccessController.doPrivileged(new PrivilegedAction<Void>() {
         public Void run() {
             // privileged code goes here, for example:
             System.loadLibrary("awt");
             return null; // nothing to return
         }
     });
     ...normal code here...
 }

PrivilegedAction – это интерфейс с одним методом с именем run. Приведённый выше пример демонстрирует создание реализации этого интерфейса; предоставляется конкретная реализация метода run. Когда выполняется вызов doPrivileged , ему передаётся экземпляр реализации PrivilegedAction . Метод doPrivileged вызывает метод run из реализации PrivilegedAction после включения привилегий и возвращает возвращаемое значение метода run в качестве возвращаемого значения doPrivileged (которое игнорируется в этом примере).

Если вам нужно вернуть значение, вы можете сделать следующее:

 
 somemethod() {
     ...normal code here...
     String user = AccessController.doPrivileged(
         new PrivilegedAction<String>() {
         public String run() {
             return System.getProperty("user.name");
             }
         });
     ...normal code here...
 }

Если действие, выполняемое в вашем методе run , может вызвать "проверяемое" исключение (те, что перечислены в разделе throws метода), то вам необходимо использовать интерфейс PrivilegedExceptionAction вместо интерфейса PrivilegedAction:

 
 somemethod() throws FileNotFoundException {
     ...normal code here...
     try {
         FileInputStream fis = AccessController.doPrivileged(
         new PrivilegedExceptionAction<FileInputStream>() {
             public FileInputStream run() throws FileNotFoundException {
                 return new FileInputStream("someFile");
             }
         });
     } catch (PrivilegedActionException e) {
         // e.getException() should be an instance of FileNotFoundException,
         // as only "checked" exceptions will be "wrapped" in a
         // PrivilegedActionException.
         throw (FileNotFoundException) e.getException();
     }
     ...normal code here...
  }

Будьте *очень* внимательны при использовании конструкции "привилегированного" доступа и всегда помните о том, чтобы сделать раздел привилегированного кода как можно меньше. Вы можете передавать аргументы Permission для дальнейшего ограничения области "привилегии" (см. ниже).

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


 AccessControlContext acc = AccessController.getContext()

 

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


 acc.checkPermission(permission)

 

Иногда вы не знаете заранее, какие разрешения необходимо проверить по отношению к контексту. В этих случаях вы можете использовать метод doPrivileged , который принимает контекст. Вы также можете ограничить область привилегированного кода, передавая дополнительные параметры Permission .

 
 somemethod() {
     AccessController.doPrivileged(new PrivilegedAction<Object>() {
         public Object run() {
             // Code goes here. Any permission checks within this
             // run method will require that the intersection of the
             // caller's protection domain and the snapshot's
             // context have the desired permission. If a requested
             // permission is not implied by the limiting FilePermission
             // argument then checking of the thread continues beyond the
             // caller of doPrivileged.
         }
     }, acc, new FilePermission("/temp/*", read));
     ...normal code here...
 }

Передача аргумента ограниченного Permission экземпляра AllPermission эквивалентна вызову эквивалентного метода doPrivileged без аргументов ограниченного Permission . Передача массива нулевой длины аргументов Permission отключает привилегии кода, так что проверка всегда продолжается за пределами вызывающей стороны этого метода doPrivileged.

С момента:
1.2
См. также:
  • AccessControlContext

Краткое описание методов

Модификатор и тип Метод Описание
static void checkPermission(Permission perm)
Устаревший, для удаления: Этот элемент API может быть удален в будущей версии.
Определяет, следует ли разрешить или запретить запрос доступа, указанный в заданном разрешении, на основе текущего AccessControlContext и политики безопасности.
static <T> T doPrivileged(PrivilegedAction<T> action)
Устаревший, для удаления: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedAction с включенными привилегиями.
static <T> T doPrivileged(PrivilegedAction<T> action, AccessControlContext context)
Устаревший, для удаления: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedAction с включенными привилегиями и ограничениями, определёнными в заданном AccessControlContext.
static <T> T doPrivileged(PrivilegedAction<T> action, AccessControlContext context, Permission... perms)
Устаревший, для удаления: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedAction с включенными привилегиями и ограничениями, определёнными в заданном AccessControlContext, а также с ограниченным объёмом привилегий, заданным аргументами Permission.
static <T> T doPrivileged(PrivilegedExceptionAction<T> action)
Устаревший, для удаления: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedExceptionAction с включенными привилегиями.
static <T> T doPrivileged(PrivilegedExceptionAction<T> action, AccessControlContext context)
Устаревший, для удаления: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedExceptionAction с включенными привилегиями и ограничениями, определёнными в заданном AccessControlContext.
static <T> T doPrivileged(PrivilegedExceptionAction<T> action, AccessControlContext context, Permission... perms)
Устаревший, для удаления: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedExceptionAction с включенными привилегиями и ограничениями, определёнными в заданном AccessControlContext, а также с ограниченным объёмом привилегий, заданным аргументами Permission.
static <T> T doPrivilegedWithCombiner(PrivilegedAction<T> action)
Устаревший, для удаления: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedAction с включенными привилегиями.
static <T> T doPrivilegedWithCombiner(PrivilegedAction<T> action, AccessControlContext context, Permission... perms)
Устаревший, для удаления: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedAction с включенными привилегиями и ограничениями, определёнными в заданном AccessControlContext, а также с ограниченным объёмом привилегий, заданным аргументами Permission.
static <T> T doPrivilegedWithCombiner(PrivilegedExceptionAction<T> action)
Устаревший, для удаления: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedExceptionAction с включенными привилегиями.
static <T> T doPrivilegedWithCombiner(PrivilegedExceptionAction<T> action, AccessControlContext context, Permission... perms)
Устаревший, для удаления: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedExceptionAction с включенными привилегиями и ограничениями, определёнными в заданном AccessControlContext, а также с ограниченным объёмом привилегий, заданным аргументами Permission.
static AccessControlContext getContext()
Устаревший, для удаления: Этот элемент API может быть удален в будущей версии.
Этот метод создаёт «снимок» текущего контекста вызова, включая унаследованные AccessControlContext текущей нити и любой ограниченный объём привилегий, и помещает его в объект AccessControlContext.

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

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

Подробное описание методов

doPrivileged

public static <T> T doPrivileged(PrivilegedAction<T> action)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedAction с разрешениями. Действие выполняется со всеми разрешениями, имеющимися в домене защиты вызывающей стороны.

Если метод действия run вызывает (непроверяемое) исключение, оно будет распространено через этот метод.

Обратите внимание, что любые DomainCombiner , связанные с текущим AccessControlContext , будут проигнорированы во время выполнения действия.

Параметры типа:
T - тип значения, возвращаемого методом run PrivilegedAction.
Параметры:
action - действие, подлежащее выполнению.
Возвращает:
значение, возвращаемое методом run действия.
Исключения:
NullPointerException - если действие null
См. также:
  • doPrivileged(PrivilegedAction,AccessControlContext)
  • doPrivileged(PrivilegedExceptionAction)
  • doPrivilegedWithCombiner(PrivilegedAction)
  • DomainCombiner

doPrivilegedWithCombiner

public static <T> T doPrivilegedWithCombiner(PrivilegedAction<T> action)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedAction с разрешениями. Действие выполняется со всеми разрешениями, имеющимися в домене защиты вызывающей стороны.

Если метод действия run вызывает (непроверяемое) исключение, оно будет распространено через этот метод.

Этот метод сохраняет текущий DomainCombiner AccessControlContext (который может быть null) во время выполнения действия.

Параметры типа:
T - тип значения, возвращаемого методом run PrivilegedAction.
Параметры:
action - действие, подлежащее выполнению.
Возвращает:
значение, возвращаемое методом run действия.
Исключения:
NullPointerException - если действие null
С:
1.6
См. также:
  • doPrivileged(PrivilegedAction)
  • DomainCombiner

doPrivileged

public static <T> T doPrivileged(PrivilegedAction<T> action, AccessControlContext context)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedAction с разрешениями, ограниченными указанным AccessControlContext. Действие выполняется с пересечением разрешений, имеющихся в домене защиты вызывающей стороны, и разрешений, имеющихся в доменах, представленных указанным AccessControlContext.

Если метод действия run вызывает (непроверяемое) исключение, оно будет распространено через этот метод.

Если установлено управление безопасностью и указанный AccessControlContext не был создан системным кодом, и вызывающей стороне не предоставлено разрешение "createAccessControlContext" SecurityPermission, то действие выполняется без разрешений.

Параметры типа:
T - тип значения, возвращаемого методом run PrivilegedAction.
Параметры:
action - действие, подлежащее выполнению.
context - контекст управления доступом, представляющий ограничение, которое будет применено к разрешениям домена вызывающей стороны перед выполнением указанного действия. Если контекст null, то дополнительное ограничение не применяется.
Возвращает:
значение, возвращаемое методом run действия.
Исключения:
NullPointerException - если действие null
См. также:
  • doPrivileged(PrivilegedAction)
  • doPrivileged(PrivilegedExceptionAction,AccessControlContext)

doPrivileged

public static <T> T doPrivileged(PrivilegedAction<T> action, AccessControlContext context, Permission... perms)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedAction с разрешениями, ограниченными указанным AccessControlContext и с областью действия разрешений, ограниченной указанными Permission аргументами. Действие выполняется с пересечением разрешений, имеющихся в домене защиты вызывающей стороны, и разрешений, имеющихся в доменах, представленных указанным AccessControlContext.

Если метод действия run вызывает (непроверяемое) исключение, оно будет распространено через этот метод.

Если установлено управление безопасностью и указанный AccessControlContext не был создан системным кодом, и вызывающей стороне не предоставлено разрешение "createAccessControlContext" SecurityPermission, то действие выполняется без разрешений.

Параметры типа:
T - тип значения, возвращаемого методом run PrivilegedAction.
Параметры:
action - действие, подлежащее выполнению.
context - контекст управления доступом, представляющий ограничение, которое будет применено к разрешениям домена вызывающей стороны перед выполнением указанного действия. Если контекст null, то дополнительное ограничение не применяется.
perms - аргументы Permission, ограничивающие область действия разрешений вызывающей стороны. Количество аргументов изменяемо.
Возвращает:
значение, возвращаемое методом run действия.
Исключения:
NullPointerException - если действие или perms или любой элемент perms null
С:
1.8
См. также:
  • doPrivileged(PrivilegedAction)
  • doPrivileged(PrivilegedExceptionAction,AccessControlContext)

doPrivilegedWithCombiner

public static <T> T doPrivilegedWithCombiner(PrivilegedAction<T> action, AccessControlContext context, Permission... perms)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedAction с разрешениями, ограниченными указанным AccessControlContext и с областью действия разрешений, ограниченной указанными Permission аргументами. Действие выполняется с пересечением разрешений, имеющихся в домене защиты вызывающей стороны, и разрешений, имеющихся в доменах, представленных указанным AccessControlContext.

Если метод действия run вызывает (непроверяемое) исключение, оно будет распространено через этот метод.

Этот метод сохраняет текущий DomainCombiner AccessControlContext (который может быть null) во время выполнения действия.

Если установлено управление безопасностью и указанный AccessControlContext не был создан системным кодом, и вызывающей стороне не предоставлено разрешение "createAccessControlContext" SecurityPermission, то действие выполняется без разрешений.

Параметры типа:
T - тип значения, возвращаемого методом run PrivilegedAction.
Параметры:
action - действие, подлежащее выполнению.
context - контекст управления доступом, представляющий ограничение, которое будет применено к разрешениям домена вызывающей стороны перед выполнением указанного действия. Если контекст null, то дополнительное ограничение не применяется.
perms - аргументы Permission, ограничивающие область действия разрешений вызывающей стороны. Количество аргументов изменяемо.
Возвращает:
значение, возвращаемое методом run действия.
Исключения:
NullPointerException - если действие или perms или любой элемент perms null
С:
1.8
См. также:
  • doPrivileged(PrivilegedAction)
  • doPrivileged(PrivilegedExceptionAction,AccessControlContext)
  • DomainCombiner

doPrivileged

public static <T> T doPrivileged(PrivilegedExceptionAction<T> action) throws PrivilegedActionException
Устарело, для удаления: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedExceptionAction с включенными привилегиями. Действие выполняется со всеми разрешениями, имеющимися в области защиты вызывающего объекта.

Если метод действия run вызывает непроверенное исключение, оно будет распространено через этот метод.

Обратите внимание, что любые DomainCombiner связанные с текущей AccessControlContext будут проигнорированы во время выполнения действия.

Тип параметров:
T - тип значения, возвращаемого методом run PrivilegedExceptionAction.
Параметры:
action - действие, которое нужно выполнить
Возвращает:
значение, возвращаемое методом run действия
Выбрасывает:
PrivilegedActionException - если у указанного действия метод run вызвал проверенное исключение
NullPointerException - если действие null
См. также:
  • doPrivileged(PrivilegedAction)
  • doPrivileged(PrivilegedExceptionAction,AccessControlContext)
  • doPrivilegedWithCombiner(PrivilegedExceptionAction)
  • DomainCombiner

doPrivilegedWithCombiner

public static <T> T doPrivilegedWithCombiner(PrivilegedExceptionAction<T> action) throws PrivilegedActionException
Устарело, для удаления: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedExceptionAction с включенными привилегиями. Действие выполняется со всеми разрешениями, имеющимися в области защиты вызывающего объекта.

Если метод действия run вызывает непроверенное исключение, оно будет распространено через этот метод.

Этот метод сохраняет текущий DomainCombiner AccessControlContext (который может быть null) во время выполнения действия.

Тип параметров:
T - тип значения, возвращаемого методом run PrivilegedExceptionAction.
Параметры:
action - действие, которое нужно выполнить.
Возвращает:
значение, возвращаемое методом run действия
Выбрасывает:
PrivilegedActionException - если у указанного действия метод run вызвал проверенное исключение
NullPointerException - если действие null
С:
1.6
См. также:
  • doPrivileged(PrivilegedAction)
  • doPrivileged(PrivilegedExceptionAction,AccessControlContext)
  • DomainCombiner

doPrivileged

public static <T> T doPrivileged(PrivilegedExceptionAction<T> action, AccessControlContext context) throws PrivilegedActionException
Устарело, для удаления: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedExceptionAction с включенными привилегиями и ограничениями, заданными указанным AccessControlContext. Действие выполняется с пересечением разрешений, имеющихся в области защиты вызывающего объекта, и разрешений, имеющихся в областях, представленных указанным AccessControlContext.

Если метод действия run вызывает непроверенное исключение, оно будет распространено через этот метод.

Если установлен менеджер безопасности и указанный AccessControlContext был создан не системным кодом, и вызывающему объекту не предоставлено разрешение "createAccessControlContext" SecurityPermission, то действие выполняется без разрешений.

Тип параметров:
T - тип значения, возвращаемого методом run PrivilegedExceptionAction.
Параметры:
action - действие, которое нужно выполнить
context - контекст управления доступом, представляющий ограничение, которое применяется к привилегиям области защиты вызывающего объекта перед выполнением указанного действия. Если контекст null, то дополнительное ограничение не применяется.
Возвращает:
значение, возвращаемое методом run действия
Выбрасывает:
PrivilegedActionException - если у указанного действия метод run вызвал проверенное исключение
NullPointerException - если действие null
См. также:
  • doPrivileged(PrivilegedAction)
  • doPrivileged(PrivilegedAction,AccessControlContext)

doPrivileged

public static <T> T doPrivileged(PrivilegedExceptionAction<T> action, AccessControlContext context, Permission... perms) throws PrivilegedActionException
Устарело, для удаления: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedExceptionAction с включенными привилегиями и ограничениями, заданными указанным AccessControlContext, и с областью привилегий, ограниченной указанными Permission аргументами. Действие выполняется с пересечением разрешений, имеющихся в области защиты вызывающего объекта, и разрешений, имеющихся в областях, представленных указанным AccessControlContext.

Если метод действия run вызывает (непроверенное) исключение, оно будет распространено через этот метод.

Если установлен менеджер безопасности и указанный AccessControlContext был создан не системным кодом, и вызывающему объекту не предоставлено разрешение "createAccessControlContext" SecurityPermission, то действие выполняется без разрешений.

Тип параметров:
T - тип значения, возвращаемого методом run PrivilegedExceptionAction.
Параметры:
action - действие, которое нужно выполнить.
context - контекст управления доступом, представляющий ограничение, которое применяется к привилегиям области защиты вызывающего объекта перед выполнением указанного действия. Если контекст null, то дополнительное ограничение не применяется.
perms - аргументы Permission, которые ограничивают область действия привилегий вызывающего объекта. Количество аргументов переменное.
Возвращает:
значение, возвращаемое методом run действия.
Выбрасывает:
PrivilegedActionException - если у указанного действия метод run вызвал проверенное исключение
NullPointerException - если действие или perms или любой элемент perms null
С:
1.8
См. также:
  • doPrivileged(PrivilegedAction)
  • doPrivileged(PrivilegedAction,AccessControlContext)

doPrivilegedWithCombiner

public static <T> T doPrivilegedWithCombiner(PrivilegedExceptionAction<T> action, AccessControlContext context, Permission... perms) throws PrivilegedActionException
Устарело, для удаления: Этот элемент API может быть удален в будущей версии.
Выполняет указанное PrivilegedExceptionAction с включенными привилегиями и ограничениями, заданными указанным AccessControlContext, и с областью привилегий, ограниченной указанными Permission аргументами. Действие выполняется с пересечением разрешений, имеющихся в области защиты вызывающего объекта, и разрешений, имеющихся в областях, представленных указанным AccessControlContext.

Если метод действия run вызывает (непроверенное) исключение, оно будет распространено через этот метод.

Этот метод сохраняет текущий DomainCombiner AccessControlContext (который может быть null) во время выполнения действия.

Если установлен менеджер безопасности и указанный AccessControlContext был создан не системным кодом, и вызывающему объекту не предоставлено разрешение "createAccessControlContext" SecurityPermission, то действие выполняется без разрешений.

Тип параметров:
T - тип значения, возвращаемого методом run PrivilegedExceptionAction.
Параметры:
action - действие, которое нужно выполнить.
context - контекст управления доступом, представляющий ограничение, которое применяется к привилегиям области защиты вызывающего объекта перед выполнением указанного действия. Если контекст null, то дополнительное ограничение не применяется.
perms - аргументы Permission, которые ограничивают область действия привилегий вызывающего объекта. Количество аргументов переменное.
Возвращает:
значение, возвращаемое методом run действия.
Выбрасывает:
PrivilegedActionException - если у указанного действия метод run вызвал проверенное исключение
NullPointerException - если действие или perms или любой элемент perms null
С:
1.8
См. также:
  • doPrivileged(PrivilegedAction)
  • doPrivileged(PrivilegedAction,AccessControlContext)
  • DomainCombiner

getContext

public static AccessControlContext getContext()
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Этот метод создаёт "снимок" текущего контекста вызова, который включает унаследованные права текущей нити AccessControlContext и любые ограниченные права доступа, и помещает его в объект AccessControlContext. Этот контекст может быть проверен позднее, возможно, в другой нити.
Возвращает:
объект AccessControlContext на основе текущего контекста.
См. также:
  • AccessControlContext

checkPermission

public static void checkPermission(Permission perm) throws AccessControlException
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Определяет, должно ли запрос доступа, указанный заданным разрешением, быть разрешён или отклонён на основе текущего AccessControlContext и политики безопасности. Этот метод безмолвно возвращается, если запрос доступа разрешён, или выбрасывает исключение AccessControlException в противном случае. Метод getPermission класса AccessControlException возвращает экземпляр объекта Permission (perm).
Параметры:
perm - запрашиваемое разрешение.
Исключения:
AccessControlException - если указанное разрешение не разрешено, исходя из текущей политики безопасности.
NullPointerException - если указанное разрешение null и проверяется на основе политики безопасности, действующей в данный момент.

© 1993, 2023, 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/21/docs/api/java.base/java/security/AccessController.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API