Spec-Zone .ru
спецификации, руководства, описания, API
|
public class SecurityManager extends Object
SecurityManager
класс содержит много методов с именами, которые начинаются со слова check
. Эти методы вызывают различные методы в библиотеках Java прежде, чем те методы выполнят определенные потенциально секретные операции. Вызов такого check
метод обычно похож на это:
SecurityManager security = System.getSecurityManager(); if (security != null) { security.checkXXX(argument, . . . ); }
Менеджеру безопасности, таким образом, дают возможность предотвратить завершение работы, выдавая исключение. Подпрограмма менеджера безопасности просто возвращается, если работа разрешается, но бросает a SecurityException
если работа не разрешается. Единственное исключение к этому соглашению checkTopLevelWindow
, который возвращает a boolean
значение.
Текущий менеджер безопасности устанавливается setSecurityManager
метод в классе System
. Текущий менеджер безопасности получается getSecurityManager
метод.
Специальный метод checkPermission(java.security.Permission)
определяет, нужно ли запрос доступа, обозначенный указанным разрешением, предоставить или отрицаться. Вызовы реализации по умолчанию
AccessController.checkPermission(perm);
Если запрошенный доступ позволяется, checkPermission
возвраты спокойно. Если отрицающийся, a SecurityException
бросается.
С Java 2 SDK v1.2, реализация по умолчанию каждого из другого check
методы в SecurityManager
должен вызвать SecurityManager checkPermission
метод, чтобы определить, есть ли у вызывающего потока разрешение, чтобы выполнить требуемую работу.
Отметьте что checkPermission
метод с только единственным параметром разрешения всегда выполняет проверки безопасности в пределах контекста в настоящий момент выполняющегося потока. Иногда проверка защиты, которая должна быть сделана в пределах данного контекста, должна будет фактически быть сделана изнутри различного контекста (например изнутри рабочего потока). getSecurityContext
метод и checkPermission
метод, который включает параметр контекста, обеспечивается для этой ситуации. getSecurityContext
метод возвращает "снимок" текущего контекста вызова. (Реализация по умолчанию возвращает объект AccessControlContext.) Демонстрационный вызов является следующим:
Object context = null; SecurityManager sm = System.getSecurityManager(); if (sm != null) context = sm.getSecurityContext();
checkPermission
метод, который берет объект контекста в дополнение к разрешению, делает решения о предоставлении доступа основанными на том контексте, а не на том из текущего потока выполнения. Код в пределах различного контекста может таким образом вызвать тот метод, передавая разрешение и ранее сохраненный объект контекста. Демонстрационный вызов, используя SecurityManager 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 непосредственно из Разрешения, а не от BasicPermission. Например, для a java.io.FilePermission
объект, имя разрешения является путем файла (или каталог).
У некоторых из классов полномочий есть список "действий", который говорит действия, которые разрешаются для объекта. Например, для a java.io.FilePermission
объект, список действий (такой как "считано, пишут"), определяет, какие действия предоставляют для указанного файла (или для файлов в указанном каталоге).
Другие классы полномочий для "именованных" полномочий - которые содержат имя, но никакой список действий; у Вас или есть именованное разрешение, или Вы не делаете.
Отметьте: есть также a java.security.AllPermission
разрешение, которое подразумевает все полномочия. Это существует, чтобы упростить работу системных администраторов, которые, возможно, должны были бы выполнить многократные задачи, которые требуют всех (или многочисленный) полномочия.
См. Полномочия в JDK для связанной с разрешением информации. Этот документ включает, например, таблицу, перечисляющую различный SecurityManager check
методы и разрешение (я) реализация по умолчанию каждого такого метода требуют. Это также содержит таблицу всех методов версии 1.2, которые требуют, чтобы полномочия, и для каждого такого метода сказали, какого разрешения это требует.
Для получения дополнительной информации о SecurityManager
изменения, произведенные в JDK и совете относительно портирования менеджеров безопасности с 1.1 стилями, см. документацию безопасности.
ClassLoader
, SecurityException
, checkTopLevelWindow
, getSecurityManager
, setSecurityManager
, AccessController
, AccessControlContext
, AccessControlException
, Permission
, BasicPermission
, FilePermission
, SocketPermission
, PropertyPermission
, RuntimePermission
, AWTPermission
, Policy
, SecurityPermission
, ProtectionDomain
Модификатор и Тип | Поле и Описание |
---|---|
protected boolean |
inCheck
Осуждаемый.
Этот тип проверки безопасности не рекомендуется. Рекомендуется что
checkPermission вызовите использоваться вместо этого. |
Конструктор и Описание |
---|
SecurityManager()
Создает новое
SecurityManager . |
Модификатор и Тип | Метод и Описание |
---|---|
void |
checkAccept(String host, int port)
Броски a
SecurityException если вызывающему потоку не разрешают принять сокетное соединение от указанного узла и номера порта. |
void |
checkAccess(Thread t)
Броски a
SecurityException если вызывающему потоку не позволяют изменить параметр потока. |
void |
checkAccess(ThreadGroup g)
Броски a
SecurityException если вызывающему потоку не позволяют изменить групповой параметр потока. |
void |
checkAwtEventQueueAccess()
Броски a
SecurityException если вызывающему потоку не позволяют получить доступ к очереди событий AWT. |
void |
checkConnect(String host, int port)
Броски a
SecurityException если вызывающему потоку не позволяют открыть сокетное соединение с указанным узлом и номером порта. |
void |
checkConnect(String host, int port, Object context)
Броски a
SecurityException если указанному контексту защиты не позволяют открыть сокетное соединение с указанным узлом и номером порта. |
void |
checkCreateClassLoader()
Броски a
SecurityException если вызывающему потоку не позволяют создать новый загрузчик класса. |
void |
checkDelete(String file)
Броски a
SecurityException если вызывающему потоку не позволяют удалить указанный файл. |
void |
checkExec(String cmd)
Броски a
SecurityException если вызывающему потоку не позволяют создать подпроцесс. |
void |
checkExit(int status)
Броски a
SecurityException если вызывающему потоку не позволяют заставить виртуальную машину Java останавливаться с указанным кодом состояния. |
void |
checkLink(String lib)
Броски a
SecurityException если вызывающий поток не позволяется динамической ссылке код библиотеки, определенный строковым файлом параметра. |
void |
checkListen(int port)
Броски a
SecurityException если вызывающему потоку не позволяют ожидать запроса соединения на указанном локальном номере порта. |
void |
checkMemberAccess(Class<?> clazz, int which)
Броски a
SecurityException если вызывающему потоку не позволяют получить доступ к элементам. |
void |
checkMulticast(InetAddress maddr)
Броски a
SecurityException если вызывающему потоку не позволяют использовать (присоединяются/уезжают/отправляют/получают) к многоадресной передаче IP. |
void |
checkMulticast(InetAddress maddr, byte ttl)
Осуждаемый.
Используйте #checkPermission (java.security. Разрешение) вместо этого
|
void |
checkPackageAccess(String pkg)
Броски a
SecurityException если вызывающему потоку не позволяют получить доступ к пакету, определенному параметром. |
void |
checkPackageDefinition(String pkg)
Броски a
SecurityException если вызывающему потоку не позволяют определить классы в пакете, определенном параметром. |
void |
checkPermission(Permission perm)
Броски a
SecurityException если запрошенный доступ, определенный данным разрешением, не разрешается основанный на политике безопасности в настоящий момент в действительности. |
void |
checkPermission(Permission perm, Object context)
Броски a
SecurityException если указанный контекст защиты лишен доступа к ресурсу, определенному данным разрешением. |
void |
checkPrintJobAccess()
Броски a
SecurityException если вызывающему потоку не позволяют инициировать запрос задания печати. |
void |
checkPropertiesAccess()
Броски a
SecurityException если вызывающему потоку не позволяют получить доступ или изменить системные свойства. |
void |
checkPropertyAccess(String key)
Броски a
SecurityException если вызывающему потоку не позволяют получить доступ к системному свойству с указанным key имя. |
void |
checkRead(FileDescriptor fd)
Броски a
SecurityException если вызывающему потоку не позволяют читать из указанного дескриптора файла. |
void |
checkRead(String file)
Броски a
SecurityException если вызывающему потоку не позволяют считать файл, определенный строковым параметром. |
void |
checkRead(String file, Object context)
Броски a
SecurityException если указанному контексту защиты не позволяют считать файл, определенный строковым параметром. |
void |
checkSecurityAccess(String target)
Определяет, нужно ли разрешение с указанным целевым именем разрешения предоставить или отрицаться.
|
void |
checkSetFactory()
Броски a
SecurityException если вызывающему потоку не позволяют установить фабрику сокета, используемую ServerSocket или Socket , или потоковая фабрика обработчиков, используемая URL . |
void |
checkSystemClipboardAccess()
Броски a
SecurityException если вызывающему потоку не позволяют получить доступ к системному буферу обмена. |
boolean |
checkTopLevelWindow(Object window)
Возвраты
false если вызывающему потоку не доверяют, чтобы перевести в рабочее состояние высокоуровневое окно, обозначенное window параметр. |
void |
checkWrite(FileDescriptor fd)
Броски a
SecurityException если вызывающему потоку не позволяют записать в указанный дескриптор файла. |
void |
checkWrite(String file)
Броски a
SecurityException если вызывающему потоку не позволяют записать в файл, определенный строковым параметром. |
protected int |
classDepth(String name)
Осуждаемый.
Этот тип проверки безопасности не рекомендуется. Рекомендуется что
checkPermission вызовите использоваться вместо этого. |
protected int |
classLoaderDepth()
Осуждаемый.
Этот тип проверки безопасности не рекомендуется. Рекомендуется что
checkPermission вызовите использоваться вместо этого. |
protected ClassLoader |
currentClassLoader()
Осуждаемый.
Этот тип проверки безопасности не рекомендуется. Рекомендуется что
checkPermission вызовите использоваться вместо этого. |
protected Class<?> |
currentLoadedClass()
Осуждаемый.
Этот тип проверки безопасности не рекомендуется. Рекомендуется что
checkPermission вызовите использоваться вместо этого. |
protected Class[] |
getClassContext()
Возвращает текущий стек выполнения как массив классов.
|
boolean |
getInCheck()
Осуждаемый.
Этот тип проверки безопасности не рекомендуется. Рекомендуется что
checkPermission вызовите использоваться вместо этого. |
Объект |
getSecurityContext()
Создает объект, который инкапсулирует текущую среду выполнения.
|
ThreadGroup |
getThreadGroup()
Возвращает группу потока, в которую можно инстанцировать любого нового потока, создаваемого в то время, когда это вызывают.
|
protected boolean |
inClass(String name)
Осуждаемый.
Этот тип проверки безопасности не рекомендуется. Рекомендуется что
checkPermission вызовите использоваться вместо этого. |
protected boolean |
inClassLoader()
Осуждаемый.
Этот тип проверки безопасности не рекомендуется. Рекомендуется что
checkPermission вызовите использоваться вместо этого. |
@Deprecated protected boolean inCheck
checkPermission
вызовите использоваться вместо этого.true
если есть происходящая проверка защиты; false
иначе.public SecurityManager()
SecurityManager
. Если есть менеджер безопасности, уже установленный, этот метод первые вызовы менеджер безопасности checkPermission
метод с RuntimePermission("createSecurityManager")
у разрешения, чтобы гарантировать вызывающий поток есть разрешение, чтобы создать нового менеджера безопасности. Это может привести к броску a SecurityException
.
SecurityException
- если менеджер безопасности уже существует и checkPermission
метод не позволяет создание нового менеджера безопасности.System.getSecurityManager()
, checkPermission
, RuntimePermission
@Deprecated public boolean getInCheck()
checkPermission
вызовите использоваться вместо этого.inCheck
поле. Это поле должно содержать true
если проверка защиты происходит, false
иначе.inCheck
protected Class[] getClassContext()
Длина массива является числом методов на стеке выполнения. Элемент по индексу 0
класс в настоящий момент выполняющегося метода, элемента по индексу 1
класс вызывающей стороны того метода, и так далее.
@Deprecated protected ClassLoader currentClassLoader()
checkPermission
вызовите использоваться вместо этого.ClassLoader.getSystemClassLoader()
) или один из его предков. Этот метод возвратится null
в следующих трех случаях:
AccessController.doPrivileged(java.security.PrivilegedAction<T>)
) от классов, определенных, используя системный загрузчик класса или одного из его предков. checkPermission
с java.security.AllPermission
не приводит к SecurityException. getSystemClassLoader
, checkPermission
@Deprecated protected Class<?> currentLoadedClass()
checkPermission
вызовите использоваться вместо этого.ClassLoader.getSystemClassLoader()
) или один из его предков. Этот метод возвратится null
в следующих трех случаях:
AccessController.doPrivileged(java.security.PrivilegedAction<T>)
) от классов, определенных, используя системный загрузчик класса или одного из его предков. checkPermission
с java.security.AllPermission
не приводит к SecurityException. getSystemClassLoader
, checkPermission
@Deprecated protected int classDepth(String name)
checkPermission
вызовите использоваться вместо этого.name
- полностью определенное имя класса поиска.-1
если такой фрейм не может быть найден.@Deprecated protected int classLoaderDepth()
checkPermission
вызовите использоваться вместо этого.ClassLoader.getSystemClassLoader()
) или один из его предков. Этот метод возвратится-1 в следующих трех случаях:
AccessController.doPrivileged(java.security.PrivilegedAction<T>)
) от классов, определенных, используя системный загрузчик класса или одного из его предков. checkPermission
с java.security.AllPermission
не приводит к SecurityException. getSystemClassLoader
, checkPermission
@Deprecated protected boolean inClass(String name)
checkPermission
вызовите использоваться вместо этого.name
- полностью определенное имя класса.true
если метод от класса с указанным именем находится на стеке выполнения; false
иначе.@Deprecated protected boolean inClassLoader()
checkPermission
вызовите использоваться вместо этого.true
если звонок currentClassLoader
имеет ненулевое возвращаемое значение.currentClassLoader
public Object getSecurityContext()
checkConnect
метод и с двумя параметрами checkRead
метод. Эти методы необходимы, потому что к доверяемому методу можно обратиться с просьбой считать файл или открыть сокет от имени другого метода. Доверяемый метод должен определить, позволили ли бы другой (возможно недоверяемый) методу выполнить работу самостоятельно. Реализация по умолчанию этого метода должна возвратиться AccessControlContext
объект.
checkConnect
, checkRead
, AccessControlContext
public void checkPermission(Permission perm)
SecurityException
если запрошенный доступ, определенный данным разрешением, не разрешается основанный на политике безопасности в настоящий момент в действительности. Это вызовы метода AccessController.checkPermission
с данным разрешением.
perm
- требуемое разрешение.SecurityException
- если доступ не разрешается основанный на текущей политике безопасности.NullPointerException
- если параметр разрешения null
.public void checkPermission(Permission perm, Object context)
SecurityException
если указанный контекст защиты лишен доступа к ресурсу, определенному данным разрешением. Контекст должен быть контекстом защиты, возвращенным предыдущим звонком getSecurityContext
и решение управления доступом основано на сконфигурированной политике безопасности для того контекста защиты. Если context
экземпляр AccessControlContext
тогда AccessControlContext.checkPermission
метод вызывается с указанным разрешением.
Если context
не экземпляр AccessControlContext
тогда a SecurityException
бросается.
perm
- указанное разрешениеcontext
- системно-зависимый контекст защиты.SecurityException
- если указанный контекст защиты не является экземпляром AccessControlContext
(например, null
), или лишено доступа к ресурсу, определенному данным разрешением.NullPointerException
- если параметр разрешения null
.getSecurityContext()
, AccessControlContext.checkPermission(java.security.Permission)
public void checkCreateClassLoader()
SecurityException
если вызывающему потоку не позволяют создать новый загрузчик класса. Это вызовы метода checkPermission
с RuntimePermission("createClassLoader")
разрешение.
Если Вы переопределяете этот метод, то следует сделать звонок super.checkCreateClassLoader
в точке переопределенный метод обычно выдавал бы исключение.
SecurityException
- если у вызывающего потока нет разрешения, чтобы создать новый загрузчик класса.ClassLoader.ClassLoader()
, checkPermission
public void checkAccess(Thread t)
SecurityException
если вызывающему потоку не позволяют изменить параметр потока. Этот метод вызывается для текущего менеджера безопасности stop
, suspend
, resume
, setPriority
, setName
, и setDaemon
методы класса Thread
.
Если параметром потока является системный поток (принадлежит группе потока с a null
родитель) тогда это вызовы метода checkPermission
с RuntimePermission("modifyThread")
разрешение. Если параметром потока не является системный поток, этот метод только возвращается тихо.
Приложения, которые хотят более строгую политику, должны переопределить этот метод. Если этот метод переопределяется, метод, который переопределяет его, должен дополнительно проверить, чтобы видеть, имеет ли вызывающий поток RuntimePermission("modifyThread")
разрешение, и если так, возвращается тихо. Это должно гарантировать, что код, предоставленный, что разрешению (такому как JDK непосредственно) позволяют управлять любым потоком.
Если этот метод переопределяется, то super.checkAccess
должен быть вызван первым оператором в переопределенном методе, или эквивалентная проверка защиты должна быть помещена в переопределенный метод.
t
- поток, который будет проверен.SecurityException
- если у вызывающего потока нет разрешения, чтобы изменить поток.NullPointerException
- если параметр потока null
.resume
, setDaemon
, setName
, setPriority
, stop
, suspend
, checkPermission
public void checkAccess(ThreadGroup g)
SecurityException
если вызывающему потоку не позволяют изменить групповой параметр потока. Этот метод вызывается для текущего менеджера безопасности, когда новый дочерний поток или дочерняя группа потока создаются, и setDaemon
, setMaxPriority
, stop
, suspend
, resume
, и destroy
методы класса ThreadGroup
.
Если групповым параметром потока является системная группа потока (имеет a null
родитель) тогда это вызовы метода checkPermission
с RuntimePermission("modifyThreadGroup")
разрешение. Если групповым параметром потока не является системная группа потока, этот метод только возвращается тихо.
Приложения, которые хотят более строгую политику, должны переопределить этот метод. Если этот метод переопределяется, метод, который переопределяет его, должен дополнительно проверить, чтобы видеть, имеет ли вызывающий поток RuntimePermission("modifyThreadGroup")
разрешение, и если так, возвращается тихо. Это должно гарантировать, что код, предоставленный, что разрешению (такому как JDK непосредственно) позволяют управлять любым потоком.
Если этот метод переопределяется, то super.checkAccess
должен быть вызван первым оператором в переопределенном методе, или эквивалентная проверка защиты должна быть помещена в переопределенный метод.
g
- группа потока, которая будет проверена.SecurityException
- если у вызывающего потока нет разрешения, чтобы изменить группу потока.NullPointerException
- если групповой параметр потока null
.destroy
, resume
, setDaemon
, setMaxPriority
, stop
, suspend
, checkPermission
public void checkExit(int status)
SecurityException
если вызывающему потоку не позволяют заставить виртуальную машину Java останавливаться с указанным кодом состояния. Этот метод вызывается для текущего менеджера безопасности exit
метод класса Runtime
. Состояние 0
указывает на успех; другие значения указывают на различные ошибки.
Это вызовы метода checkPermission
с RuntimePermission("exitVM."+status)
разрешение.
Если Вы переопределяете этот метод, то следует сделать звонок super.checkExit
в точке переопределенный метод обычно выдавал бы исключение.
status
- статус выхода.SecurityException
- если у вызывающего потока нет разрешения, чтобы остановить виртуальную машину Java с указанным состоянием.exit
, checkPermission
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
public void checkLink(String lib)
SecurityException
если вызывающий поток не позволяется динамической ссылке код библиотеки, определенный строковым файлом параметра. Параметром является или простое имя библиотеки или полное имя файла. Этот метод вызывается для текущего менеджера безопасности методами 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
public void checkRead(FileDescriptor fd)
SecurityException
если вызывающему потоку не позволяют читать из указанного дескриптора файла. Это вызовы метода checkPermission
с RuntimePermission("readFileDescriptor")
разрешение.
Если Вы переопределяете этот метод, то следует сделать звонок super.checkRead
в точке переопределенный метод обычно выдавал бы исключение.
fd
- системно-зависимый дескриптор файла.SecurityException
- если у вызывающего потока нет разрешения, чтобы получить доступ к указанному дескриптору файла.NullPointerException
- если параметр дескриптора файла null
.FileDescriptor
, checkPermission
public void checkRead(String file)
SecurityException
если вызывающему потоку не позволяют считать файл, определенный строковым параметром. Это вызовы метода checkPermission
с FilePermission(file,"read")
разрешение.
Если Вы переопределяете этот метод, то следует сделать звонок super.checkRead
в точке переопределенный метод обычно выдавал бы исключение.
file
- системно-зависимое имя файла.SecurityException
- если у вызывающего потока нет разрешения, чтобы получить доступ к указанному файлу.NullPointerException
- если file
параметр null
.checkPermission
public void checkRead(String file, Object context)
SecurityException
если указанному контексту защиты не позволяют считать файл, определенный строковым параметром. Контекст должен быть контекстом защиты, возвращенным предыдущим звонком getSecurityContext
. Если context
экземпляр AccessControlContext
тогда AccessControlContext.checkPermission
метод будет вызван с FilePermission(file,"read")
разрешение.
Если context
не экземпляр AccessControlContext
тогда a SecurityException
бросается.
Если Вы переопределяете этот метод, то следует сделать звонок super.checkRead
в точке переопределенный метод обычно выдавал бы исключение.
file
- системно-зависимое имя файла.context
- системно-зависимый контекст защиты.SecurityException
- если указанный контекст защиты не является экземпляром AccessControlContext
(например, null
), или не имеет разрешения, чтобы считать указанный файл.NullPointerException
- если file
параметр null
.getSecurityContext()
, AccessControlContext.checkPermission(java.security.Permission)
public void checkWrite(FileDescriptor fd)
SecurityException
если вызывающему потоку не позволяют записать в указанный дескриптор файла. Это вызовы метода checkPermission
с RuntimePermission("writeFileDescriptor")
разрешение.
Если Вы переопределяете этот метод, то следует сделать звонок super.checkWrite
в точке переопределенный метод обычно выдавал бы исключение.
fd
- системно-зависимый дескриптор файла.SecurityException
- если у вызывающего потока нет разрешения, чтобы получить доступ к указанному дескриптору файла.NullPointerException
- если параметр дескриптора файла null
.FileDescriptor
, checkPermission
public void checkWrite(String file)
SecurityException
если вызывающему потоку не позволяют записать в файл, определенный строковым параметром. Это вызовы метода checkPermission
с FilePermission(file,"write")
разрешение.
Если Вы переопределяете этот метод, то следует сделать звонок super.checkWrite
в точке переопределенный метод обычно выдавал бы исключение.
file
- системно-зависимое имя файла.SecurityException
- если у вызывающего потока нет разрешения, чтобы получить доступ к указанному файлу.NullPointerException
- если file
параметр null
.checkPermission
public void checkDelete(String file)
SecurityException
если вызывающему потоку не позволяют удалить указанный файл. Этот метод вызывается для текущего менеджера безопасности delete
метод класса File
.
Это вызовы метода checkPermission
с FilePermission(file,"delete")
разрешение.
Если Вы переопределяете этот метод, то следует сделать звонок super.checkDelete
в точке переопределенный метод обычно выдавал бы исключение.
file
- системно-зависимое имя файла.SecurityException
- если у вызывающего потока нет разрешения, чтобы удалить файл.NullPointerException
- если file
параметр null
.File.delete()
, checkPermission
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
public void checkConnect(String host, int port, Object context)
SecurityException
если указанному контексту защиты не позволяют открыть сокетное соединение с указанным узлом и номером порта. Номер порта -1
указывает, что метод вызова пытается определить IP-адрес указанного имени хоста.
Если context
не экземпляр AccessControlContext
тогда a SecurityException
бросается.
Иначе, номер порта проверяется. Если это не равно-1, context
's checkPermission
метод вызывают с a SocketPermission(host+":"+port,"connect")
разрешение. Если порт равен-1, то context
's checkPermission
метод вызывают с a SocketPermission(host,"resolve")
разрешение.
Если Вы переопределяете этот метод, то следует сделать звонок super.checkConnect
в точке переопределенный метод обычно выдавал бы исключение.
host
- порт имени хоста, чтобы соединиться с.port
- порт протокола, чтобы соединиться с.context
- системно-зависимый контекст защиты.SecurityException
- если указанный контекст защиты не является экземпляром AccessControlContext
(например, null
), или не имеет разрешения, чтобы открыть сокетное соединение с указанным host
и port
.NullPointerException
- если host
параметр null
.getSecurityContext()
, AccessControlContext.checkPermission(java.security.Permission)
public void checkListen(int port)
SecurityException
если вызывающему потоку не позволяют ожидать запроса соединения на указанном локальном номере порта. Если порт не 0, это вызовы метода checkPermission
с SocketPermission("localhost:"+port,"listen")
. Если порт является нулем, это вызовы метода checkPermission
с SocketPermission("localhost:1024-","listen").
Если Вы переопределяете этот метод, то следует сделать звонок super.checkListen
в точке переопределенный метод обычно выдавал бы исключение.
port
- локальный порт.SecurityException
- если у вызывающего потока нет разрешения, чтобы слушать на указанном порту.checkPermission
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
public void checkMulticast(InetAddress maddr)
SecurityException
если вызывающему потоку не позволяют использовать (присоединяются/уезжают/отправляют/получают) к многоадресной передаче IP. Это вызовы метода checkPermission
с java.net.SocketPermission(maddr.getHostAddress(), "accept,connect")
разрешение.
Если Вы переопределяете этот метод, то следует сделать звонок super.checkMulticast
в точке переопределенный метод обычно выдавал бы исключение.
maddr
- Интернет-группа адресуется, чтобы использоваться.SecurityException
- если вызывающему потоку не позволяют использовать (присоединяются/уезжают/отправляют/получают) к многоадресной передаче IP.NullPointerException
- если параметр адреса null
.checkPermission
@Deprecated public void checkMulticast(InetAddress maddr, byte ttl)
SecurityException
если вызывающему потоку не позволяют использовать (присоединяются/уезжают/отправляют/получают) к многоадресной передаче IP. Это вызовы метода checkPermission
с java.net.SocketPermission(maddr.getHostAddress(), "accept,connect")
разрешение.
Если Вы переопределяете этот метод, то следует сделать звонок super.checkMulticast
в точке переопределенный метод обычно выдавал бы исключение.
maddr
- Интернет-группа адресуется, чтобы использоваться.ttl
- значение в использовании, если это многоадресно передается, передается. Отметьте: эта определенная реализация не использует ttl параметр.SecurityException
- если вызывающему потоку не позволяют использовать (присоединяются/уезжают/отправляют/получают) к многоадресной передаче IP.NullPointerException
- если параметр адреса null
.checkPermission
public void checkPropertiesAccess()
SecurityException
если вызывающему потоку не позволяют получить доступ или изменить системные свойства. Этот метод используется getProperties
и setProperties
методы класса System
.
Это вызовы метода checkPermission
с PropertyPermission("*", "read,write")
разрешение.
Если Вы переопределяете этот метод, то следует сделать звонок super.checkPropertiesAccess
в точке переопределенный метод обычно выдавал бы исключение.
SecurityException
- если у вызывающего потока нет разрешения, чтобы получить доступ или изменить системные свойства.System.getProperties()
, System.setProperties(java.util.Properties)
, checkPermission
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
public boolean checkTopLevelWindow(Object window)
false
если вызывающему потоку не доверяют, чтобы перевести в рабочее состояние высокоуровневое окно, обозначенное window
параметр. В этом случае вызывающая сторона может все еще решить показать окно, но окно должно включать своего рода визуальное предупреждение. Если метод возвращается true
, тогда окно можно показать без любых специальных ограничений. См. класс Window
для получения дополнительной информации о доверяемых и недоверяемых окнах.
Это вызовы метода checkPermission
с AWTPermission("showWindowWithoutWarningBanner")
разрешение, и возвраты true
если SecurityException не бросается, иначе он возвращается false
.
Если Вы переопределяете этот метод, то следует сделать звонок super.checkTopLevelWindow
в точке обычно возвращался бы переопределенный метод false
, и значение super.checkTopLevelWindow
должен быть возвращен.
window
- новое окно, которое создается.true
если вызывающему потоку доверяют, чтобы поднять высокоуровневые окна; false
иначе.NullPointerException
- если window
параметр null
.Window
, checkPermission
public void checkPrintJobAccess()
SecurityException
если вызывающему потоку не позволяют инициировать запрос задания печати. Это вызовы метода checkPermission
с RuntimePermission("queuePrintJob")
разрешение.
Если Вы переопределяете этот метод, то следует сделать звонок super.checkPrintJobAccess
в точке переопределенный метод обычно выдавал бы исключение.
SecurityException
- если у вызывающего потока нет разрешения, чтобы инициировать запрос задания печати.checkPermission
public void checkSystemClipboardAccess()
SecurityException
если вызывающему потоку не позволяют получить доступ к системному буферу обмена. Это вызовы метода checkPermission
с AWTPermission("accessClipboard")
разрешение.
Если Вы переопределяете этот метод, то следует сделать звонок super.checkSystemClipboardAccess
в точке переопределенный метод обычно выдавал бы исключение.
SecurityException
- если у вызывающего потока нет разрешения, чтобы получить доступ к системному буферу обмена.checkPermission
public void checkAwtEventQueueAccess()
SecurityException
если вызывающему потоку не позволяют получить доступ к очереди событий AWT. Это вызовы метода checkPermission
с AWTPermission("accessEventQueue")
разрешение.
Если Вы переопределяете этот метод, то следует сделать звонок super.checkAwtEventQueueAccess
в точке переопределенный метод обычно выдавал бы исключение.
SecurityException
- если у вызывающего потока нет разрешения, чтобы получить доступ к очереди событий AWT.checkPermission
public void checkPackageAccess(String pkg)
SecurityException
если вызывающему потоку не позволяют получить доступ к пакету, определенному параметром. Этот метод используется loadClass
метод загрузчиков класса.
Этот метод сначала получает список ограниченных пакетов, получая список разделенных запятой значений из звонка java.security.Security.getProperty("package.access")
, и проверки, чтобы видеть, если pkg
запускается с или равняется любому из ограниченных пакетов. Если это делает, то checkPermission
вызывается с RuntimePermission("accessClassInPackage."+pkg)
разрешение.
Если этот метод переопределяется, то super.checkPackageAccess
должен быть вызван как первая строка в переопределенном методе.
pkg
- имя пакета.SecurityException
- если у вызывающего потока нет разрешения, чтобы получить доступ к указанному пакету.NullPointerException
- если параметр имени пакета null
.loadClass
, getProperty
, checkPermission
public void checkPackageDefinition(String pkg)
SecurityException
если вызывающему потоку не позволяют определить классы в пакете, определенном параметром. Этот метод используется loadClass
метод некоторых загрузчиков класса.
Этот метод сначала получает список ограниченных пакетов, получая список разделенных запятой значений из звонка java.security.Security.getProperty("package.definition")
, и проверки, чтобы видеть, если pkg
запускается с или равняется любому из ограниченных пакетов. Если это делает, то checkPermission
вызывается с RuntimePermission("defineClassInPackage."+pkg)
разрешение.
Если этот метод переопределяется, то super.checkPackageDefinition
должен быть вызван как первая строка в переопределенном методе.
pkg
- имя пакета.SecurityException
- если у вызывающего потока нет разрешения, чтобы определить классы в указанном пакете.ClassLoader.loadClass(java.lang.String, boolean)
, getProperty
, checkPermission
public void checkSetFactory()
SecurityException
если вызывающему потоку не позволяют установить фабрику сокета, используемую ServerSocket
или Socket
, или потоковая фабрика обработчиков, используемая URL
. Это вызовы метода checkPermission
с RuntimePermission("setFactory")
разрешение.
Если Вы переопределяете этот метод, то следует сделать звонок super.checkSetFactory
в точке переопределенный метод обычно выдавал бы исключение.
SecurityException
- если у вызывающего потока нет разрешения, чтобы определить фабрику сокета или потоковую фабрику обработчиков.setSocketFactory
, setSocketImplFactory
, setURLStreamHandlerFactory
, checkPermission
public void checkMemberAccess(Class<?> clazz, int which)
SecurityException
если вызывающему потоку не позволяют получить доступ к элементам. Политика по умолчанию состоит в том, чтобы предоставить доступ к элементам PUBLIC, так же как доступ к классам, у которых есть тот же самый загрузчик класса как вызывающая сторона. Во всех других случаях, это вызовы метода checkPermission
с RuntimePermission("accessDeclaredMembers")
разрешение.
Если этот метод переопределяется, то звонок super.checkMemberAccess
не может быть сделан, как реализация по умолчанию checkMemberAccess
полагается на код, проверяемый, будучи в глубине стека 4.
clazz
- класс, на котором должно быть выполнено отражение.which
- тип доступа, ОБЩЕСТВЕННОСТИ или ОБЪЯВЛЕННЫЙ.SecurityException
- если у вызывающей стороны нет разрешения, чтобы получить доступ к элементам.NullPointerException
- если clazz
параметр null
.Member
, checkPermission
public void checkSecurityAccess(String target)
Если требуемое разрешение позволяется, этот метод возвращается спокойно. Если отрицающийся, SecurityException повышается.
Этот метод создает a SecurityPermission
объект для данного разрешения предназначается для имени и вызовов checkPermission
с этим.
См. документацию для
поскольку список возможного разрешения предназначается для имен. SecurityPermission
Если Вы переопределяете этот метод, то следует сделать звонок super.checkSecurityAccess
в точке переопределенный метод обычно выдавал бы исключение.
target
- целевое имя SecurityPermission
.SecurityException
- если у вызывающего потока нет разрешения для запрошенного доступа.NullPointerException
- если target
нуль.IllegalArgumentException
- если target
пусто.checkPermission
public ThreadGroup getThreadGroup()
ThreadGroup
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.