JavaTM 2 Platform
Standard Ed. 5.0

java.security
Ŭ·¡½º AccessController

java.lang.Object 
  »óÀ§¸¦ È®Àå java.security.AccessController

public final class AccessController
extends Object

AccessController Ŭ·¡½º´Â ¾×¼¼½º Á¦¾îÀÇ Á¶ÀÛ°ú °áÁ¤¿¡ »ç¿ëµË´Ï´Ù.

±¸Ã¼ÀûÀ¸·Î´Â AccessController Ŭ·¡½º¸¦ ´ÙÀ½ÀÇ 3°³ÀÇ ¸ñÀûÀ¸·Î »ç¿ëÇÕ´Ï´Ù.

checkPermission ¸Þ¼­µå´Â ÁöÁ¤ÇÑ Á¢±Ù ±ÇÇÑ¿¡ ÀÇÇØ ³ªÅ¸³ª´Â ¾×¼¼½º ¿ä±¸°¡ Çã°¡µÇ´ÂÁö, °ÅºÎµÉ±î¸¦ °áÁ¤ÇÕ´Ï´Ù. È£ÃâÀÇ ¿¹¸¦ ´ÙÀ½¿¡ ³ªÅ¸³À´Ï´Ù. ÀÌ ¿¹¿¡¼­´Â checkPermission´Â /temp µð·ºÅ丮ÀÇ testFile ¶ó°í ÇÏ´Â ÆÄÀÏ¿¡ÀÇ Àб⠱ÇÀ» Çã°¡ÇÒÁö ¾î¶³Áö¸¦ °áÁ¤ÇÕ´Ï´Ù.


 
    FilePermission perm = new FilePermission("/temp/testFile", "read");
    AccessController.checkPermission(perm);
 
 

¿ä±¸µÈ ¾×¼¼½º°¡ Çã°¡µÇ´Â °æ¿ì¿¡´Â checkPermission´Â ¾Æ¹«°Íµµ ÇÏÁö ¾Ê°í º¹±ÍÇÕ´Ï´Ù. ¾×¼¼½º°¡ °ÅºÎµÇ´Â °æ¿ì¿¡´Â AccessControlException°¡ ¹ß»ý µË´Ï´Ù. AccessControlException´Â ¿ä±¸µÈ Á¢±Ù ±ÇÇÑÀÌ ºÎÁ¤ÇÑ ÇüÅÂÀ̰ųª ¹«È¿ÀÎ °ªÀ» Æ÷ÇÔÇØ Àְųª ÇßÀ» °æ¿ì¿¡µµ Throw µÉ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. °¡´ÉÇÑ °æ¿ì¿¡´Â ±×·¯ÇÑ Á¤º¸°¡ Á¦°øµË´Ï´Ù. ¿©±â¼­, ÇöÀçÀÇ thread°¡ m°³ÀÇ È£Ãâ¿øÀ» È£Ãâ¿ø 1 À¸·ÎºÎÅÍ ½ÃÀÛÇØ È£ÃâÇØ ¿ø m ±îÁö ó¸®ÇØ, È£Ãâ¿ø m°¡ checkPermission ¸Þ¼­µå¸¦ È£ÃâÇß´Ù°í ÇÕ´Ï´Ù. ÀÌ ¶§, checkPermission ¸Þ¼­µå´Â ´ÙÀ½ÀÇ ¾Ë°í¸®Áò¿¡ ±â¹ÝÇØ ¾×¼¼½º°¡ Çã°¡µÉ±î °ÅºÎµÉ±î¸¦ °áÁ¤ÇÕ´Ï´Ù.


 i = m;
 
 while (i > 0) {
 
      if (caller i's domain does not have the permission)
              throw AccessControlException
 
      else if (caller i is marked as privileged) {
              if (a context was specified in the call to doPrivileged) 
                 context.checkPermission(permission)
              return;
      }
      i = i - 1;
 };

    // Next, check the context inherited when
    // the thread was created.  Whenever a new thread is created, the
    // AccessControlContext at that time is
    // stored and associated with the new thread, as the "inherited"
    // context.
 
 inheritedContext.checkPermission(permission);
 

È£ÃâÃøÀº Ư±Ç ÄÚµå·Î¼­ ¸¶Å© ÇÒ ¼ö ÀÖ½À´Ï´Ù (doPrivileged ¹× ¾Æ·¡ÀÇ ¼³¸íÀ» ÂüÁ¶). ¾×¼¼½º Á¦¾î¸¦ °áÁ¤ÇÏ´Â °æ¿ì, checkPermission ¸Þ¼­µå´Â ÄÁÅؽºÆ® Àμö°¡ ¾ø´Â doPrivileged È£Ãâ¿¡ ÀÇÇØ Æ¯±Ç ÄÚµå·Î¼­ ¸¶Å© µÈ È£Ãâ Ãø¿¡ ´ê¾ÒÀ» ¶§¿¡ °Ë»ç¸¦ ÁßÁöÇÕ´Ï´Ù (ÄÁÅؽºÆ® Àμö¿¡ ´ëÇؼ­´Â ¾Æ·¡ÀÇ ¼³¸íÀ» ÂüÁ¶). ±× È£ÃâÃøÀÇ ¿µ¿ªÀ¸·Î ÁöÁ¤µÈ Á¢±Ù ±ÇÇÑÀÌ ÀÖ´Â °æ¿ì, ÀÌÈÄÀÇ °Ë»ç´Â ÇàÇØÁöÁö ¾Ê°í, checkPermission´Â ¾Æ¹«°Íµµ ÇÏÁö ¾Ê°í º¹±ÍÇØ, ¿ä±¸ÇÑ ¾×¼¼½º°¡ Çã°¡µÈ °ÍÀ» ³ªÅ¸³À´Ï´Ù. ±× ¿µ¿ªÀ¸·Î ÁöÁ¤µÈ Á¢±Ù ±ÇÇÑÀÌ ¾ø´Â °æ¿ì¿¡´Â º¸Åë ´ë·Î ¿¹¿Ü°¡ ¹ß»ý µË´Ï´Ù.

ÀÌÇÏ¿¡ Ư±Ç ±â´ÉÀÇ º¸Åë ÀÇ »ç¿ë¹ýÀ» ¼³¸íÇÕ´Ï´Ù. Ư±Ç ºí·Ï³»·ÎºÎÅÍ °ªÀ» µ¹·ÁÁÙ ÇÊ¿ä°¡ ¾ø´Â °æ¿ì¿¡´Â ´ÙÀ½°ú °°ÀÌ ±â¼úÇÕ´Ï´Ù.


   somemethod() {
        ...normal code here...
        AccessController.doPrivileged(new PrivilegedAction() {
            public Object run() {
                // privileged code goes here, for example:
                System.loadLibrary("awt");
                return null; // nothing to return
            }
        });
       ...normal code here...
  }
 

PrivilegedAction´Â Object¸¦ µ¹·ÁÁÖ´Â run ¶ó°í ÇÏ´Â ¸Þ¼­µå¸¦ °¡Áö´Â ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. »ó±âÀÇ ¿¹´Â ±× ÀÎÅÍÆäÀ̽ºÀÇ ±¸ÇöÀÇ ÀÛ¼º ¹æ¹ýÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. Áï, run ¸Þ¼­µåÀÇ °íÁ¤ ±¸ÇöÀÌ Á¦°øµË´Ï´Ù. doPrivileged°¡ ºÒ·Á°¡ ¸é, ±× doPrivileged¿¡ PrivilegedAction ±¸ÇöÀÇ ÀνºÅϽº°¡ °Ç³×¹Þ½À´Ï´Ù. doPrivileged ¸Þ¼­µå´Â Ư±ÇÀ» À¯È¿ÇÏ°Ô ÇÑ ÈÄ¿¡ PrivilegedAction ±¸ÇöÀ¸·ÎºÎÅÍ run ¸Þ¼­µå¸¦ È£ÃâÇØ, run ¸Þ¼­µåÀÇ ¹Ýȯ°ªÀ» doPrivileged ¹Ýȯ°ª (»ó±âÀÇ ¿¹¿¡¼­´Â ¹«½ÃµÇ°í ÀÖ´Ù)À¸·Î¼­ ¸®ÅÏÇÕ´Ï´Ù.

°ªÀ» µ¹·ÁÁÙ ÇÊ¿ä°¡ ÀÖ´Â °æ¿ì¿¡´Â ´ÙÀ½°ú °°ÀÌ ±â¼úÇÕ´Ï´Ù.


   somemethod() {
        ...normal code here...
        String user = (String) AccessController.doPrivileged(          new PrivilegedAction() {
            public Object run() {
                return System.getProperty("user.name");
            }
          }
        );
        ...normal code here...
  }
 

run ¸Þ¼­µå·Î ½ÇÇàÇÑ ¾×¼ÇÀÌ ¡¸Ã¼Å©µÈ´Ù¡¹¿¹¿Ü (¸Þ¼­µåÀÇ throws Àý¿¡ ±âÀçµÇ¾î ÀÖ´Â ¿¹¿Ü)¸¦ Throw ÇÒ °¡´É¼ºÀÌ ÀÖ´Â °æ¿ì¿¡´Â PrivilegedActionÀÎÅÍÆäÀ̽º ´ë½Å¿¡ PrivilegedExceptionActionÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.


   somemethod() throws FileNotFoundException {
        ...normal code here...
      try {
        FileInputStream fis = (FileInputStream) AccessController.doPrivileged(          new PrivilegedExceptionAction() {
            public Object run() throws FileNotFoundException {
                return new FileInputStream("someFile");
            }
          }
        );
      } catch (PrivilegedActionException e) {
        // e.getException() should be an instance of FileNotFoundException,
        // as only "checked" exceptions will be "wrapped" in a
        // PrivilegedActionException.
        throw (FileNotFoundException) e.getException();
      }
        ...normal code here...
  }
 

Ư±Ç ±¸Á¶ÀÇ »ç¿ë¿¡´Â ¼¼½ÉÀÇ ÁÖÀ§¸¦ ±â¿ï¿©, Ư±Ç ÄÚµå ¼½¼ÇÀ» °¡´ÉÇÑ ÇÑ ÀÛ°ÔÀÇÇØ ÁÖ¼¼¿ä.

checkPermission´Â Ç×»ó ÇöÀç ½ÇÇàÇÏ°í ÀÖ´Â threadÀÇ ÄÁÅؽºÆ® ³»¿¡¼­ ½ÃÅ¥·¯Æ¼ üũ¸¦ ½Ç½ÃÇÕ´Ï´Ù. ±×·¯³ª ½ÇÁ¦·Î´Â ÁöÁ¤µÈ ÄÁÅؽºÆ® ³»¿¡¼­ ½Ç½ÃÇÏ´Â ½ÃÅ¥·¯Æ¼ üũ¸¦, ¡¸´Ù¸¥¡¹ÄÁÅؽºÆ® ³»·ÎºÎÅÍ (¿¹¸¦ µé¾î ¿öÅ©½º ·¹µå³»·ÎºÎÅÍ) ½Ç½ÃÇÏÁö ¾ÊÀ¸¸é ¾È µÇ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ÀÌ »óȲ¿¡ ´ëÀÀÇϱâ À§Çؼ­ getContext ¸Þ¼­µå¿Í AccessControlContext Ŭ·¡½º°¡ Á¦°øµÇ°í ÀÖ½À´Ï´Ù. getContext ¸Þ¼­µå´Â ÇöÀçÀÇ È£ÃâÃø ÄÁÅؽºÆ® ÀÇ ¡¸snapshot¡¹¸¦ ÃëµæÇØ, ÀÌ ¸Þ¼­µå°¡ µ¹·ÁÁÖ´Â AccessControlContext °´Ã¼¿¡ ±× ÄÁÅؽºÆ®¸¦ ³Ö½À´Ï´Ù. ÀÌÇÏ¿¡ È£ÃâÀÇ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.


 
   AccessControlContext acc = AccessController.getContext()
 
 

AccessControlContext ¿¡´Â ÇöÀç ½ÇÇàÁßÀÇ threadÀÇ ÄÁÅؽºÆ®Àº ¾Æ´Ï°í, AccessControlContext°¡ ĸ½¶È­ÇÏ´Â ÄÁÅؽºÆ®¿¡ ±â¹ÝÇØ ¾×¼¼½º¸¦ °áÁ¤ÇÏ´Â checkPermission ¸Þ¼­µå°¡ ÀÖ½À´Ï´Ù. µû¶ó¼­, ´Ù¸¥ ÄÁÅؽºÆ® ³»ÀÇ ÄÚµå´Â ÀÌÀü¿¡ º¸Á¸ÇÑ AccessControlContext °´Ã¼ÀÇ checkPermission ¸Þ¼­µå¸¦ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù . ÀÌÇÏ¿¡ È£ÃâÀÇ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.


 
   acc.checkPermission(permission)
 
 

¶Ç, ÄÁÅؽºÆ®¸¦ ¾î´À Á¢±Ù ±ÇÇÑÀ¸·Î °Ë»çÇÒÁö°¡ »çÀü¿¡´Â ºÒ¸íÇÑ °æ¿ì°¡ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡´Â ÄÁÅؽºÆ®¸¦ °ªÀ¸·Î Çؼ­ ¹Þ´Â doPrivileged ¸Þ¼­µå¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.


   somemethod() {
         AccessController.doPrivileged(new PrivilegedAction() {
              public Object run() {
                 // Code goes here.  Any permission checks within this
                 // run method will require that the intersection of the
                 // callers protection domain and the snapshot's
                 // context have the desired permission.
              }
         }, acc);
         ...normal code here...
   }
 

°ü·Ã Ç׸ñ:
AccessControlContext

¸Þ¼­µå °³¿ä
static void checkPermission (Permission  perm)
          ÇöÀç À¯È¿ÇÑ ½ÃÅ¥·¯Æ¼ Á¤Ã¥¿¡ ±â¹ÝÇØ ÁöÁ¤µÈ Á¢±Ù ±ÇÇÑ¿¡ ÀÇÇØ ³ªÅ¸³ª´Â ¾×¼¼½º ¿ä±¸°¡ Çã°¡µÇ´ÂÁö, °ÅºÎµÉ±î¸¦ °áÁ¤ÇÕ´Ï´Ù.
static
<T> T
doPrivileged (PrivilegedAction <T> action)
          À¯È¿ÇÏ°Ô µÈ Ư±ÇÀ» »ç¿ëÇØ, ÁöÁ¤µÈ PrivilegedActionÀ» ½ÇÇàÇÕ´Ï´Ù.
static
<T> T
doPrivileged (PrivilegedAction <T> action, AccessControlContext  context)
          ÁöÁ¤µÈ AccessControlContext¿¡ ÀÇÇØ À¯È¿ÇÏ°Ô µÇ¾î, ÇÑÆí Á¦ÇѵǴ Ư±ÇÀ» »ç¿ëÇØ, ÁöÁ¤µÈ PrivilegedActionÀ» ½ÇÇàÇÕ´Ï´Ù.
static
<T> T
doPrivileged (PrivilegedExceptionAction <T> action)
          À¯È¿ÇÏ°Ô µÈ Ư±ÇÀ» »ç¿ëÇØ, ÁöÁ¤µÈ PrivilegedExceptionActionÀ» ½ÇÇàÇÕ´Ï´Ù.
static
<T> T
doPrivileged (PrivilegedExceptionAction <T> action, AccessControlContext  context)
          ÁöÁ¤µÈ AccessControlContext¿¡ ÀÇÇØ À¯È¿ÇÏ°Ô µÇ¾î, ÇÑÆí Á¦ÇѵǴ Ư±ÇÀ» »ç¿ëÇØ, ÁöÁ¤µÈ PrivilegedExceptionActionÀ» ½ÇÇàÇÕ´Ï´Ù.
static AccessControlContext getContext ()
          ÇöÀçÀÇ threadÀÇ »ó¼ÓµÈ AccessControlContext¸¦ Æ÷ÇÔÇÑ, ÇöÀçÀÇ È£ÃâÃø ÄÁÅؽºÆ® ÀÇ ¡¸snapshot¡¹¸¦ ÃëµæÇØ, AccessControlContext °´Ã¼¿¡ ¹èÄ¡ÇÕ´Ï´Ù.
 
Ŭ·¡½º java.lang. Object ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼­µå
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

¸Þ¼­µåÀÇ »ó¼¼

doPrivileged

public static <T> T doPrivileged(PrivilegedAction <T> action)
À¯È¿ÇÏ°Ô µÈ Ư±ÇÀ» »ç¿ëÇØ, ÁöÁ¤µÈ PrivilegedActionÀ» ½ÇÇàÇÕ´Ï´Ù. ¾×¼ÇÀº È£ÃâÃøÀÇ º¸È£ ¿µ¿ª¿¡¼­ ¼ÒÀ¯ÇÏ°í ÀÖ´Â ¡¸¸ðµç¡¹Á¢±Ù ±ÇÇÑÀ» »ç¿ëÇØ ½ÇÇàµË´Ï´Ù.

¾×¼ÇÀÇ run ¸Þ¼­µå°¡ üũµÇÁö ¾Ê´Â ¿¹¿Ü¸¦ Throw Çϸé, ¿¹¿Ü´Â ÀÌ ¸Þ¼­µå¸¦ »ç¿ëÇØ º¸³»Áý´Ï´Ù.

ÆĶó¹ÌÅÍ:
action - ½ÇÇàµÇ´Â ¾×¼Ç
¹Ýȯ°ª:
¾×¼ÇÀÇ run ¸Þ¼­µå¿¡ ÀÇÇØ ¸®ÅÏµÈ °ª
¿¹¿Ü:
NullPointerException - ¾×¼ÇÀÌ nullÀÎ °æ¿ì
°ü·Ã Ç׸ñ:
doPrivileged(PrivilegedAction, AccessControlContext), doPrivileged(PrivilegedExceptionAction)

doPrivileged

public static <T> T doPrivileged(PrivilegedAction <T> action,
                                 AccessControlContext  context)
ÁöÁ¤µÈ AccessControlContext¿¡ ÀÇÇØ À¯È¿ÇÏ°Ô µÇ¾î, ÇÑÆí Á¦ÇѵǴ Ư±ÇÀ» »ç¿ëÇØ, ÁöÁ¤µÈ PrivilegedActionÀ» ½ÇÇàÇÕ´Ï´Ù. ¾×¼ÇÀº È£ÃâÃøÀÇ º¸È£ ¿µ¿ª¿¡¼­ ¼ÒÀ¯ÇÏ°í ÀÖ´Â Á¢±Ù ±ÇÇÑ°ú ÁöÁ¤µÈ AccessControlContext¿¡ ÀÇÇØ ³ªÅ¸³»Áö´Â ¿µ¿ª¿¡¼­ ¼ÒÀ¯ÇÏ°í ÀÖ´Â Á¢±Ù ±ÇÇÑÀÇ °øÅë ºÎºÐÀ» »ç¿ëÇØ ½ÇÇàµË´Ï´Ù.

¾×¼ÇÀÇ run ¸Þ¼­µå°¡ üũµÇÁö ¾Ê´Â ¿¹¿Ü¸¦ Throw Çϸé, ¿¹¿Ü´Â ÀÌ ¸Þ¼­µå¸¦ »ç¿ëÇØ º¸³»Áý´Ï´Ù.

ÆĶó¹ÌÅÍ:
action - ½ÇÇàµÇ´Â ¾×¼Ç
context - ÁöÁ¤µÈ ¾×¼ÇÀÇ ½ÇÇàÀü¿¡ È£ÃâÇØ ¿·ÀÇ ¿µ¿ªÀÇ Æ¯±Ç¿¡ Àû¿ëÇØ¾ß ÇÒ Á¦ÇÑÀ» ³ªÅ¸³»´Â ¡¸¾×¼¼½º Á¦¾î ÄÁÅؽºÆ® ¡¹. context°¡ nullÀÎ °æ¿ì, Ãß°¡ÀÇ Á¦ÇÑÀº Àû¿ëµÇÁö ¾Ê´Â´Ù
¹Ýȯ°ª:
¾×¼ÇÀÇ run ¸Þ¼­µå¿¡ ÀÇÇØ ¸®ÅÏµÈ °ª
¿¹¿Ü:
NullPointerException - ¾×¼ÇÀÌ nullÀÎ °æ¿ì
°ü·Ã Ç׸ñ:
doPrivileged(PrivilegedAction), doPrivileged(PrivilegedExceptionAction, AccessControlContext)

doPrivileged

public static <T> T doPrivileged(PrivilegedExceptionAction <T> action)
                      throws PrivilegedActionException 
À¯È¿ÇÏ°Ô µÈ Ư±ÇÀ» »ç¿ëÇØ, ÁöÁ¤µÈ PrivilegedExceptionActionÀ» ½ÇÇàÇÕ´Ï´Ù. ¾×¼ÇÀº È£ÃâÃøÀÇ º¸È£ ¿µ¿ª¿¡¼­ ¼ÒÀ¯ÇÏ°í ÀÖ´Â ¡¸¸ðµç¡¹Á¢±Ù ±ÇÇÑÀ» »ç¿ëÇØ ½ÇÇàµË´Ï´Ù.

¾×¼ÇÀÇ run ¸Þ¼­µå°¡ ¡¸Ã¼Å©µÇÁö ¾Ê´Â´Ù¡¹¿¹¿Ü¸¦ Throw Çϸé, ¿¹¿Ü´Â ÀÌ ¸Þ¼­µå¸¦ »ç¿ëÇØ º¸³»Áý´Ï´Ù.

ÆĶó¹ÌÅÍ:
action - ½ÇÇàµÇ´Â ¾×¼Ç
¹Ýȯ°ª:
¾×¼ÇÀÇ run ¸Þ¼­µå¿¡ ÀÇÇØ ¸®ÅÏµÈ °ª
¿¹¿Ü:
PrivilegedActionException - ÁöÁ¤µÈ ¾×¼ÇÀÇ run ¸Þ¼­µå°¡ ¡¸Ã¼Å©µÈ´Ù¡¹¿¹¿Ü¸¦ Throw ÇßÀ» °æ¿ì
NullPointerException - ¾×¼ÇÀÌ nullÀÎ °æ¿ì
°ü·Ã Ç׸ñ:
doPrivileged(PrivilegedAction), doPrivileged(PrivilegedExceptionAction, AccessControlContext)

doPrivileged

public static <T> T doPrivileged(PrivilegedExceptionAction <T> action,
                                 AccessControlContext  context)
                      throws PrivilegedActionException 
ÁöÁ¤µÈ AccessControlContext¿¡ ÀÇÇØ À¯È¿ÇÏ°Ô µÇ¾î, ÇÑÆí Á¦ÇѵǴ Ư±ÇÀ» »ç¿ëÇØ, ÁöÁ¤µÈ PrivilegedExceptionActionÀ» ½ÇÇàÇÕ´Ï´Ù. ¾×¼ÇÀº È£ÃâÃøÀÇ º¸È£ ¿µ¿ª¿¡¼­ ¼ÒÀ¯ÇÏ°í ÀÖ´Â Á¢±Ù ±ÇÇÑ°ú ÁöÁ¤µÈ AccessControlContext¿¡ ÀÇÇØ ³ªÅ¸³»Áö´Â ¿µ¿ª¿¡¼­ ¼ÒÀ¯ÇÏ°í ÀÖ´Â Á¢±Ù ±ÇÇÑÀÇ °øÅë ºÎºÐÀ» »ç¿ëÇØ ½ÇÇàµË´Ï´Ù.

¾×¼ÇÀÇ run ¸Þ¼­µå°¡ ¡¸Ã¼Å©µÇÁö ¾Ê´Â´Ù¡¹¿¹¿Ü¸¦ Throw Çϸé, ¿¹¿Ü´Â ÀÌ ¸Þ¼­µå¸¦ »ç¿ëÇØ º¸³»Áý´Ï´Ù.

ÆĶó¹ÌÅÍ:
action - ½ÇÇàµÇ´Â ¾×¼Ç
context - ÁöÁ¤µÈ ¾×¼ÇÀÇ ½ÇÇàÀü¿¡ È£ÃâÇØ ¿·ÀÇ ¿µ¿ªÀÇ Æ¯±Ç¿¡ Àû¿ëÇØ¾ß ÇÒ Á¦ÇÑÀ» ³ªÅ¸³»´Â ¡¸¾×¼¼½º Á¦¾î ÄÁÅؽºÆ® ¡¹. context°¡ nullÀÎ °æ¿ì, Ãß°¡ÀÇ Á¦ÇÑÀº Àû¿ëµÇÁö ¾Ê´Â´Ù
¹Ýȯ°ª:
¾×¼ÇÀÇ run ¸Þ¼­µå¿¡ ÀÇÇØ ¸®ÅÏµÈ °ª
¿¹¿Ü:
PrivilegedActionException - ÁöÁ¤µÈ ¾×¼ÇÀÇ run ¸Þ¼­µå°¡ ¡¸Ã¼Å©µÈ´Ù¡¹¿¹¿Ü¸¦ Throw ÇßÀ» °æ¿ì
NullPointerException - ¾×¼ÇÀÌ nullÀÎ °æ¿ì
°ü·Ã Ç׸ñ:
doPrivileged(PrivilegedAction), doPrivileged(PrivilegedExceptionAction, AccessControlContext)

getContext

public static AccessControlContext  getContext()
ÇöÀçÀÇ threadÀÇ »ó¼ÓµÈ AccessControlContext¸¦ Æ÷ÇÔÇÑ, ÇöÀçÀÇ È£ÃâÃø ÄÁÅؽºÆ® ÀÇ ¡¸snapshot¡¹¸¦ ÃëµæÇØ, AccessControlContext °´Ã¼¿¡ ¹èÄ¡ÇÕ´Ï´Ù. ÀÌ ÄÁÅؽºÆ®Àº ³ªÁß¿¡ ´Ù¸¥ threadµîÀ¸·Î °Ë»çµÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.

¹Ýȯ°ª:
ÇöÀçÀÇ ÄÁÅؽºÆ®¿¡ ±Ù°ÅÇÏ´Â AccessControlContext
°ü·Ã Ç׸ñ:
AccessControlContext

checkPermission

public static void checkPermission(Permission  perm)
                            throws AccessControlException 
ÇöÀç À¯È¿ÇÑ ½ÃÅ¥·¯Æ¼ Á¤Ã¥¿¡ ±â¹ÝÇØ ÁöÁ¤µÈ Á¢±Ù ±ÇÇÑ¿¡ ÀÇÇØ ³ªÅ¸³ª´Â ¾×¼¼½º ¿ä±¸°¡ Çã°¡µÇ´ÂÁö, °ÅºÎµÉ±î¸¦ °áÁ¤ÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå´Â ¾×¼¼½º ¿ä±¸°¡ Çã°¡µÇ´Â °æ¿ì¿¡´Â ¾Æ¹«°Íµµ ÇÏÁö ¾Ê°í º¹±ÍÇØ, ±×·¸Áö ¾ÊÀº °æ¿ì¿¡´Â ÀûÀýÇÑ AccessControlExceptionÀ» Throw ÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
perm - ¿ä±¸ Á¢±Ù ±ÇÇÑ
¿¹¿Ü:
AccessControlException - ÇöÀçÀÇ ½ÃÅ¥·¯Æ¼ Á¤Ã¥¿¡ ±â¹ÝÇØ ÁöÁ¤µÈ Á¢±Ù ±ÇÇÑÀÌ Çã°¡µÇÁö ¾Ê´Â °æ¿ì
NullPointerException - ÁöÁ¤µÈ Á¢±Ù ±ÇÇÑÀÌ null À̸ç, ±× Á¢±Ù ±ÇÇÑÀÌ ÇöÀç À¯È¿ÇÑ ½ÃÅ¥·¯Æ¼ Á¤Ã¥¿¡ ±Ù°ÅÇØ Ã¼Å©µÇ¾úÀ» °æ¿ì

JavaTM 2 Platform
Standard Ed. 5.0

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.