Spec-Zone.ru › OpenJDK 17

Класс 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

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

Modifier and Type Method Description
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 - если действие или разрешения или любой элемент разрешений 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 - если действие или разрешения или любой элемент разрешений 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 (который может быть нулевым) во время выполнения действия.

Параметры типа:
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 (который может быть нулевым) во время выполнения действия.

Если установлена система безопасности и указанный 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

checkPermission

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

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

Spec-Zone.ru

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