Spec-Zone .ru
спецификации, руководства, описания, API
Содержание | Предыдущий | Следующий | Индекс

20.17 Класс java.lang.SecurityManager

public abstract class SecurityManager {
	protected boolean inCheck;
	protected SecurityManager()
throws SecurityException; protected Class[] getClassContext(); protected int classDepth(String name); protected boolean inClass(String name); protected ClassLoader currentClassLoader(); protected int classLoaderDepth(); protected boolean inClassLoader(); public boolean getInCheck(); public void checkCreateClassLoader()
throws SecurityException; public void checkAccess(Thread t)
throws SecurityException; public void checkAccess(ThreadGroup g)
throws SecurityException; public void checkExit(int status)
throws SecurityException; public void checkExec(String cmd)
throws SecurityException; public void checkPropertiesAccess()
throws SecurityException; public void checkPropertyAccess(String key)
throws SecurityException; public void checkLink(String libname)
throws SecurityException; public void checkRead(int fd)
throws SecurityException; public void checkRead(String file)
throws SecurityException; public void checkWrite(int fd)
throws SecurityException; public void checkWrite(String file)
throws SecurityException; public void checkDelete(String file)
throws SecurityException; public void checkConnect(String host, int port)
throws SecurityException; public void checkListen(int port)
throws SecurityException; public void checkAccept(String host, int port)
throws SecurityException; public void checkSetFactory()
throws SecurityException; public boolean checkTopLevelWindow()
throws SecurityException; public void checkPackageAccess(String packageName)
throws SecurityException; public void checkPackageDefinition(String packageName)
throws SecurityException; }
У рабочей программы Java может быть менеджер безопасности, который является экземпляром класса SecurityManager. Текущий менеджер безопасности является тем, возвращенным вызовом метода System.getSecurityManager() (§20.18.4).

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


SecurityManager security = System.getSecurityManager();
if (security != null) {
	security.checkXXX(arguments);
}
Менеджеру безопасности, таким образом, дают возможность предотвратить завершение работы, выдавая исключение. Обычное соглашение состоит в том, что подпрограмма проверки менеджера безопасности просто возвращается, если работа разрешается, или бросает a SecurityException если работа не разрешается. В одном случае, а именно, checkTopLevelWindow (§20.17.27), подпрограмма проверки должна возвратить a boolean значение, чтобы указать на один из двух уровней разрешения.

20.17.1 protected boolean inCheck = false;

Условно, это поле должно быть присвоено значение true всякий раз, когда проверка защиты происходит. Это имеет значение, когда одна из подпрограмм проверки должна вызвать внешний код, чтобы сделать его работу. Вне кода может тогда использовать метод getInCheck (§20.17.9), чтобы протестировать состояние этого флага.

20.17.2 protected SecurityManager()
throws SecurityException

Эти проверки конструктора, чтобы видеть, был ли менеджер безопасности уже установлен (§20.18.5); если так, создание другого менеджера безопасности не разрешается, и таким образом, a SecurityException бросается.

20.17.3 protected Class[] getClassContext()

Этот служебный метод для менеджеров безопасности сканирует стек выполнения для текущего потока и возвращает массив с одним компонентом для каждого стекового фрейма. Компонент в позиции 0 соответствует вершине стека. Если компонент является a Class объект, тогда соответствующий стековый фрейм для вызова метода класса, представленного этим Class объект.

20.17.4 protected int classDepth(String name)

Этот служебный метод для менеджеров безопасности ищет стек выполнения текущий поток, чтобы найти последний раз вызванный метод, выполнение которого еще не завершилось и чей класс имеет name как его полностью определенное имя. Если такой метод находится, его расстояние от вершины стека возвращается как неотрицательное целое число; иначе, -1 возвращается.

20.17.5 protected boolean inClass(String name)

Этот служебный метод для менеджеров безопасности ищет стек выполнения текущий поток, чтобы найти последний раз вызванный метод, выполнение которого еще не завершилось и чей класс имеет name как его полностью определенное имя. Если такой метод находится, true возвращается; иначе, false возвращается.

20.17.6 protected ClassLoader currentClassLoader()

Этот служебный метод для менеджеров безопасности ищет стек выполнения текущий поток, чтобы найти последний раз вызванный метод, выполнение которого еще не завершилось и чей класс создавался загрузчиком класса (§20.14). Если такой метод находится, ссылка на ClassLoader объект для его класса возвращается; иначе, null возвращается.

20.17.7 protected int classLoaderDepth()

Этот служебный метод для менеджеров безопасности ищет стек выполнения текущий поток, чтобы найти последний раз вызванный метод, выполнение которого еще не завершилось и чей класс создавался загрузчиком класса (§20.14). Если такой метод находится, его расстояние от вершины стека возвращается как неотрицательное целое число; иначе, -1 возвращается.

20.17.8 protected boolean inClassLoader()

Этот служебный метод для менеджеров безопасности ищет стек выполнения текущий поток, чтобы найти последний раз вызванный метод, выполнение которого еще не завершилось и чей класс создавался загрузчиком класса (§20.14). Если такой метод находится, true возвращается; иначе false возвращается.

20.17.9 public boolean getInCheck()

Значение inCheck поле (§20.17.1) возвращается.

20.17.10 public void checkCreateClassLoader()
throws SecurityException

Общий контракт этого метода - то, что он должен бросить a SecurityException если создание загрузчика класса не разрешается.

Этот метод вызывается для текущего менеджера безопасности (§20.18.4) конструктором для класса ClassLoader (§20.14.1).

checkCreateClassLoader метод определяется классом SecurityManager всегда броски a SecurityException. Подкласс должен переопределить этот метод, если работа создания загрузчика класса должна быть разрешена с установленным менеджером безопасности.

20.17.11 public void checkAccess(Thread t)
throws SecurityException

Общий контракт этого метода - то, что он должен бросить a SecurityException если работа, которая изменила бы поток t не разрешается.

Этот метод вызывается для текущего менеджера безопасности (§20.18.4) методом checkAccess (§20.20.12) класса Thread.

checkAccess метод определяется классом SecurityManager всегда броски a SecurityException. Подкласс должен переопределить этот метод, если работа модификации потока должна быть разрешена с установленным менеджером безопасности.

20.17.12 public void checkAccess(ThreadGroup g)
throws SecurityException

Общий контракт этого метода - то, что он должен бросить a SecurityException если работа, которая изменила бы группу потока g не разрешается.

Этот метод вызывается для текущего менеджера безопасности (§20.18.4) методом checkAccess (§20.21.4) класса ThreadGroup.

checkAccess метод определяется классом SecurityManager всегда броски a SecurityException. Подкласс должен переопределить этот метод, если групповая работа модификации потока должна быть разрешена с установленным менеджером безопасности.

20.17.13 public void checkExit(int status)
throws SecurityException

Общий контракт этого метода - то, что он должен бросить a SecurityException если бы работа выхода, которая завершила бы рабочую виртуальную машину Java, не разрешается.

Этот метод вызывается для текущего менеджера безопасности (§20.18.4) методом exit (§20.16.2) класса Runtime.

checkExit метод определяется классом SecurityManager всегда броски a SecurityException. Подкласс должен переопределить этот метод, если работа выхода должна быть разрешена с установленным менеджером безопасности.

20.17.14 public void checkExec(String cmd)
throws SecurityException

Общий контракт этого метода - то, что он должен бросить a SecurityException если команда exec работа не разрешается. Параметр cmd имя команды, которая будет выполняться.

Этот метод вызывается для текущего менеджера безопасности (§20.18.4) методом exec (§20.16.6) класса Runtime.

checkExec метод определяется классом SecurityManager всегда броски a SecurityException. Подкласс должен переопределить этот метод если команда exec работа должна быть разрешена с установленным менеджером безопасности.

20.17.15 public void checkPropertiesAccess()
throws SecurityException

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

Этот метод вызывается для текущего менеджера безопасности (§20.18.4) методами getProperties (§20.18.7) и setProperties (§20.18.8) класса System.

checkPropertiesAccess метод определяется классом SecurityManager всегда броски a SecurityException. Подкласс должен переопределить этот метод, если работа доступа свойств должна быть разрешена с установленным менеджером безопасности.

20.17.16 public void checkPropertyAccess(String key)
throws SecurityException

Общий контракт этого метода - то, что он должен бросить a SecurityException получая значение системного свойства, названного key не разрешается.

Этот метод вызывается для текущего менеджера безопасности (§20.18.4) методами getProperty из одного параметра (§20.18.9) и getProperty из двух параметров (§20.18.10) класса System.

checkPropertyAccess метод определяется классом SecurityManager всегда броски a SecurityException. Подкласс должен переопределить этот метод, если доступ к значению системного свойства должен быть разрешен с установленным менеджером безопасности.

20.17.17 public void checkLink(String libname)
throws SecurityException

Общий контракт этого метода - то, что он должен бросить a SecurityException если динамическое подключение указанного файла кода библиотеки не разрешается. Параметром может быть простое имя библиотеки или полное имя файла.

Этот метод вызывается для текущего менеджера безопасности (§20.18.4) методами load (§20.16.13) и loadLibrary (§20.16.14) класса Runtime.

checkLink метод определяется классом SecurityManager всегда броски a SecurityException. Подкласс должен переопределить этот метод, если динамическая работа соединения кода должна быть разрешена с установленным менеджером безопасности.

20.17.18 public void checkRead(int fd)
throws SecurityException

Общий контракт этого метода - то, что он должен бросить a SecurityException если создание входного потока, используя указанный дескриптор файла не разрешается.

Этот метод вызывается для текущего менеджера безопасности (§20.18.4) одним конструктором для java.io.FileInputStream (§22.4.3).

checkRead метод определяется классом SecurityManager всегда броски a SecurityException. Подкласс должен переопределить этот метод, если создание входного потока от существующего дескриптора файла должно быть разрешено с установленным менеджером безопасности.

20.17.19 public void checkRead(String file)
throws SecurityException

Общий контракт этого метода - то, что он должен бросить a SecurityException если чтение указанного файла или каталога, или исследование связанной информации о файловой системе, или тестирование на ее существование, не разрешаются.

Этот метод вызывается для текущего менеджера безопасности (§20.18.4) двумя конструкторами для java.io.FileInputStream (§22.4.1, §22.4.2); двумя конструкторами для java.io.RandomAccessFile (§22.23.1, §22.23.2); и методами exists (§22.24.16), canRead (§22.24.17), isFile (§22.24.19), isDirectory (§22.24.20), lastModified (§22.24.21), length (§22.24.22), list без параметров (§22.24.25), и list с одним параметром (§22.24.26) класса java.io.File.

checkRead метод определяется классом SecurityManager всегда броски a SecurityException. Подкласс должен переопределить этот метод, если доступ для чтения к файлу должен быть разрешен с установленным менеджером безопасности.

20.17.20 public void checkWrite(int fd)
throws SecurityException

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

Этот метод вызывается для текущего менеджера безопасности (§20.18.4) одним конструктором для java.io.FileOutputStream (§22.16.3).

checkWrite метод определяется классом SecurityManager всегда броски a SecurityException. Подкласс должен переопределить этот метод, если создание потока вывода от существующего дескриптора файла должно быть разрешено с установленным менеджером безопасности.

20.17.21 public void checkWrite(String file)
throws SecurityException

Общий контракт этого метода - то, что он должен бросить a SecurityException если запись, изменяя, создавая (для вывода), или переименовывая указанный файл или каталог не разрешается.

Этот метод вызывается для текущего менеджера безопасности (§20.18.4) двумя конструкторами для java.io.FileOutputStream (§22.16.1, §22.16.2); двумя конструкторами для java.io.RandomAccessFile (§22.23.1, §22.23.2); и методами canWrite (§22.24.18), mkdir (§22.24.23), и renameTo (§22.24.27) класса java.io.File.

checkWrite метод определяется классом SecurityManager всегда броски a SecurityException. Подкласс должен переопределить этот метод, если доступ для записи к файлу должен быть разрешен с установленным менеджером безопасности.

20.17.22 public void checkDelete(String file)
throws SecurityException

Общий контракт этого метода - то, что он должен бросить a SecurityException если удаление указанного файла не разрешается.

Этот метод вызывается для текущего менеджера безопасности (§20.18.4) методом delete (§22.24.28) класса java.io.File.

checkDelete метод определяется классом SecurityManager всегда броски a SecurityException. Подкласс должен переопределить этот метод, если работа удаления файла должна быть разрешена с установленным менеджером безопасности.

20.17.23 public void checkConnect(String host, int port)
throws SecurityException

Общий контракт этого метода - то, что он должен бросить a SecurityException соединяясь с обозначенным port из обозначенной сети host не разрешается.

Этот метод вызывается для текущего менеджера безопасности (§20.18.4) двумя конструкторами для класса java.net.Socket, методы send и receive из класса java.net.DatagramSocket, и методы getByName и getAllByName из класса java.net.InetAddress. (Эти классы не документируются в эту спецификацию. См. Прикладной программный интерфейс Java.)

checkConnect метод определяется классом SecurityManager всегда броски a SecurityException. Подкласс должен переопределить этот метод, если сетевое соединение должно быть разрешено с установленным менеджером безопасности.

20.17.24 public void checkListen(int port)
throws SecurityException

Общий контракт этого метода - то, что он должен бросить a SecurityException слушая указанную локальную сеть port не разрешается.

Этот метод вызывается для текущего менеджера безопасности (§20.18.4) конструктором одного параметра за класс java.net.DatagramSocket и конструкторами для класса java.net.ServerSocket. (Эти классы не документируются в эту спецификацию. См. Прикладной программный интерфейс Java.)

checkListen метод определяется классом SecurityManager всегда броски a SecurityException. Подкласс должен переопределить этот метод, если слушание локального сетевого порта должно быть разрешено с установленным менеджером безопасности.

20.17.25 public void checkAccept(String host, int port)
throws SecurityException

Общий контракт этого метода - то, что он должен бросить a SecurityException принимая соединение от обозначенного port из обозначенной сети host не разрешается.

Этот метод вызывается для текущего менеджера безопасности (§20.18.4) методом accept из класса java.net.ServerSocket. (Этот класс не документируется в эту спецификацию. См. Прикладной программный интерфейс Java.)

checkAccept метод определяется классом SecurityManager всегда броски a SecurityException. Подкласс должен переопределить этот метод, признавая, что сетевое соединение должно быть разрешено с установленным менеджером безопасности.

20.17.26 public void checkSetFactory()
throws SecurityException

Общий контракт этого метода - то, что он должен бросить a SecurityException если установка "фабрики" для сокета, сокета сервера, URL, или соединения URL не разрешается.

Этот метод вызывается для текущего менеджера безопасности (§20.18.4):

	method setSocketFactory of class java.net.ServerSocket
	method setSocketImplFactory of class java.net.Socket
	method setURLStreamHandlerFactory of class java.net.URL
	method setContentHandlerFactory of class java.net.URLConnection
(Эти классы не документируются в эту спецификацию. См. Прикладной программный интерфейс Java.)

checkSetFactory метод определяется классом SecurityManager всегда броски a SecurityException. Подкласс должен переопределить этот метод, если работа установки фабрики должна быть разрешена с установленным менеджером безопасности.

20.17.27 public boolean checkTopLevelWindow()
throws SecurityException

Общий контракт этого метода - то, что он должен бросить a SecurityException если создание высокоуровневого окна не разрешается. Если создание высокоуровневого окна разрешается, то этот метод должен возвратиться false если окно должно перенести четкое предупреждение, что это - окно для исполнимого апплета. Возвращенное значение true средства, что менеджер безопасности не устанавливает ограничения для создания окна.

Этот метод вызывается для текущего менеджера безопасности (§20.18.4) конструкторами для класса java.awt.Window. (Этот класс не документируется в эту спецификацию. См. Прикладной программный интерфейс Java.)

checkTopLevelWindow метод определяется классом SecurityManager всегда возвраты false. Подкласс должен переопределить этот метод, если работа создания окна должна быть неограниченной или запрещена с установленным менеджером безопасности.

20.17.28 public void checkPackageAccess(String packageName)
throws SecurityException

Общий контракт этого метода - то, что он должен бросить a SecurityException если текущему апплету не разрешают получить доступ к пакету, названному параметром. Этот метод предназначается для использования способными к Java веб-браузерами.

checkPackageAccess метод определяется классом SecurityManager всегда броски a SecurityException. Подкласс должен переопределить этот метод, если доступ пакета апплетом должен быть разрешен с установленным менеджером безопасности.

20.17.29 public void checkPackageDefinition(String packageName)
throws SecurityException

Общий контракт этого метода - то, что он должен бросить a SecurityException если текущему апплету не разрешают определить класс (или интерфейс) в пакете, названном параметром. Этот метод предназначается для использования способными к Java веб-браузерами.

checkPackageAccess метод определяется классом SecurityManager всегда броски a SecurityException. Подкласс должен переопределить этот метод, если определение класса апплетом должно быть разрешено с установленным менеджером безопасности.


Содержание | Предыдущий | Следующий | Индекс

Спецификация языка Java (HTML, сгенерированный Блинчиком "сюзет" Pelouch 24 февраля 1998)
Авторское право © Sun Microsystems, Inc 1996 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к doug.kramer@sun.com

free hit counter