JavaTM 2
Platform
Std.  Ed.  v1. 4.0

javax.security.auth
Ŭ·¡½º Policy

java.lang.Object 
  |
  +--javax.security.auth.Policy

Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  JDK ¹öÁ¯ 1.4 ·Î, java.security.Policy ·Î ¿Å°ÜÁ³½À´Ï´Ù. java.security.Policy ¿¡´Â ´ÙÀ½ÀÇ ¸Þ¼Òµå°¡ Á¸ÀçÇÕ´Ï´Ù.
 	public PermissionCollection getPermissions
  	    (java.security.ProtectionDomain pd)
 
 
¶Ç, ProtectionDomain ¿¡´Â ´ÙÀ½ÀÇ constructor ÀÌ ÀÖ½À´Ï´Ù.
	public ProtectionDomain
	    (CodeSource cs,
	     PermissionCollection permissions,
	     ClassLoader loader,
	     Principal[] principals)
 
À̰͵é 2 °³ÀÇ API ´Â È£Ãâ Ãø¿¡, Principal º£À̽ºÀÇ Permission ¿£Æ®¸®¿ë Policy ÀÇ ¹®ÀǸ¦ ½ÇÇàÇÏ´Â ¼ö´ÜÀ» Á¦°øÇÕ´Ï´Ù.

public abstract class Policy
extends Object

Subject º£À̽ºÀÇ ½ÂÀÎÀÇ ½Ã½ºÅÛ Á¤Ã¥À» ³ªÅ¸³»´Â abstract Ŭ·¡½ºÀÔ´Ï´Ù. ÀÌ Å¬·¡½ºÀÇ ¼­ºê Ŭ·¡½º ±¸Çö¿¡¼­´Â Subject º£À̽ºÀÇ ¾×¼¼½º Á¦¾î Policy ¸¦ ÁöÁ¤ÇÏ´Â ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù.

Policy ¿ÀºêÁ§Æ®´Â ´ÙÀ½ÀÇ ¹æ¹ýÀ¸·Î,Principal ·Î¼­ ½ÇÇàÇϰí ÀÖ´Â Äڵ忡 ºÎ¿©µÈ Permission ¼¼Æ®¸¦ Äí¿¡¸®-ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

	policy = Policy.getPolicy();
	PermissionCollection perms = policy.getPermissions(subject,
							codeSource);
 
Policy ¿ÀºêÁ§Æ®¿¡¼­´Â ·ÎÄà Æú¸®½Ã¸¦ ÂüÁ¶ÇØ, ÀûÀýÇÑ Permissions ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù. µ¹·ÁÁÖ¾îÁö´Â Permissions ¿ÀºêÁ§Æ®¿¡´Â ÁöÁ¤ÇÑ subject ¿¡ °ü·ÃÁöÀ» ¼ö ÀÖ¾ú´ø Principal ¿¡ ºÎ¿©µÇ¾î ÁöÁ¤ÇÑ codeSource ¿¡ ÀÇÇØ ÁöÁ¤µÈ Äڵ忡 ºÎ¿©µÈ Permission °¡ ÀÖ½À´Ï´Ù.

Policy ¿¡´Â ÀÌÇÏ¿¡ ³ªÅ¸³»´Â Á¤º¸°¡ ÀúÀåµË´Ï´Ù. ÀÌ ¿¹¿¡¼­´Â ´ÜÁö µðÆúÆ®ÀÇ Policy ±¸ÇöÀÇ ±¸¹®À» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. ÀÌ Å¬·¡½ºÀÇ ¼­ºê Ŭ·¡½º ±¸Çö¿¡¼­´Â ´Ù¸¥ ±¸¹®À» ±¸ÇöÇÒ ¼ö ÀÖ¾î ÆÄÀÏ, µ¥ÀÌŸº£À̽º, ¼­¹ö¶ó°í ÇÏ´Â ÀÓÀÇÀÇ ¼Ò½º·ÎºÎÅÍ Policy ¸¦ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.

Policy ÀÇ °¢ ¿£Æ®¸®´Â grant ¿£Æ®¸®·Î¼­ ³ªÅ¸³»Áý´Ï´Ù. °¢ grant ¿£Æ®¸®¿¡¼­´Â ÄÚµå º£À̽º, ÄÚµåÀÇ ¼­¸íÀÚ, Principal ¿¡ °üÇÑ 3 Ç׸ñ, ±×¸®°í ±× 3 Ç׸ñ¿¡ ºÎ¿©µÈ Permission ¸¦ ÁöÁ¤ÇÕ´Ï´Ù.

	grant CodeBase ["URL"], Signedby ["signers"],
	      Principal [Principal_Class] "Principal_Name" {
	    Permission Permission_Class ["Target_Name"]
					[, "Permission_Actions"]
					[, signedBy "SignerName"];
	};
 
3 Ç׸ñÀÇ À̸§°ú °ªÆä¾î¿¡ À־ÀÇ CodeBase ÄÄÆÛ³ÍÆ®¿Í Signedby ÄÄÆÛ³ÍÆ®´Â »ý·« °¡´ÉÇÕ´Ï´Ù. Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â ÀÓÀÇÀÇ ÄÚµå º£À̽º°¡ ÀÏÄ¡ÇØ, ÀÓÀÇÀÇ ¼­¸íÀÚ (¼­¸í ¾øÀ½ÀÇ Äڵ带 Æ÷ÇÔÇÑ´Ù)°¡ ÀÏÄ¡ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù.
	grant CodeBase "foo.com", Signedby "foo",
	      Principal com.sun.security.auth.SolarisPrincipal "duke" {
	    permission java.io.FilePermission "/home/duke", "read, write";
	};
 
ÀÌ grant ¿£Æ®¸®¿¡¼­´Â foo °¡ ¼­¸íÇÑ, À̸§ duke ÀÇ SolarisPrincipal ·Î ½ÇÇàÇϰí ÀÖ´Â foo.com ·ÎºÎÅÍÀÇ Äڵ忡,Permission °¡ 1 °³ ÀÖ´Â °ÍÀ» ÁöÁ¤Çϰí ÀÖ½À´Ï´Ù. ÀÌ Permission ¿¡¼­´Â /home/duke µð·ºÅ丮¿¡ÀÇ ÆÄÀÏÀÇ ÀÐ°í ¾²±â¸¦, ½ÇÇàÇÏ´Â Äڵ忡 Çã°¡ÇÕ´Ï´Ù.

¾î´À Principal ·Î ¡¸½ÇÇࡹÇÏ·Á¸é , ÄÚµå·Î Subject.doAs(subject, ...) ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇϸé(ÀÚ), ÁöÁ¤ÇÑ Subject ¿¡ °ü·ÃÁöÀ» ¼ö ÀÖ´ø ¸ðµç Principal ·Î ÄÚµå´Â ½ÇÇàµË´Ï´Ù. ÀÌ Policy ( ¹× ÀÌ Policy ¿¡ ºÎ¿©µÈ Permission)´Â Subject.doAs ÀÇ È£Ãâ ÈÄ¿¡ À¯È¿ÇÏ°Ô µË´Ï´Ù.

1 °³ÀÇ grant ¿£Æ®¸®³»¿¡, º¹¼öÀÇ Principal ¸¦ ±â¼úÇÒ ¼ö ÀÖ½À´Ï´Ù. grant ¿£Æ®¸®³»ÀÇ Principal ´Â ¸ðµÎ, ÁöÁ¤ÇÑ Permission °¡ ºÎ¿©µÇ´Â Subject ¿¡ ´ëÇØ,Subject.doAs ¿¡°Ô °Ç³×Áö´Â Subject ¿¡ °ü·ÃÁöÀ» ¼ö ÀÖÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.

	grant Principal com.sun.security.auth.SolarisPrincipal "duke",
	      Principal com.sun.security.auth.SolarisNumericUserPrincipal "0" {
	    permission java.io.FilePermission "/home/duke", "read, write";
	    permission java.net.SocketPermission "duke.com", "connect";
	};
 
ÀÌ ¿£Æ®¸®¿¡¼­´Â duke ¿Í 0 ÀÇ ¾çÂÊ ¸ðµÎ·Î ½ÇÇàµÇ´Â Äڵ忡, duke ÀÇ È¨ µð·ºÅ丮³»ÀÇ ÆÄÀÏ¿¡ÀÇ ÀÐ°í ¾²±â ¾×¼¼½º±ÇÀ» ºÎ¿©ÇØ, ÇÑÃþ ´õ duke.com ¿¡ÀÇ ¼ÒÄÏ Á¢¼ÓÀÇ ÀÛ¼º±ÇÀ» ºÎ¿©ÇÕ´Ï´Ù.

Principal º£À̽º°¡ ¾Æ´Ñ grant ¿£Æ®¸®´Â ÀÌ Policy ¿¡¼­´Â Çã°¡µÇÁö ¾Ê½À´Ï´Ù. ±× ¶§¹®¿¡, ´ÙÀ½ÀÇ grant ¿£Æ®¸®´Â °ÅºÎµË´Ï´Ù.

	grant CodeBase "foo.com", Signedby "foo" {
	    permission java.io.FilePermission "/tmp/scratch", "read, write";
	};
 
ÀÌ·¯ÇÑ ¾×¼¼½º±ÇÀº java.security.Policy ¿¡ ±â¼úÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

µðÆúÆ®ÀÇ Policy ±¸ÇöÀº (Java ½ÃÅ¥·¯Æ¼ ÇÁ·ÎÆÛƼ ÆÄÀÏÀÇ) auth.policy.provider ½ÃÅ¥·¯Æ¼ ÇÁ·ÎÆÛƼ¿¡, Èñ¸ÁÇÏ´Â Policy ±¸Çö Ŭ·¡½ºÀÇ ¿ÏÀü ÁöÁ¤¸íÀ» ¼³Á¤ÇÏ´Â °ÍÀ¸·Î½á º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù. Java ½ÃÅ¥·¯Æ¼ ÇÁ·ÎÆÛƼ ÆÄÀÏÀº <JAVA_HOME>/lib/security/java.security ¶ó´Â À̸§ÀÇ ÆÄÀÏ¿¡ ÀúÀåµÇ°í ÀÖ½À´Ï´Ù. ¿©±â¼­, <JAVA_HOME> ´Â JDK ÀÇ ÀνºÅçó µð·ºÅ丮¸¦ ³ªÅ¸³À´Ï´Ù.


»ý¼ºÀÚÀÇ °³¿ä
protected Policy ()
          Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  À¯ÀÏÇÑ constructor ÀÔ´Ï´Ù.
 
¸Þ¼ÒµåÀÇ °³¿ä
abstract  PermissionCollection getPermissions (Subject  subject, CodeSource  cs)
          Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  ÁöÁ¤ÇÑ CodeSource ¿¡ °ü·ÃÁöÀ» ¼ö ÀÖ¾ú´ø Principal ¿¡ ºÎ¿©µÈ Permission ¸¦ ÃëµæÇÕ´Ï´Ù.
static Policy getPolicy ()
          Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  ÀνºÅç ³¡³­ Policy ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù.
abstract  void refresh ()
          Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  Policy ÀÇ ¸®ÇÁ·¹½¬ ¹× Àç·Îµå¸¦ ½ÇÇàÇÕ´Ï´Ù.
static void setPolicy (Policy  policy)
          Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  ½Ã½ºÅÛ ÀüüÀÇ Policy ¿ÀºêÁ§Æ®¸¦ ¼³Á¤ÇÕ´Ï´Ù.
 
Ŭ·¡½º java.lang. Object ¿¡¼­ »ó¼Ó¹ÞÀº ¸Þ¼Òµå
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

»ý¼ºÀÚÀÇ »ó¼¼

Policy

protected Policy()
Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  
À¯ÀÏÇÑ constructor ÀÔ´Ï´Ù. ¼­ºê Ŭ·¡½ºÀÇ constructor ¿¡ ÀÇÇÑ È£ÃâÀº Åë»óÀº ¾Ï¹¬ÀûÀΠȣÃâÀÔ´Ï´Ù.

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

getPolicy

public static Policy  getPolicy()
Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  
ÀνºÅç ³¡³­ Policy ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â ÃÖÃÊ·Î AuthPermission("getPolicy") ¾×¼¼½º±ÇÀ» »ç¿ëÇØ SecurityManager.checkPermission ¸¦ È£ÃâÇØ, È£Ãâ Ãø¿¡ Policy ¿ÀºêÁ§Æ®¸¦ ÃëµæÇÒ ¼ö ÀÖ´Â ¾×¼¼½º±ÇÀÌ ÀÖÀ»Áö ¾î¶³Áö¸¦ È®ÀÎÇÕ´Ï´Ù.

¹Ýȯ°ª:
ÀνºÅç ³¡³­ Policy. ¹Ýȯ°ªÀº null °¡ µÇÁö ¾Ê´Â´Ù
¿¹¿Ü:
SecurityException - ÇöÀçÀÇ thread°¡ Policy ¿ÀºêÁ§Æ®¸¦ ÃëµæÇÏ´Â ¾×¼¼½º±ÇÀ» °¡ÁöÁö ¾Ê´Â °æ¿ì
°ü·Ã Ç׸ñ:
setPolicy(javax.security.auth.Policy)

setPolicy

public static void setPolicy(Policy  policy)
Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  
½Ã½ºÅÛ ÀüüÀÇ Policy ¿ÀºêÁ§Æ®¸¦ ¼³Á¤ÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â ÃÖÃÊ·Î AuthPermission("setPolicy") ¾×¼¼½º±ÇÀ» »ç¿ëÇØ SecurityManager.checkPermission ¸¦ È£ÃâÇØ, È£Ãâ Ãø¿¡ Policy ¸¦ ¼³Á¤ÇÏ´Â ¾×¼¼½º±ÇÀÌ ÀÖÀ»Áö ¾î¶³Áö¸¦ È®ÀÎÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
policy - ½Å±Ô ½Ã½ºÅÛ Policy ¿ÀºêÁ§Æ®
¿¹¿Ü:
SecurityException - ÇöÀçÀÇ thread°¡ Policy ¸¦ ¼³Á¤ÇÏ´Â ¾×¼¼½º±ÇÀ» °¡ÁöÁö ¾Ê´Â °æ¿ì
°ü·Ã Ç׸ñ:
getPolicy()

getPermissions

public abstract PermissionCollection  getPermissions(Subject  subject,
                                                    CodeSource  cs)
Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  
ÁöÁ¤ÇÑ CodeSource ¿¡ °ü·ÃÁöÀ» ¼ö ÀÖ¾ú´ø Principal ¿¡ ºÎ¿©µÈ Permission ¸¦ ÃëµæÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
subject - Subject. Subject ¿¡ °ü·ÃÁöÀ» ¼ö ÀÖ¾ú´ø Principal ´Â ÁöÁ¤ÇÑ CodeSource ¿Í ÇÔ²², ÀÌ ¸Þ¼Òµå°¡ µ¹·ÁÁÖ´Â Permission ¸¦ ÆÇÁ¤ÇÑ´Ù. ÀÌ ÆÄ¶ó¹ÌÅÍ´Â null µµ °¡´É

cs - CodeSource °¡ ÁöÁ¤ÇÑ ÄÚµå. CodeSource ´Â ÁöÁ¤ÇÑ Subject ¿Í ÇÔ²², ÀÌ ¸Þ¼Òµå°¡ µ¹·ÁÁÖ´Â Permission ¸¦ ÆÇÁ¤ÇÑ´Ù. ÀÌ ÆÄ¶ó¹ÌÅÍ´Â null µµ °¡´É
¹Ýȯ°ª:
subject ¹× cs ÆÄ¶ó¹ÌÅÍ·Î ÁöÁ¤µÈ ¸ðµç Subject ¹× Äڵ忡 ºÎ¿©µÈ Permission ÀÇ Collection

refresh

public abstract void refresh()
Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  
Policy ÀÇ ¸®ÇÁ·¹½¬ ¹× Àç·Îµå¸¦ ½ÇÇàÇÕ´Ï´Ù.

ÀÌ ¸Þ¼Òµå´Â ÀÌ ¿ÀºêÁ§Æ®°¡, ÇöÀçÀÇ Æú¸®½ÃÀÇ ¸®ÇÁ·¹½¬³ª Àç·Îµå¸¦ ½Ç½ÃÇÏ´Â ¿øÀÎÀÌ µË´Ï´Ù. À̰ÍÀº ±¸Çö¿¡ ÀÇÁ¸ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î Policy ¿ÀºêÁ§Æ®°¡ ÆÄÀÏ¿¡ ÀúÀåµÇ°í ÀÖ´Â °æ¿ì,refresh ¸¦ È£ÃâÇϸé(ÀÚ), ÆÄÀÏÀÌ Çѹø ´õ ÀоÁö°Ô µË´Ï´Ù.

¿¹¿Ü:
SecurityException - È£Ãâ Ãø¿¡, Policy ¸¦ ¸®ÇÁ·¹½¬ ÇÏ´Â ¾×¼¼½º±ÇÀÌ ¾ø´Â °æ¿ì

JavaTM 2
Platform
Std.  Ed.  v1. 4.0

¹ö±×ÀÇ º¸°í¿Í ±â´ÉÀÇ ¸®Äù½ºÆ®
ÀÌ¿ÜÀÇ API ·¹ÆÛ·±½º ¹× °³¹ßÀÚ¿ë ¹®¼­¿¡ ´ëÇØ¼­´Â Java 2 SDK SE °³¹ßÀÚ¿ë ¹®¼­¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. °³¹ßÀÚÀü¿ëÀÇ »ó¼¼ÇÑ ÇØ¼³, °³³äÀÇ °³¿ä, ¿ë¾îÀÇ Á¤ÀÇ, ¹ö±×ÀÇ È¸ÇÇÃ¥, ¹× ÄÚµå ½Ç·Ê°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.

Java, Java 2 D, ¹× JDBC ´Â ¹Ì±¹ ¹× ±× ¿ÜÀÇ ³ª¶ó¿¡ À־ÀÇ ¹Ì±¹ Sun Microsystems, Inc. ÀÇ »óÇ¥ ȤÀº µî·Ï»óÇ¥ÀÔ´Ï´Ù.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.