Spec-Zone .ru
спецификации, руководства, описания, API
|
java.lang.SecurityManager
public abstract classУ рабочей программы Java может быть менеджер безопасности, который является экземпляром классаSecurityManager
{ protected booleaninCheck
; protectedSecurityManager
()
throws SecurityException; protected Class[]getClassContext
(); protected intclassDepth
(String name); protected booleaninClass
(String name); protected ClassLoadercurrentClassLoader
(); protected intclassLoaderDepth
(); protected booleaninClassLoader
(); public booleangetInCheck
(); public voidcheckCreateClassLoader
()
throws SecurityException; public voidcheckAccess
(Thread t)
throws SecurityException; public voidcheckAccess
(ThreadGroup g)
throws SecurityException; public voidcheckExit
(int status)
throws SecurityException; public voidcheckExec
(String cmd)
throws SecurityException; public voidcheckPropertiesAccess
()
throws SecurityException; public voidcheckPropertyAccess
(String key)
throws SecurityException; public voidcheckLink
(String libname)
throws SecurityException; public voidcheckRead
(int fd)
throws SecurityException; public voidcheckRead
(String file)
throws SecurityException; public voidcheckWrite
(int fd)
throws SecurityException; public voidcheckWrite
(String file)
throws SecurityException; public voidcheckDelete
(String file)
throws SecurityException; public voidcheckConnect
(String host, int port)
throws SecurityException; public voidcheckListen
(int port)
throws SecurityException; public voidcheckAccept
(String host, int port)
throws SecurityException; public voidcheckSetFactory
()
throws SecurityException; public booleancheckTopLevelWindow
()
throws SecurityException; public voidcheckPackageAccess
(String packageName)
throws SecurityException; public voidcheckPackageDefinition
(String packageName)
throws SecurityException; }
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