JavaTM Platform
Standard Ed. 6

java.lang
클래스 SecurityManager

java.lang.Object 
  상위를 확장 java.lang.SecurityManager
직계의 기존의 서브 클래스:
RMISecurityManager


public class SecurityManager
extends Object

시큐리티 매니저란, 어플리케이션이 시큐리티 정책를 구현할 수 있는 클래스입니다. 시큐리티 매니저를 사용하면, 시큐리티를 해치는 우려가 있는 조작을 실행하기 전에, 조작이 무엇으로 있는가 하는 것으로, 시큐리티 문맥내에서 그 조작의 실행이 허가되고 있는지 어떤지가 어플리케이션으로부터 판단할 수 있습니다. 어플리케이션은, 그러한 조작을 금지하거나 허가하거나 할 수가 있습니다.  

SecurityManager 클래스에는, 이름이 check 로 시작되는 메소드가 다수 있습니다. 이러한 메소드는, Java 라이브러리내의 각종 메소드에 의해, 시큐리티를 해칠 가능성이 있는 조작을 실행하기 전에 불려 갑니다. 이러한 check 메소드 호출의 일반적인 예를 다음에 나타냅니다.

     SecurityManager security = System.getSecurityManager();
     if (security ! = null) {
         security.checkXXX(argument,  .  .  .  );
     }
 

이것에 의해, 시큐리티 매니저에게는, 예외를 throw 해 오퍼레이션의 실행을 저지할 기회가 주어집니다. 시큐리티 매니저 루틴은, 조작이 허가되는 경우는 아무것도 실시하지 않고 복귀합니다. 조작이 허가되지 않는 경우는 SecurityException 를 throw 합니다. 다만,checkTopLevelWindow 은 이러한 규약의 유일한 예외로,boolean 치를 돌려줍니다.  

현재의 시큐리티 매니저를 설정하려면 ,System 클래스의 setSecurityManager 메소드를 사용합니다. 현재의 시큐리티 매니저를 가져오려면 getSecurityManager 메소드를 사용합니다.  

지정된 액세스권이 가리키는 액세스 요구가 허가될지 어떨지를 조사하려면 , 특별한 메소드 checkPermission(java.security.Permission) 를 사용합니다. 디폴트의 구현에서는, 다음의 메소드가 불려 갑니다.

AccessController.checkPermission(perm);
 

요구된 액세스가 허가되는 경우에는,checkPermission 는 아무것도 하지 않고 복귀합니다. 허가되지 않는 경우는,SecurityException 가 throw 됩니다.  

Java 2 SDK v1. 2 의 SecurityManager 에 있는 그 외의 check 계 메소드의 디폴트의 구현에서는,SecurityManagercheckPermission 메소드가 불려 갑니다. 이 방법으로, 요구된 조작의 실행에 필요한 액세스권이 호출해 옆thread에 있을지 어떨지를 조사합니다.  

액세스권의 인수가 1 개만의 checkPermission 메소드는 항상, 현재 실행중의 thread의 문맥내에서만 시큐리티 체크를 실행합니다. 그러나 실제로는, 지정된 문맥내에서 실시하는 시큐리티 체크를, 「다른」문맥내로부터 (예를 들어, 워크스 레드내로부터) 실시하지 않으면 안 되는 경우도 있습니다. 이 때문에, 문맥 인수를 가지는 getSecurityContext 메소드 및 checkPermission 메소드가 제공되고 있습니다. getSecurityContext 메소드는, 현재의 호출측 문맥의 snapshot를 돌려줍니다. 디폴트의 구현에서는 AccessControlContext 객체를 돌려줍니다. 호출의 예를 다음에 나타냅니다.

Object context = null;
SecurityManager sm = System.getSecurityManager();
if (sm ! = null) context = sm.getSecurityContext(); 
 

액세스권에 가세해 문맥 객체도 받는 checkPermission 메소드는, 실행중의 thread의 문맥은 아니고, 건네받은 문맥에 따라 액세스를 판정합니다. 이 때문에, 다른 문맥내의 코드는, 액세스권과 직전에 보존한 문맥 객체를 건네주는 것에 의해, 이 메소드를 호출할 수가 있습니다. 다음에 나타내는 호출예에서는, 위의 예로 취득한 시큐리티 매니저 sm 를 사용하고 있습니다.

if (sm ! = null) sm.checkPermission(permission, context);
 

액세스권은, 카테고리 File, Socket, Net, Security, Runtime, Property, AWT, Reflect, Serializable 의 어떤 것인가에 분류됩니다. 이것들 각종의 액세스권 카테고리를 관리하는 클래스는,java.io.FilePermission,java.net.SocketPermission,java.net.NetPermission,java.security.SecurityPermission,java.lang.RuntimePermission,java.util.PropertyPermission,java.awt.AWTPermission,java.lang.reflect.ReflectPermissionjava.io.SerializablePermission 입니다.

FilePermission 와 SocketPermission 이외의 클래스는,java.security.BasicPermission 의 서브 클래스입니다. 이 java.security.BasicPermission 자신은, 액세스권의 톱 레벨인 java.security.Permission 의 추상 서브 클래스입니다. BasicPermission 는, 「exitVM」, 「setFactory」, 「queuePrintJob」라고 한, 계층적 프로퍼티 명명 규칙에 따르는 이름을 포함한 모든 액세스권을 위해서(때문에) 필요한 기능을 정의합니다. 이름의 말미의 「.」의 나머지의 asterisk, 또는 단독의 asterisk는, 와일드 카드 매칭을 지정합니다. 예를 들어, 「a. *」(이)나 「*」은 유효한 이름입니다만, 「*a」나 「a*b」는 무효입니다.

FilePermission 와 SocketPermission 는, 액세스권의 톱 레벨 java.security.Permission 의 서브 클래스입니다. 이러한 클래스는, BasicPermission 보다 복잡한 이름 구문을 가져, BasicPermission 는 아니고 Permission 로부터 직접 서브 클래스화 됩니다. 예를 들어,java.io.FilePermission 객체의 경우, 액세스권의 이름은 파일 또는 디렉토리의 경로명입니다.

액세스권 클래스안에는, 객체에 허가되고 있는 액션을 나타내는 액션 리스트를 가지는 것이 있습니다. 예를 들어 java.io.FilePermission 객체의 경우, 「read, write」라고 한 액션 리스트는, 특정의 파일 또는 지정된 디렉토리에 있는 파일에 대해서 실행할 수 있는 액션을 나타냅니다.

그 외의 액세스권 클래스는, 이름이 붙은 액세스권 (이름 첨부 액세스권)에 사용합니다. 이름 첨부 액세스권은, 이름은 가집니다만, 액션 리스트를 가지지 않습니다. 이름 첨부 액세스권은 있어도 없어도 괜찮습니다.

주:모든 액세스권을 암묵적으로 지정하는 java.security.AllPermission 라고 하는 액세스권도 있습니다. 이것은, 모든 (혹은 많은) 액세스권을 요구하는 복수의 태스크를 실행할 필요가 있는, 시스템 관리 책임자의 작업을 단순화하기 위한 액세스권입니다.  

액세스권에 관한 정보에 대해서는,「JDK 에서의 액세스권」을 참조해 주세요. 이 문서에는, SecurityManager 의 각종 check 메소드나, 그러한 메소드의 디폴트의 구현에 필요한 액세스권의 일람표가 있습니다. 또, 액세스권을 필요로 하는 버젼 1.2 의 모든 메소드와 각 메소드에 필요한 액세스권을 정리한 표도 있습니다.  

JDK 에서의 SecurityManager 에 관한 변경점과 1.1 형식의 시큐리티 매니저를 이식할 때의 어드바이스에 대해서는,시큐리티의 문서를 참조해 주세요.

도입된 버젼:
JDK1. 0
관련 항목:
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)
          지정된 호스트와 포트 번호로부터의 소켓 접속을 받는 것이, 호출측 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkAccess (Thread  t)
          호출측의 thread가 thread 인수의 수정을 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkAccess (ThreadGroup  g)
          호출측의 thread가, thread 그룹의 인수를 수정하는 것을 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkAwtEventQueueAccess ()
          AWT 이벤트 큐에의 액세스가 호출해 옆thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkConnect (String  host, int port)
          지정된 호스트와 포트 번호에의 소켓 접속을 오픈하는 것이, 호출측 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkConnect (String  host, int port, Object  context)
          지정된 시큐리티 문맥이, 지정된 호스트와 포트 번호에의 소켓 접속을 오픈하는 액세스권을 가지고 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkCreateClassLoader ()
          호출측의 thread가 새로운 클래스 로더의 작성을 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkDelete (String  file)
          지정된 파일을 삭제하는 것이 호출측 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkExec (String  cmd)
          서브 프로세스의 작성이 호출해 옆의 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkExit (int status)
          지정된 상태 코드로 Java 가상 머신을 정지시키는 허가를, 호출측의 thread가 가지고 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkLink (String  lib)
          캐릭터 라인 인수 파일로 지정된 라이브러리 코드에의 동적 링크가, 호출측의 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkListen (int port)
          지정된 로컬 포트 번호로 접속 요구를 대기하는 것이 호출측 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkMemberAccess (Class <? > clazz, int which)
          멤버에게로의 액세스가 호출해 옆thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkMulticast (InetAddress  maddr)
          IP 멀티 캐스트 (join/leave/send/receive)의 사용이 호출해 옆thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkMulticast (InetAddress  maddr, byte ttl)
          추천 되고 있지 않습니다.  대신에 #checkPermission(java.security.Permission)를 사용한다
 void checkPackageAccess (String  pkg)
          인수로 지정된 패키지에의 액세스가 호출해 옆thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkPackageDefinition (String  pkg)
          인수로 지정된 패키지내의 클래스를 정의하는 것이 호출측 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkPermission (Permission  perm)
          지정된 액세스권으로 요구한 액세스가, 현재 유효한 시큐리티 정책에 비추어 허가되지 않았던 경우에 SecurityException 를 throw 합니다.
 void checkPermission (Permission  perm, Object  context)
          지정된 시큐리티 문맥에 대해, 지정된 액세스권이 가리키는 자원에의 액세스가 거부되었을 경우에 SecurityException 를 throw 합니다.
 void checkPrintJobAccess ()
          인쇄 작업 요구의 개시가 호출해 옆thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkPropertiesAccess ()
          시스템 프로퍼티의 액세스 또는 수정이 호출해 옆thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkPropertyAccess (String  key)
          key 로 지정된 시스템 프로퍼티에의 액세스가, 호출측 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkRead (FileDescriptor  fd)
          지정된 파일 기술자로부터의 read가 호출해 옆의 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkRead (String  file)
          캐릭터 라인 인수로 지정된 파일의 read가 호출해 옆의 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkRead (String  file, Object  context)
          캐릭터 라인 인수로 지정된 파일을 읽어내는 허가가, 지정된 시큐리티 문맥에 없는 경우에,SecurityException 를 throw 합니다.
 void checkSecurityAccess (String  target)
          지정된 액세스권 타겟명의 액세스권을 허가하든가, 혹은 거부하는지를 판정합니다.
 void checkSetFactory ()
          ServerSocket 또는 Socket 가 사용하는 소켓 팩토리, 또는 URL 가 사용하는 스트림 핸들러 팩토리를 설정하는 것이 호출측 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkSystemClipboardAccess ()
          시스템 클립보드에의 액세스가 호출해 옆thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 boolean checkTopLevelWindow (Object  window)
          window 인수로 지정된 톱 레벨의 윈도우를 표시하기 위한 신뢰가 호출해 옆thread에 없는 경우에,false 를 돌려줍니다.
 void checkWrite (FileDescriptor  fd)
          지정된 파일 기술자에게로의 기입이 호출해 옆thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
 void checkWrite (String  file)
          캐릭터 라인 인수로 지정된 파일에의 기입이 호출해 옆thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.
protected  int classDepth (String  name)
          추천 되고 있지 않습니다.  이 타입의 시큐리티 체크는 추천 되지 않습니다. 대신에 checkPermission 의 호출을 사용하는 것을 추천합니다.
protected  int classLoaderDepth ()
          추천 되고 있지 않습니다.  이 타입의 시큐리티 체크는 추천 되지 않습니다. 대신에 checkPermission 의 호출을 사용하는 것을 추천합니다.
protected  ClassLoader currentClassLoader ()
          추천 되고 있지 않습니다.  이 타입의 시큐리티 체크는 추천 되지 않습니다. 대신에 checkPermission 의 호출을 사용하는 것을 추천합니다.
protected  Class <? > currentLoadedClass ()
          추천 되고 있지 않습니다.  이 타입의 시큐리티 체크는 추천 되지 않습니다. 대신에 checkPermission 의 호출을 사용하는 것을 추천합니다.
protected  Class [] getClassContext ()
          현재의 예외 실행 스택을 클래스의 배열로서 돌려줍니다.
 boolean getInCheck ()
          추천 되고 있지 않습니다.  이 타입의 시큐리티 체크는 추천 되지 않습니다. 대신에 checkPermission 의 호출을 사용하는 것을 추천합니다.
 Object getSecurityContext ()
          현재의 실행 환경을 캡슐화하는 객체를 생성합니다.
 ThreadGroup getThreadGroup ()
          이 메소드를 호출했을 때에 작성되는, 임의의 새로운 thread의 인스턴스를 생성하기 위한 , thread 그룹을 돌려줍니다.
protected  boolean inClass (String  name)
          추천 되고 있지 않습니다.  이 타입의 시큐리티 체크는 추천 되지 않습니다. 대신에 checkPermission 의 호출을 사용하는 것을 추천합니다.
protected  boolean inClassLoader ()
          추천 되고 있지 않습니다.  이 타입의 시큐리티 체크는 추천 되지 않습니다. 대신에 checkPermission 의 호출을 사용하는 것을 추천합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

inCheck

@Deprecated 
protected boolean inCheck
추천 되고 있지 않습니다.  이 타입의 시큐리티 체크는 추천 되지 않습니다. 대신에 checkPermission 의 호출을 사용하는 것을 추천합니다.
시큐리티 체크가 진행중의 경우, 이 필드는 true 입니다. 그렇지 않은 경우는 false 입니다.

생성자 의 상세

SecurityManager

public SecurityManager()
새로운 SecurityManager 를 구축합니다.

시큐리티 매니저가 벌써 인스톨 되고 있는 경우, 이 메소드는 최초로 시큐리티 매니저의 checkPermission 메소드를 호출합니다. 이 때,RuntimePermission("createSecurityManager") 액세스권을 사용하는 것으로써, 호출측의 thread가 새로운 시큐리티 매니저를 작성하는 액세스권을 확실히 가지도록(듯이) 합니다. 그 결과,SecurityException 가 throw 되는 일이 있습니다.

예외:
SecurityException - 시큐리티 매니저가 벌써 있어, 그 checkPermission 메소드가, 새로운 시큐리티 매니저의 작성을 허가하지 않는 경우
관련 항목:
System.getSecurityManager() , checkPermission , RuntimePermission
메소드의 상세

getInCheck

@Deprecated 
public boolean getInCheck()
추천 되고 있지 않습니다.  이 타입의 시큐리티 체크는 추천 되지 않습니다. 대신에 checkPermission 의 호출을 사용하는 것을 추천합니다.

시큐리티 체크가 진행중인가 어떤가를 판정합니다.

반환값:
inCheck 필드의 값. 시큐리티 체크가 진행중의 경우는 true, 그렇지 않은 경우는 false
관련 항목:
inCheck

getClassContext

protected Class [] getClassContext()
현재의 예외 실행 스택을 클래스의 배열로서 돌려줍니다.  

배열의 길이는, 실행 스택상에 있는 메소드의 수가 됩니다. 인덱스 0 의 요소는 현재 메소드를 실행중의 클래스, 인덱스 1 의 요소는 그 메소드의 호출 클래스가 됩니다.

반환값:
실행 스택

currentClassLoader

@Deprecated 
protected ClassLoader  currentClassLoader()
추천 되고 있지 않습니다.  이 타입의 시큐리티 체크는 추천 되지 않습니다. 대신에 checkPermission 의 호출을 사용하는 것을 추천합니다.

비시스템 클래스 로더를 사용해 정의된 클래스의, 마지막에 실행된 메소드의 클래스 로더를 돌려줍니다. 비시스템 클래스 로더란,ClassLoader.getSystemClassLoader() 에 의해 반환되는 시스템 클래스 로더와도, 게다가 위객체의 어떤 것과도 동일하지 않은 클래스 로더입니다.  

이 메소드는, 다음의 3 개의 경우에 null 코드를 돌려줍니다.

  1. 실행 스택상의 모든 메소드가, 시스템 클래스 로더 또는 게다가 위객체의 1 개를 사용해 정의된 클래스로부터의 것인 경우
  2. 특권 첨부의 최초의 호출측 (AccessController.doPrivileged(java.security.PrivilegedAction) 를 참조)까지의 실행 스택에 있는 모든 메소드가, 시스템 클래스 로더 또는 게다가 위객체의 1 개를 사용해 정의된 클래스의 메소드이다
  3. java.security.AllPermission 를 사용해 checkPermission 를 호출했을 때에, 결과가 SecurityException 는 아니다

반환값:
비시스템 클래스 로더를 사용해 정의된 클래스의, 스택상에서 마지막에 실행된 메소드의 클래스 로더
관련 항목:
getSystemClassLoader , checkPermission

currentLoadedClass

@Deprecated 
protected Class <? > currentLoadedClass()
추천 되고 있지 않습니다.  이 타입의 시큐리티 체크는 추천 되지 않습니다. 대신에 checkPermission 의 호출을 사용하는 것을 추천합니다.

비시스템 클래스 로더를 사용해 정의된 클래스의, 마지막에 실행된 메소드의 클래스 로더를 돌려줍니다. 비시스템 클래스 로더란,ClassLoader.getSystemClassLoader() 에 의해 반환되는 시스템 클래스 로더와도, 게다가 위객체의 어떤 것과도 동일하지 않은 클래스 로더입니다.  

이 메소드는, 다음의 3 개의 경우에 null 코드를 돌려줍니다.

  1. 실행 스택상의 모든 메소드가, 시스템 클래스 로더 또는 게다가 위객체의 1 개를 사용해 정의된 클래스로부터의 것인 경우
  2. 특권 첨부의 최초의 호출측 (AccessController.doPrivileged(java.security.PrivilegedAction) 를 참조)까지의 실행 스택에 있는 모든 메소드가, 시스템 클래스 로더 또는 게다가 위객체의 1 개를 사용해 정의된 클래스의 메소드이다
  3. java.security.AllPermission 를 사용해 checkPermission 를 호출했을 때에, 결과가 SecurityException 는 아니다

반환값:
비시스템 클래스 로더를 사용해 정의된 클래스의, 스택상에서 마지막에 실행된 메소드의 클래스
관련 항목:
getSystemClassLoader , checkPermission

classDepth

@Deprecated 
protected int classDepth(String  name)
추천 되고 있지 않습니다.  이 타입의 시큐리티 체크는 추천 되지 않습니다. 대신에 checkPermission 의 호출을 사용하는 것을 추천합니다.

지정된 클래스의 스택의 깊이를 돌려줍니다.

파라미터:
name - 검색하는 클래스의 완전 지정의 이름
반환값:
지정된 이름을 가지는 클래스의 메소드가, 최초로 나타나는 스택 프레임의 깊이. 이러한 프레임이 발견되지 않는 경우는 -1

classLoaderDepth

@Deprecated 
protected int classLoaderDepth()
추천 되고 있지 않습니다.  이 타입의 시큐리티 체크는 추천 되지 않습니다. 대신에 checkPermission 의 호출을 사용하는 것을 추천합니다.

비시스템 클래스 로더를 사용해 정의된 클래스의, 마지막에 실행된 메소드의 스택의 깊이를 돌려줍니다. 비시스템 클래스 로더란,ClassLoader.getSystemClassLoader() 에 의해 반환되는 시스템 클래스 로더와도, 게다가 위객체의 어떤 것과도 동일하지 않은 클래스 로더입니다.  

이 메소드는, 다음의 경우에 -1 를 돌려줍니다.

  1. 실행 스택상의 모든 메소드가, 시스템 클래스 로더 또는 게다가 위객체의 1 개를 사용해 정의된 클래스로부터의 것인 경우
  2. 특권 첨부의 최초의 호출측 (AccessController.doPrivileged(java.security.PrivilegedAction) 를 참조)까지의 실행 스택에 있는 모든 메소드가, 시스템 클래스 로더 또는 게다가 위객체의 1 개를 사용해 정의된 클래스의 메소드이다
  3. java.security.AllPermission 를 사용해 checkPermission 를 호출했을 때에, 결과가 SecurityException 는 아니다

반환값:
비시스템 클래스 로더를 사용해 정의된 클래스의, 마지막에 실행된 메소드의 스택 프레임의 깊이
관련 항목:
getSystemClassLoader , checkPermission

inClass

@Deprecated 
protected boolean inClass(String  name)
추천 되고 있지 않습니다.  이 타입의 시큐리티 체크는 추천 되지 않습니다. 대신에 checkPermission 의 호출을 사용하는 것을 추천합니다.

지정된 이름의 클래스의 메소드에 대해, 실행 스택에 있을지 어떨지를 판정합니다.

파라미터:
name - 클래스의 완전 지정의 이름
반환값:
지정된 이름을 가지는 클래스의 메소드가 실행 스택에 있는 경우는 true, 없는 경우는 false

inClassLoader

@Deprecated 
protected boolean inClassLoader()
추천 되고 있지 않습니다.  이 타입의 시큐리티 체크는 추천 되지 않습니다. 대신에 checkPermission 의 호출을 사용하는 것을 추천합니다.

기본적으로는, 클래스 로더를 사용해 정의된 클래스로부터의 메소드에 대해, 실행 스택에 있을지 어떨지를 판정합니다.

반환값:
currentClassLoader 의 호출의 반환값이 null 가 아닌 경우는 true
관련 항목:
currentClassLoader

getSecurityContext

public Object  getSecurityContext()
현재의 실행 환경을 캡슐화하는 객체를 생성합니다. 이 메소드의 실행 결과는, 3 개의 인수를 취하는 checkConnect 메소드나, 2 개의 인수를 취하는 checkRead 메소드등으로 사용합니다. 이러한 메소드가 필요한 것은, 신뢰할 수 있는 메소드가, 다른 메소드 대신에 파일을 읽어들이거나 소켓을 오픈하거나 하기 위해서 불려 가기 때문입니다. 신뢰할 수 있는 메소드는, 다른 (어쩌면 신뢰할 수 없다) 메소드가 그 조작을 스스로 실시하는 것을 허가되고 있는지 어떤지를, 판정할 필요가 있습니다.  

이 메소드의 디폴트의 구현은,AccessControlContext 객체를 돌려줍니다.

반환값:
나중에 시큐리티 체크를 실시할 수 있도록(듯이), 현재의 실행 환경의 충분한 정보를 캡슐화한, 구현 의존의 객체
관련 항목:
java.lang.SecurityManager#checkConnect(java.lang.String, int,, java.lang.SecurityManager#checkRead(java.lang.String,, AccessControlContext

checkPermission

public void checkPermission(Permission  perm)
지정된 액세스권으로 요구한 액세스가, 현재 유효한 시큐리티 정책에 비추어 허가되지 않았던 경우에 SecurityException 를 throw 합니다.  

이 메소드는, 지정된 액세스권으로 AccessController.checkPermission 를 호출합니다.

파라미터:
perm - 요구 액세스권
예외:
SecurityException - 현재의 시큐리티 정책에 의해 액세스가 거부되었을 경우
NullPointerException - 액세스권의 인수가 null 의 경우
도입된 버젼:
1.2

checkPermission

public void checkPermission(Permission  perm,
                            Object  context)
지정된 시큐리티 문맥에 대해, 지정된 액세스권이 가리키는 자원에의 액세스가 거부되었을 경우에 SecurityException 를 throw 합니다. context 는, 직전의 getSecurityContext 호출에 의해 반환된 시큐리티 문맥이 아니면 안됩니다. 액세스 제어의 결정은, 이 시큐리티 문맥에 대해서 설정되어 있는 시큐리티 정책에 근거해 행해집니다.  

contextAccessControlContext 의 인스턴스인 경우, 지정된 액세스권으로 AccessControlContext.checkPermission 메소드가 불려 갑니다.  

contextAccessControlContext 의 인스턴스가 아닌 경우는,SecurityException 가 throw 됩니다.

파라미터:
perm - 지정된 액세스권
context - 시스템 의존의 시큐리티 문맥
예외:
SecurityException - 지정된 시큐리티 문맥이 AccessControlContext 의 인스턴스가 아닌 (예를 들어 null 이다)인가, 혹은 지정된 액세스권이 가리키는 자원에의 액세스가 거부되었을 경우
NullPointerException - 액세스권의 인수가 null 의 경우
도입된 버젼:
1.2
관련 항목:
getSecurityContext() , AccessControlContext.checkPermission(java.security.Permission)

checkCreateClassLoader

public void checkCreateClassLoader()
호출측의 thread가 새로운 클래스 로더의 작성을 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는, 액세스권 RuntimePermission("createClassLoader")checkPermission 를 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkCreateClassLoader 가 불려 가도록 해 주세요.

예외:
SecurityException - 호출측의 thread가, 새로운 클래스 로더를 작성할 수 있는 액세스권을 가지지 않는 경우
관련 항목:
ClassLoader.ClassLoader() , checkPermission

checkAccess

public void checkAccess(Thread  t)
호출측의 thread가 thread 인수의 수정을 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는,Thread 클래스의 stop,suspend,resume,setPriority,setName,setDaemon 의 각 메소드를 호출하는 것에 의해, 현재의 시큐리티 매니저에 대해서 불려 갑니다.  

thread의 인수가 시스템 thread (부모가 null 인 thread 그룹에 속하는 thread)의 경우, 이 메소드는 RuntimePermission("modifyThread") 액세스권으로 checkPermission 를 호출합니다. thread의 인수가 시스템 thread가 아닌 경우, 이 메소드는 아무것도 하지 않고 복귀합니다.  

보다 어려운 정책가 필요한 어플리케이션에서는, 이 메소드를 오버라이드(override) 할 필요가 있습니다. 이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 후의 메소드에서는, 호출원의 thread가 RuntimePermission("modifyThread") 액세스권을 가질지 어떨지를 체크해, 가지고 있는 경우에는 아무것도 하지 않고 종료하도록(듯이) 합니다. 이것은, 그 액세스권이 주어진 코드 (JDK 자체등)가 어떤 thread라도 취급할 수 있도록(듯이) 하기 (위해)때문에입니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 후의 메소드의 최초의 스테이트먼트로 super.checkAccess 메소드를 호출하는지, 같은 시큐리티 체크를 실시할 필요가 있습니다.

파라미터:
t - 체크 대상의 thread
예외:
SecurityException - 호출측 thread에, 이 thread를 변경하는데 필요한 액세스권이 없는 경우
NullPointerException - thread의 인수가 null 의 경우
관련 항목:
resume , setDaemon , setName , setPriority , stop , suspend , checkPermission

checkAccess

public void checkAccess(ThreadGroup  g)
호출측의 thread가, thread 그룹의 인수를 수정하는 것을 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는, 아이 thread 또는 아이 thread 그룹이 새롭게 작성되었을 때에,ThreadGroup 클래스의 setDaemon,setMaxPriority,stop,suspend,resume,destroy 의 각 메소드에 의해, 현재의 시큐리티 매니저에 대해서 불려 갑니다.  

thread 그룹의 인수가 시스템 thread 그룹 (부모가 null)의 경우, 이 메소드는,RuntimePermission("modifyThreadGroup") 액세스권으로 checkPermission 를 호출합니다. thread 그룹의 인수가 시스템 thread 그룹이 아닌 경우, 이 메소드는 아무것도 하지 않고 복귀합니다.  

보다 어려운 정책가 필요한 어플리케이션에서는, 이 메소드를 오버라이드(override) 할 필요가 있습니다. 이 메소드를 오버라이드(override) 하는 경우, 오버라이드(override)측의 메소드는, 호출측 thread가 RuntimePermission("modifyThreadGroup") 액세스권을 가질지 어떨지도 확인할 필요가 있습니다. 액세스권을 가지고 있는 경우, 이 메소드가 아무것도 하지 않고 복귀하도록 해 주세요. 이것은, 그 액세스권이 주어진 코드 (JDK 자체등)가 어떤 thread라도 취급할 수 있도록(듯이) 하기 (위해)때문에입니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 후의 메소드의 최초의 스테이트먼트로 super.checkAccess 메소드를 호출하는지, 같은 시큐리티 체크를 실시할 필요가 있습니다.

파라미터:
g - 체크 대상의 thread 그룹
예외:
SecurityException - 호출측 thread에, 이 thread 그룹을 변경하는데 필요한 액세스권이 없는 경우
NullPointerException - thread 그룹의 인수가 null 의 경우
관련 항목:
destroy , resume , setDaemon , setMaxPriority , stop , suspend , checkPermission

checkExit

public void checkExit(int status)
지정된 상태 코드로 Java 가상 머신을 정지시키는 허가를, 호출측의 thread가 가지고 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는,Runtime 클래스의 exit 메소드에 의해, 현재의 시큐리티 매니저에 대해서 불려 갑니다. 상태 코드 0 은 성공을 나타내, 그 외의 값은 각종의 에러를 나타냅니다.  

이 메소드는, 액세스권 RuntimePermission("exitVM. "+status) 를 지정해 checkPermission 를 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkExit 가 불려 가도록 해 주세요.

파라미터:
status - 종료의 상태
예외:
SecurityException - 지정된 상태로 Java 가상 머신을 정지시키는 액세스권이, 호출측 thread에 없는 경우
관련 항목:
exit , checkPermission

checkExec

public void checkExec(String  cmd)
서브 프로세스의 작성이 호출해 옆의 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는,Runtime 클래스의 exec 메소드에 의해, 현재의 시큐리티 매니저에 대해서 불려 갑니다.  

이 메소드는, cmd 가 절대 패스의 경우는 액세스권 FilePermission(cmd,"execute") 를 지정해 checkPermission 를 호출해, 그렇지 않은 경우는 FilePermission("<<ALL FILES>>","execute") 를 지정해 checkPermission 를 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkExec 가 불려 가도록 해 주세요.

파라미터:
cmd - 지정된 시스템 커멘드
예외:
SecurityException - 호출측 thread에, 서브 프로세스를 작성하는 액세스권이 없는 경우
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

checkLink

public void checkLink(String  lib)
캐릭터 라인 인수 파일로 지정된 라이브러리 코드에의 동적 링크가, 호출측의 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다. 인수에는, 라이브러리명만을 지정하는지, 절대 패스의 파일명을 지정합니다.  

이 메소드는,Runtime 클래스의 load 메소드와 loadLibrary 메소드에 의해, 현재의 시큐리티 매니저에 대해서 불려 갑니다.  

이 메소드는, 액세스권 RuntimePermission("loadLibrary. "+lib)checkPermission 를 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkLink 가 불려 가도록 해 주세요.

파라미터:
lib - 라이브러리의 이름
예외:
SecurityException - 호출측 thread에, 라이브러리를 동적으로 링크하는 액세스권이 없는 경우
NullPointerException - lib 인수가 null 의 경우
관련 항목:
Runtime.load(java.lang.String) , Runtime.loadLibrary(java.lang.String) , checkPermission

checkRead

public void checkRead(FileDescriptor  fd)
지정된 파일 기술자로부터의 read가 호출해 옆의 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는, 액세스권 RuntimePermission("readFileDescriptor")checkPermission 를 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkRead 가 불려 가도록 해 주세요.

파라미터:
fd - 시스템 의존의 파일 기술자
예외:
SecurityException - 호출측 thread에, 지정된 파일 기술자에게로의 액세스권이 없는 경우
NullPointerException - 파일 기술자의 인수가 null 의 경우
관련 항목:
FileDescriptor , checkPermission

checkRead

public void checkRead(String  file)
캐릭터 라인 인수로 지정된 파일의 read가 호출해 옆의 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는, 액세스권 FilePermission(file,"read") 를 지정해 checkPermission 를 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkRead 가 불려 가도록 해 주세요.

파라미터:
file - 시스템 의존의 파일명
예외:
SecurityException - 호출측 thread에, 지정된 파일에의 액세스권이 없는 경우
NullPointerException - file 인수가 null 의 경우
관련 항목:
checkPermission

checkRead

public void checkRead(String  file,
                      Object  context)
캐릭터 라인 인수로 지정된 파일을 읽어내는 허가가, 지정된 시큐리티 문맥에 없는 경우에,SecurityException 를 throw 합니다. 문맥은, 이전의 getSecurityContext 호출로 반환된 시큐리티 문맥이 아니면 안됩니다.  

contextAccessControlContext 의 인스턴스인 경우는,FilePermission(file,"read") 액세스권을 지정해 AccessControlContext.checkPermission 메소드가 불려 갑니다.  

contextAccessControlContext 의 인스턴스가 아닌 경우는,SecurityException 가 throw 됩니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkRead 가 불려 가도록 해 주세요.

파라미터:
file - 시스템에 의존하는 파일명
context - 시스템 의존의 시큐리티 문맥
예외:
SecurityException - 지정된 시큐리티 문맥이 AccessControlContext 의 인스턴스가 아닌 (예를 들어 null 이다)인가, 혹은 지정된 파일의 read권이 없는 경우
NullPointerException - file 인수가 null 의 경우
관련 항목:
getSecurityContext() , AccessControlContext.checkPermission(java.security.Permission)

checkWrite

public void checkWrite(FileDescriptor  fd)
지정된 파일 기술자에게로의 기입이 호출해 옆thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는, 액세스권 RuntimePermission("writeFileDescriptor")checkPermission 를 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkWrite 가 불려 가도록 해 주세요.

파라미터:
fd - 시스템 의존의 파일 기술자
예외:
SecurityException - 호출측 thread에, 지정된 파일 기술자에게로의 액세스권이 없는 경우
NullPointerException - 파일 기술자의 인수가 null 의 경우
관련 항목:
FileDescriptor , checkPermission

checkWrite

public void checkWrite(String  file)
캐릭터 라인 인수로 지정된 파일에의 기입이 호출해 옆thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는, 액세스권 FilePermission(file,"write") 를 지정해 checkPermission 를 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkWrite 가 불려 가도록 해 주세요.

파라미터:
file - 시스템에 의존하는 파일명
예외:
SecurityException - 호출측 thread에, 지정된 파일에의 액세스권이 없는 경우
NullPointerException - file 인수가 null 의 경우
관련 항목:
checkPermission

checkDelete

public void checkDelete(String  file)
지정된 파일을 삭제하는 것이 호출측 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는,File 클래스의 delete 메소드에 의해, 현재의 시큐리티 매니저에 대해서 불려 갑니다.  

이 메소드는, 액세스권 FilePermission(file,"delete") 를 지정해 checkPermission 를 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkDelete 가 불려 가도록 해 주세요.

파라미터:
file - 시스템에 의존하는 파일명
예외:
SecurityException - 호출측 thread에, 지정된 파일을 삭제하는 액세스권이 없는 경우
NullPointerException - file 인수가 null 의 경우
관련 항목:
File.delete() , checkPermission

checkConnect

public void checkConnect(String  host,
                         int port)
지정된 호스트와 포트 번호에의 소켓 접속을 오픈하는 것이, 호출측 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

포트 번호 -1 는, 지정된 호스트명의 IP 주소를, 호출측의 메소드가 결정되려 하고 있는 것을 나타냅니다.  

포트 번호가 -1 나오지 않는 경우, 이 메소드는 액세스권 SocketPermission(host+":"+port,"connect") 를 지정해 checkPermission 메소드를 호출합니다. 포트가 -1 인 경우, 이 메소드는 액세스권 SocketPermission(host,"resolve") 를 지정해 checkPermission 을 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkConnect 가 불려 가도록 해 주세요.

파라미터:
host - 접속처의 호스트명 포트
port - 접속처의 프로토콜 포트
예외:
SecurityException - 호출측 thread에, 지정된 hostport 에의 소켓 접속을 오픈하기 위한 액세스권이 없는 경우
NullPointerException - host 인수가 null 의 경우
관련 항목:
checkPermission

checkConnect

public void checkConnect(String  host,
                         int port,
                         Object  context)
지정된 시큐리티 문맥이, 지정된 호스트와 포트 번호에의 소켓 접속을 오픈하는 액세스권을 가지고 있지 않은 경우에,SecurityException 를 throw 합니다.  

포트 번호 -1 는, 지정된 호스트명의 IP 주소를, 호출측의 메소드가 결정되려 하고 있는 것을 나타냅니다.  

contextAccessControlContext 의 인스턴스가 아닌 경우는,SecurityException 가 throw 됩니다.  

그렇지 않은 경우는, 포트 번호를 확인합니다. 포트 번호가 -1 나오지 않는 경우는, 액세스권 SocketPermission(host+":"+port,"connect") 를 지정해 contextcheckPermission 메소드가 불려 갑니다. 포트가 -1 인 경우는, 액세스권 SocketPermission(host,"resolve") 를 지정해 contextcheckPermission 메소드가 불려 갑니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkConnect 가 불려 가도록 해 주세요.

파라미터:
host - 접속처의 호스트명 포트
port - 접속처의 프로토콜 포트
context - 시스템 의존의 시큐리티 문맥
예외:
SecurityException - 지정된 시큐리티 문맥이 AccessControlContext 의 인스턴스가 아닌 (예를 들어 null 이다)인가, 혹은 지정된 hostport 에의 소켓 접속을 오픈하기 위한 액세스권이 없는 경우
NullPointerException - host 인수가 null 의 경우
관련 항목:
getSecurityContext() , AccessControlContext.checkPermission(java.security.Permission)

checkListen

public void checkListen(int port)
지정된 로컬 포트 번호로 접속 요구를 대기하는 것이 호출측 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

포트 번호가 0 이 아닌 경우, 이 메소드는 액세스권 SocketPermission("localhost:"+port,"listen") 를 지정해 checkPermission 메소드를 호출합니다. 포트가 0 인 경우, 이 메소드는 액세스권 SocketPermission("localhost:1024-","listen") 를 지정해 checkPermission 메소드를 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkListen 가 불려 가도록 해 주세요.

파라미터:
port - 로컬 포트
예외:
SecurityException - 호출측 thread에, 지정된 포트로 대기하기 위한 액세스권이 없는 경우
관련 항목:
checkPermission

checkAccept

public void checkAccept(String  host,
                        int port)
지정된 호스트와 포트 번호로부터의 소켓 접속을 받는 것이, 호출측 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는,ServerSocket 클래스의 accept 메소드에 의해, 현재의 시큐리티 매니저에 대해서 불려 갑니다.  

이 메소드는, 액세스권 SocketPermission(host+":"+port,"accept") 를 지정해 checkPermission 를 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkAccept 가 불려 가도록 해 주세요.

파라미터:
host - 소켓 접속의 호스트 번호
port - 소켓 접속의 포트 번호
예외:
SecurityException - 호출측 thread에, 접속을 받아들이기 위한 액세스권이 없는 경우
NullPointerException - host 인수가 null 의 경우
관련 항목:
ServerSocket.accept() , checkPermission

checkMulticast

public void checkMulticast(InetAddress  maddr)
IP 멀티 캐스트 (join/leave/send/receive)의 사용이 호출해 옆thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는, 액세스권 java.net.SocketPermission(maddr.getHostAddress(), "accept, connect") 를 지정해 checkPermission 를 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkMulticast 가 불려 가도록 해 주세요.

파라미터:
maddr - 사용하는 인터넷 그룹의 주소
예외:
SecurityException - 호출측 thread에, IP 멀티 캐스트 (join/leave/send/receive)의 사용이 허가되어 있지 않은 경우
NullPointerException - 주소의 인수가 null 의 경우
도입된 버젼:
JDK1. 1
관련 항목:
checkPermission

checkMulticast

@Deprecated 
public void checkMulticast(InetAddress  maddr,
                                      byte ttl)
추천 되고 있지 않습니다.  대신에 #checkPermission(java.security.Permission)를 사용한다

IP 멀티 캐스트 (join/leave/send/receive)의 사용이 호출해 옆thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는, 액세스권 java.net.SocketPermission(maddr.getHostAddress(), "accept, connect") 를 지정해 checkPermission 를 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkMulticast 가 불려 가도록 해 주세요.

파라미터:
maddr - 사용하는 인터넷 그룹의 주소
ttl - 사용하는 값이 멀티 캐스트 송신되는 경우, 그 값. 주:이 특정의 구현은 ttl 파라미터를 사용하지 않는다
예외:
SecurityException - 호출측 thread에, IP 멀티 캐스트 (join/leave/send/receive)의 사용이 허가되어 있지 않은 경우
NullPointerException - 주소의 인수가 null 의 경우
도입된 버젼:
JDK1. 1
관련 항목:
checkPermission

checkPropertiesAccess

public void checkPropertiesAccess()
시스템 프로퍼티의 액세스 또는 수정이 호출해 옆thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는,System 클래스의 getPropertiessetProperties 메소드에 의해 사용됩니다.  

이 메소드는, 액세스권 PropertyPermission("*", "read, write") 를 지정해 checkPermission 를 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkPropertiesAccess 가 불려 가도록 해 주세요.  

예외:
SecurityException - 호출측 thread에, 시스템 프로퍼티에 대한 액세스 또는 변경을 행하기 위한 액세스권이 없는 경우
관련 항목:
System.getProperties() , System.setProperties(java.util.Properties) , checkPermission

checkPropertyAccess

public void checkPropertyAccess(String  key)
key 로 지정된 시스템 프로퍼티에의 액세스가, 호출측 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는,System 클래스의 getProperty 메소드에 의해 사용됩니다.  

이 메소드는, 액세스권 PropertyPermission(key, "read")checkPermission 를 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkPropertiesAccess 가 불려 가도록 해 주세요.

파라미터:
key - 시스템 프로퍼티의 키
예외:
SecurityException - 호출측 thread에, 지정된 시스템 프로퍼티에의 액세스권이 없는 경우
NullPointerException - key 인수가 null 의 경우
IllegalArgumentException - key 가 빈 상태(empty)의 경우
관련 항목:
System.getProperty(java.lang.String) , checkPermission

checkTopLevelWindow

public boolean checkTopLevelWindow(Object  window)
window 인수로 지정된 톱 레벨의 윈도우를 표시하기 위한 신뢰가 호출해 옆thread에 없는 경우에,false 를 돌려줍니다. 이 경우에서도, 호출측 thread는 윈도우를 표시할 수 있습니다만, 윈도우에는 하등의 경고가 표시됩니다. 이 메소드가 true 를 돌려주었을 경우는, 특히 제한없이 윈도우를 표시할 수 있습니다.  

신뢰할 수 있는 윈도우와 신뢰할 수 없는 윈도우의 자세한 것은,Window 클래스를 참조해 주세요.  

이 메소드는, 액세스권 AWTPermission("showWindowWithoutWarningBanner")checkPermission 를 호출해, SecurityException 가 throw 되지 않는 경우는 true 를, throw 되는 경우는 false 를 돌려줍니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 false 를 throw 하는 위치에서 super.checkTopLevelWindow 가 불려 가도록 해 주세요. 이것에 의해,super.checkTopLevelWindow 의 값이 돌려주어집니다.

파라미터:
window - 작성되는 새로운 윈도우
반환값:
톱 레벨 윈도우를 표시하기 위한 신뢰가 호출해 옆thread에 있는 경우는 true, 그렇지 않은 경우는 false
예외:
NullPointerException - window 인수가 null 의 경우
관련 항목:
Window , checkPermission

checkPrintJobAccess

public void checkPrintJobAccess()
인쇄 작업 요구의 개시가 호출해 옆thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는, 액세스권 RuntimePermission("queuePrintJob")checkPermission 를 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkPrintJobAccess 가 불려 가도록 해 주세요.  

예외:
SecurityException - 호출측 thread에, 인쇄 작업 요구를 개시하기 위한 액세스권이 없는 경우
도입된 버젼:
JDK1. 1
관련 항목:
checkPermission

checkSystemClipboardAccess

public void checkSystemClipboardAccess()
시스템 클립보드에의 액세스가 호출해 옆thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는, 액세스권 AWTPermission("accessClipboard")checkPermission 를 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkSystemClipboardAccess 가 불려 가도록 해 주세요.

예외:
SecurityException - 호출측 thread에, 시스템 클립보드에의 액세스권이 없는 경우
도입된 버젼:
JDK1. 1
관련 항목:
checkPermission

checkAwtEventQueueAccess

public void checkAwtEventQueueAccess()
AWT 이벤트 큐에의 액세스가 호출해 옆thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는, 액세스권 AWTPermission("accessEventQueue")checkPermission 를 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkAwtEventQueueAccess 가 불려 가도록 해 주세요.

예외:
SecurityException - 호출측 thread에, AWT 이벤트 큐에의 액세스권이 없는 경우
도입된 버젼:
JDK1. 1
관련 항목:
checkPermission

checkPackageAccess

public void checkPackageAccess(String  pkg)
인수로 지정된 패키지에의 액세스가 호출해 옆thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는 클래스 로더의 loadClass 메소드에 의해 사용됩니다.  

이 메소드는, 최초로 java.security.Security.getProperty("package.access") 를 호출해 콤마 단락 형식의 리스트를 취득하는 것으로써, 제한부 패키지의 리스트를 가져옵니다. 다음에, 제한부 패키지안에 pkg 로 시작되는 패키지 또는 pkg 에 일치하는 패키지가 있을지 어떨지를 판정합니다. 해당하는 경우에는,checkPermissionRuntimePermission("accessClassInPackage. "+pkg) 액세스권으로 불려 갑니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 된 메소드의 1 행 째로,super.checkPackageAccess 에의 호출을 실시할 필요가 있습니다.

파라미터:
pkg - 패키지명
예외:
SecurityException - 호출측 thread에, 지정된 패키지에의 액세스권이 없는 경우
NullPointerException - 패키지명의 인수가 null 의 경우
관련 항목:
loadClass , getProperty , checkPermission

checkPackageDefinition

public void checkPackageDefinition(String  pkg)
인수로 지정된 패키지내의 클래스를 정의하는 것이 호출측 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는, 일부의 클래스 로더의 loadClass 메소드가 사용합니다.  

이 메소드는, 최초로 java.security.Security.getProperty("package.definition") 를 호출해 콤마 단락 형식의 리스트를 취득하는 것으로써, 제한부 패키지의 리스트를 가져옵니다. 다음에, 제한부 패키지안에 pkg 로 시작되는 패키지 또는 pkg 에 일치하는 패키지가 있을지 어떨지를 판정합니다. 해당하는 경우에는,checkPermissionRuntimePermission("defineClassInPackage. "+pkg) 액세스권으로 불려 갑니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 된 메소드의 1 행 째로,super.checkPackageDefinition 에의 호출을 실시할 필요가 있습니다.

파라미터:
pkg - 패키지명
예외:
SecurityException - 호출측 thread에, 지정된 패키지중의 클래스를 정의하기 위한 액세스권이 없는 경우
관련 항목:
ClassLoader.loadClass(java.lang.String, boolean) , getProperty , checkPermission

checkSetFactory

public void checkSetFactory()
ServerSocket 또는 Socket 가 사용하는 소켓 팩토리, 또는 URL 가 사용하는 스트림 핸들러 팩토리를 설정하는 것이 호출측 thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

이 메소드는, 액세스권 RuntimePermission("setFactory")checkPermission 를 호출합니다.  

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkSetFactory 이 불려 가도록 해 주세요.  

예외:
SecurityException - 호출측 thread에, 소켓 팩토리, 또는 스트림 핸들러 팩토리를 지정하기 위한 액세스권이 없는 경우
관련 항목:
setSocketFactory , setSocketImplFactory , setURLStreamHandlerFactory , checkPermission

checkMemberAccess

public void checkMemberAccess(Class <? > clazz,
                              int which)
멤버에게로의 액세스가 호출해 옆thread에 허가되어 있지 않은 경우에,SecurityException 를 throw 합니다.  

디폴트의 정책는 PUBLIC 멤버에게로의 액세스 및, 호출원과 같은 클래스 로더를 가지는 클래스에의 액세스를 허가합니다. 그 이외의 클래스에의 액세스의 경우, 이 메소드는 액세스권 RuntimePermission("accessDeclaredMembers") 를 지정해 checkPermission 를 호출합니다.  

이 메소드를 오버라이드(override) 했을 경우,super.checkMemberAccess 를 호출할 수 없습니다. 이것은,checkMemberAccess 의 디폴트의 구현이, 스택의 깊이 4 에 있는 체크 진행중의 코드에 의존하기 (위해)때문에입니다.

파라미터:
clazz - 리플렉션이 실행되는 클래스
which - 액세스의 타입. PUBLIC 또는 DECLARED
예외:
SecurityException - 호출 측에 멤버에게로의 액세스권이 없는 경우
NullPointerException - clazz 인수가 null 의 경우
도입된 버젼:
JDK1. 1
관련 항목:
Member , checkPermission

checkSecurityAccess

public void checkSecurityAccess(String  target)
지정된 액세스권 타겟명의 액세스권을 허가하든가, 혹은 거부하는지를 판정합니다.

요구된 액세스권을 허가하는 경우, 이 메소드는 아무것도 하지 않고 복귀합니다. 거부하는 경우는, SecurityException 가 throw 됩니다.

이 메소드는, 지정된 액세스권 타겟명의 SecurityPermission 객체를 생성해, 다음에, 그 액세스권을 지정해 checkPermission 를 호출합니다.

지정할 수 있는 액세스권 타겟명의 리스트에 대해서는,SecurityPermission 의 문서를 참조해 주세요.

이 메소드를 오버라이드(override) 하는 경우는, 오버라이드(override) 되는 메소드가 일반적으로이면 예외를 throw 하는 위치에서 super.checkSecurityAccess 가 불려 가도록 해 주세요.

파라미터:
target - SecurityPermission 의 타겟명
예외:
SecurityException - 호출측 thread에, 요구된 액세스에 필요한 액세스권이 없는 경우
NullPointerException - target 가 null 의 경우
IllegalArgumentException - target 가 빈 상태(empty)의 경우
도입된 버젼:
JDK1. 1
관련 항목:
checkPermission

getThreadGroup

public ThreadGroup  getThreadGroup()
이 메소드를 호출했을 때에 작성되는, 임의의 새로운 thread의 인스턴스를 생성하기 위한 , thread 그룹을 돌려줍니다. 디폴트에서는, 현재의 thread의 thread 그룹을 돌려줍니다. 적절한 thread 그룹을 돌려주려면 , 특정의 시큐리티 매니저로 이 메소드를 오버라이드(override) 해 주세요.

반환값:
새로운 thread의 인스턴스를 생성하는 ThreadGroup
도입된 버젼:
JDK1. 1
관련 항목:
ThreadGroup

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.