public class SecurityManager extends Object
SecurityManagerã¯ã©ã¹ã«ã¯ãååãcheckã§å§ãŸãã¡ãœããã倿°ãããŸãã ãããã®ã¡ãœããã¯ãJavaã©ã€ãã©ãªå
ã®åçš®ã¡ãœããã«ãã£ãŠãã»ãã¥ãªãã£ãæãªãå¯èœæ§ã®ããæäœãå®è¡ããåã«åŒã³åºãããŸãã ãã®ãããªcheckã¡ãœããåŒåºãã®äžè¬çãªäŸã次ã«ç€ºããŸãã
SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkXXX(argument, . . . );
}
ããã«ãããã»ãã¥ãªãã£ã»ãããŒãžã£ã«ã¯ãäŸå€ãã¹ããŒããŠãªãã¬ãŒã·ã§ã³ã®å®è¡ã黿¢ããæ©äŒãäžããããŸãã ã»ãã¥ãªãã£ã»ãããŒãžã£ã»ã«ãŒãã³ã¯ãæäœãèš±å¯ãããå Žåã¯äœãè¡ããã«åŸ©åž°ããŸããæäœãèš±å¯ãããªãå Žåã¯SecurityExceptionãã¹ããŒããŸãã ãã ããcheckTopLevelWindowã¯ããããèŠçŽã®å¯äžã®äŸå€ã§ãbooleanå€ãè¿ããŸãã
çŸåšã®ã»ãã¥ãªãã£ã»ãããŒãžã£ãèšå®ããã«ã¯ãSystemã¯ã©ã¹ã®setSecurityManagerã¡ãœããã䜿çšããŸãã çŸåšã®ã»ãã¥ãªãã£ã»ãããŒãžã£ãååŸããã«ã¯getSecurityManagerã¡ãœããã䜿çšããŸãã
ç¹æ®ã¡ãœããcheckPermission(java.security.Permission)ã¯ãæå®ãããã¢ã¯ã»ã¹æš©ã«ãã£ãŠç€ºãããã¢ã¯ã»ã¹èŠæ±ãèš±å¯ãããããæåŠãããããæ±ºå®ããŸãã ããã©ã«ãã®å®è£
ã§ã¯ã次ã®ã¡ãœãããåŒã³åºãããŸãã
AccessController.checkPermission(perm);
èŠæ±ãããã¢ã¯ã»ã¹æš©ãèš±å¯ãããå ŽåãcheckPermissionã¯äœãããªãã§åŸ©åž°ããŸãã èš±å¯ãããªãå Žåã¯ãSecurityExceptionãã¹ããŒãããŸãã
Java 2 SDK v1.2ã®SecurityManagerã«ãããã®ä»ã®checkç³»ã¡ãœããã®ããã©ã«ãã®å®è£
ã§ã¯ãSecurityManager checkPermissionã¡ãœãããåŒã³åºãããŸãããã®æ¹æ³ã§ãèŠæ±ãããæäœã®å®è¡ã«å¿
èŠãªã¢ã¯ã»ã¹æš©ãåŒåºãåŽã¹ã¬ããã«ãããã©ããã調ã¹ãŸãã
ã¢ã¯ã»ã¹æš©ã®åŒæ°ã1ã€ã ãã®checkPermissionã¡ãœããã¯åžžã«ãçŸåšå®è¡äžã®ã¹ã¬ããã®ã³ã³ããã¹ãå
ã ãã§ã»ãã¥ãªãã£ã»ãã§ãã¯ãå®è¡ããŸãã ãããå®éã«ã¯ãæå®ãããã³ã³ããã¹ãå
ã§è¡ãã»ãã¥ãªãã£ã»ãã§ãã¯ããå¥ã®ã³ã³ããã¹ãå
ãã(ããšãã°ãã¯ãŒã«ãŒã»ã¹ã¬ããå
ãã)è¡ããªããã°ãªããªãå ŽåããããŸãã getSecurityContextã¡ãœãããšãã³ã³ããã¹ãåŒæ°ãå«ãcheckPermissionã¡ãœããã¯ããã®ç¶æ³ã®ããã«çšæããããã®ã§ãã getSecurityContextã¡ãœããã¯ãçŸåšã®åŒåºãåŽã³ã³ããã¹ãã®ã¹ãããã·ã§ãããè¿ããŸãã ããã©ã«ãã®å®è£
ã§ã¯AccessControlContextãªããžã§ã¯ããè¿ããŸãã åŒåºãã®äŸã次ã«ç€ºããŸãã
Object context = null; SecurityManager sm = System.getSecurityManager(); if (sm != null) context = sm.getSecurityContext();
ã¢ã¯ã»ã¹æš©ã«å ããŠã³ã³ããã¹ãã»ãªããžã§ã¯ããåãåãcheckPermissionã¡ãœããã¯ãå®è¡äžã®ã¹ã¬ããã®ã³ã³ããã¹ãã§ã¯ãªããæž¡ãããã³ã³ããã¹ãã«åŸã£ãŠã¢ã¯ã»ã¹ãå€å®ããŸãã ãã®ãããå¥ã®ã³ã³ããã¹ãå
ã®ã³ãŒãã¯ãã¢ã¯ã»ã¹æš©ãšçŽåã«ä¿åããã³ã³ããã¹ãã»ãªããžã§ã¯ããæž¡ãããšã«ãã£ãŠããã®ã¡ãœãããåŒã³åºãããšãã§ããŸãã æ¬¡ã«ç€ºãåŒåºãäŸã§ã¯ãäžã®äŸã§ååŸããã»ãã¥ãªãã£ã»ãããŒãžã£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.ReflectPermissionãããã³java.io.SerializablePermissionã§ãã
FilePermissionãšSocketPermission以å€ã®ã¯ã©ã¹ã¯ãjava.security.BasicPermissionã®ãµãã¯ã©ã¹ã§ãããã®java.security.BasicPermissionèªèº«ã¯ãã¢ã¯ã»ã¹æš©ã®ãããã»ã¬ãã«ã§ããjava.security.Permissionã®æœè±¡ãµãã¯ã©ã¹ã§ãã BasicPermissionã¯ããexitVMãããsetFactoryãããqueuePrintJobããšãã£ããéå±€çããããã£åœåèŠåã«åŸãååãå«ããã¹ãŠã®ã¢ã¯ã»ã¹æš©ã®ããã«å¿
èŠãªæ©èœãå®çŸ©ããŸãã ååã®æ«å°Ÿã«ã¯ã*ããã.*ããä»ããŠãã¯ã€ã«ãã«ãŒããæå®ã§ããŸãã ããšãã°ãã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圢åŒã®ã»ãã¥ãªãã£ã»ãããŒãžã£ãç§»æ€ããéã®ã¢ããã€ã¹ã«ã€ããŠã¯ãã»ãã¥ãªãã£ã»ããã¥ã¡ã³ããåç
§ããŠãã ããã
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) |
æå®ããããã¹ããšããŒãçªå·ããã®ãœã±ããæ¥ç¶ãåãåãããšããåŒåºãåŽã¹ã¬ããã«èš±å¯ãããŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkAccess(Thread t) |
åŒåºãåŽã¹ã¬ãããã¹ã¬ããåŒæ°ã®ä¿®æ£ãèš±å¯ãããŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkAccess(ThreadGroup g) |
åŒåºãåŽã¹ã¬ããããã¹ã¬ããã»ã°ã«ãŒãåŒæ°ã®ä¿®æ£ãèš±å¯ãããŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkAwtEventQueueAccess() |
éæšå¥šã
AWTPermissionãžã®äŸåã¯ãJavaãã©ãããã©ãŒã ã®å°æ¥ã®ã¢ãžã¥ã©åã«å¯Ÿããé害ã«ãªããŸãã ãã®ã¡ãœããã®ãŠãŒã¶ãŒã¯ä»£ããã«checkPermission(java.security.Permission)ãçŽæ¥åŒã³åºããŠãã ããã ãã®ã¡ãœããã¯å°æ¥ã®ãªãªãŒã¹ã§ã¢ã¯ã»ã¹æš©java.security.AllPermissionããã§ãã¯ããããã«å€æŽãããŸãã |
void |
checkConnect(String host, int port) |
æå®ããããã¹ããšããŒãçªå·ãžã®ãœã±ããæ¥ç¶ããªãŒãã³ããããšããåŒåºãåŽã¹ã¬ããã«èš±å¯ãããŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkConnect(String host, int port, Object context) |
æå®ãããã»ãã¥ãªãã£ã»ã³ã³ããã¹ãããæå®ããããã¹ããšããŒãçªå·ãžã®ãœã±ããæ¥ç¶ããªãŒãã³ããã¢ã¯ã»ã¹æš©ãæã£ãŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkCreateClassLoader() |
åŒåºãåŽã¹ã¬ãããæ°ããã¯ã©ã¹ã»ããŒããŒã®äœæãèš±å¯ãããŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkDelete(String file) |
æå®ããããã¡ã€ã«ãåé€ããããšãåŒåºãåŽã¹ã¬ããã«èš±å¯ãããŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkExec(String cmd) |
ãµãããã»ã¹ã®äœæãåŒåºãåŽã¹ã¬ããã«èš±å¯ãããŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkExit(int status) |
æå®ãããã¹ããŒã¿ã¹ã»ã³ãŒãã§Javaä»®æ³ãã·ã³ã忢ãããèš±å¯ããåŒåºãåŽã®ã¹ã¬ãããæã£ãŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkLink(String lib) |
æåååŒæ°ãã¡ã€ã«ã§æå®ãããã©ã€ãã©ãªã»ã³ãŒããžã®åçãªã³ã¯ããåŒåºãåŽã¹ã¬ããã«èš±å¯ãããŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkListen(int port) |
æå®ãããããŒã«ã«ã»ããŒãçªå·ã§æ¥ç¶èŠæ±ãåŸ
æ©ããããšãåŒåºãåŽã¹ã¬ããã«èš±å¯ãããŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkMemberAccess(Class<?> clazz, int which) |
éæšå¥šã
ãã®ã¡ãœããã¯ããšã©ãŒãçºçãããããã©ã³ã¿ã€ã ã«ãã£ãŠåŒ·å¶ã§ããªãã¹ã¿ãã¯ã®æ·±ã4ã«ããåŒã³åºãåŽã«äŸåããŸãã ãã®ã¡ãœããã®ãŠãŒã¶ãŒã¯ä»£ããã«
checkPermission(java.security.Permission)ãçŽæ¥åŒã³åºããŠãã ããã ãã®ã¡ãœããã¯å°æ¥ã®ãªãªãŒã¹ã§ã¢ã¯ã»ã¹æš©java.security.AllPermissionããã§ãã¯ããããã«å€æŽãããŸãã |
void |
checkMulticast(InetAddress maddr) |
IPãã«ããã£ã¹ã(join/leave/send/receive)ã®äœ¿çšãåŒåºãåŽã¹ã¬ããã«èš±å¯ãããŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkMulticast(InetAddress maddr, byte ttl) |
éæšå¥šã
代ããã«#checkPermission(java.security.Permission)ã䜿çšãã
|
void |
checkPackageAccess(String pkg) |
åŒæ°ã§æå®ãããããã±ãŒãžãžã®ã¢ã¯ã»ã¹ãåŒåºãåŽã¹ã¬ããã«èš±å¯ãããŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkPackageDefinition(String pkg) |
åŒæ°ã§æå®ãããããã±ãŒãžå
ã®ã¯ã©ã¹ãå®çŸ©ããããšãåŒåºãåŽã¹ã¬ããã«èš±å¯ãããŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkPermission(Permission perm) |
æå®ãããã¢ã¯ã»ã¹æš©ã§èŠæ±ããã¢ã¯ã»ã¹ããçŸåšæå¹ãªã»ãã¥ãªãã£ã»ããªã·ãŒã«ç
§ãããŠèš±å¯ãããªãã£ãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkPermission(Permission perm, Object context) |
æå®ãããã»ãã¥ãªãã£ã»ã³ã³ããã¹ãããæå®ãããã¢ã¯ã»ã¹æš©ã瀺ããªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ãæåŠãããå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkPrintJobAccess() |
å°å·ãžã§ãèŠæ±ã®éå§ãåŒåºãåŽã¹ã¬ããã«èš±å¯ãããŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkPropertiesAccess() |
ã·ã¹ãã ã»ããããã£ã®ã¢ã¯ã»ã¹ãŸãã¯å€æŽãåŒåºãåŽã¹ã¬ããã«èš±å¯ãããŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkPropertyAccess(String key) |
keyã§æå®ãããã·ã¹ãã ã»ããããã£ãžã®ã¢ã¯ã»ã¹ããåŒåºãåŽã¹ã¬ããã«èš±å¯ãããŠããªãå Žåã«ãSecurityExceptionãã¹ããŒããŸãã |
void |
checkRead(FileDescriptor fd) |
æå®ããããã¡ã€ã«èšè¿°åããã®èªåããåŒåºãåŽã¹ã¬ããã«èš±å¯ãããŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkRead(String file) |
æåååŒæ°ã§æå®ããããã¡ã€ã«ã®èªåããåŒåºãåŽã¹ã¬ããã«èš±å¯ãããŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkRead(String file, Object context) |
æåååŒæ°ã§æå®ããããã¡ã€ã«ãèªã¿åãèš±å¯ããæå®ãããã»ãã¥ãªãã£ã»ã³ã³ããã¹ãã«ãªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkSecurityAccess(String target) |
æå®ãããã¢ã¯ã»ã¹æš©ã¿ãŒã²ããåã®ã¢ã¯ã»ã¹æš©ãèš±å¯ãããããããã¯æåŠããããå€å®ããŸãã
|
void |
checkSetFactory() |
ServerSocketãŸãã¯Socketã䜿çšãããœã±ããã»ãã¡ã¯ããªããŸãã¯URLã䜿çšããã¹ããªãŒã ã»ãã³ãã©ã»ãã¡ã¯ããªãèšå®ããããšãåŒåºãåŽã¹ã¬ããã«èš±å¯ãããŠããªãå Žåã«ãSecurityExceptionãã¹ããŒããŸãã |
void |
checkSystemClipboardAccess() |
éæšå¥šã
AWTPermissionãžã®äŸåã¯ãJavaãã©ãããã©ãŒã ã®å°æ¥ã®ã¢ãžã¥ã©åã«å¯Ÿããé害ã«ãªããŸãã ãã®ã¡ãœããã®ãŠãŒã¶ãŒã¯ä»£ããã«checkPermission(java.security.Permission)ãçŽæ¥åŒã³åºããŠãã ããã ãã®ã¡ãœããã¯å°æ¥ã®ãªãªãŒã¹ã§ã¢ã¯ã»ã¹æš©java.security.AllPermissionããã§ãã¯ããããã«å€æŽãããŸãã |
boolean |
checkTopLevelWindow(Object window) |
éæšå¥šã
AWTPermissionãžã®äŸåã¯ãJavaãã©ãããã©ãŒã ã®å°æ¥ã®ã¢ãžã¥ã©åã«å¯Ÿããé害ã«ãªããŸãã ãã®ã¡ãœããã®ãŠãŒã¶ãŒã¯ä»£ããã«checkPermission(java.security.Permission)ãçŽæ¥åŒã³åºããŠãã ããã ãã®ã¡ãœããã¯å°æ¥ã®ãªãªãŒã¹ã§ã¢ã¯ã»ã¹æš©java.security.AllPermissionããã§ãã¯ããããã«å€æŽãããŸãã |
void |
checkWrite(FileDescriptor fd) |
æå®ããããã¡ã€ã«èšè¿°åãžã®æžèŸŒã¿ãåŒåºãåŽã¹ã¬ããã«èš±å¯ãããŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
void |
checkWrite(String file) |
æåååŒæ°ã§æå®ããããã¡ã€ã«ãžã®æžèŸŒã¿ãåŒåºãåŽã¹ã¬ããã«èš±å¯ãããŠããªãå Žåã«ã
SecurityExceptionãã¹ããŒããŸãã |
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() |
ãã®ã¡ãœãããåŒã³åºãããšãã«äœæããããä»»æã®æ°ããã¹ã¬ããã®ã€ã³ã¹ã¿ã³ã¹ãçæããããã®ãã¹ã¬ããã»ã°ã«ãŒããè¿ããŸãã
|
protected boolean |
inClass(String name) |
éæšå¥šã
ãã®ã¿ã€ãã®ã»ãã¥ãªãã£ã»ãã§ãã¯ã¯éæšå¥šã§ãã 代ããã«
checkPermissionã®åŒåºãã䜿çšããããšããèŠãããŸãã |
protected boolean |
inClassLoader() |
éæšå¥šã
ãã®ã¿ã€ãã®ã»ãã¥ãªãã£ã»ãã§ãã¯ã¯éæšå¥šã§ãã 代ããã«
checkPermissionã®åŒåºãã䜿çšããããšããèŠãããŸãã |
@Deprecated protected boolean inCheck
checkPermissionã®åŒåºãã䜿çšããããšããèŠãããŸãã trueã§ããããã§ãªãå Žåã¯falseã§ããpublic SecurityManager()
SecurityManagerãæ§ç¯ããŸãã
ã»ãã¥ãªãã£ã»ãããŒãžã£ããã§ã«ã€ã³ã¹ããŒã«ãããŠããå Žåããã®ã¡ãœããã¯æåã«ã»ãã¥ãªãã£ã»ãããŒãžã£ã®checkPermissionã¡ãœãããåŒã³åºããŸãããã®ãšããRuntimePermission("createSecurityManager")ã¢ã¯ã»ã¹æš©ã䜿çšããããšã«ãããåŒåºãåŽã®ã¹ã¬ãããæ°ããã»ãã¥ãªãã£ã»ãããŒãžã£ãäœæããã¢ã¯ã»ã¹æš©ã確å®ã«æã€ããã«ããŸãã ãã®çµæãSecurityExceptionãã¹ããŒãããããšããããŸãã
SecurityException - ã»ãã¥ãªãã£ã»ãããŒãžã£ããã§ã«ããããã®checkPermissionã¡ãœããããæ°ããã»ãã¥ãªãã£ã»ãããŒãžã£ã®äœæãèš±å¯ããªãå ŽåãSystem.getSecurityManager(), checkPermission, RuntimePermission@Deprecated public boolean getInCheck()
checkPermissionã®åŒåºãã䜿çšããããšããèŠãããŸãã inCheckãã£ãŒã«ãã®å€ã ã»ãã¥ãªãã£ã»ãã§ãã¯ãé²è¡äžã®å Žåã¯trueãããã§ãªãå Žåã¯falseã inCheckprotected Class[] getClassContext()
é
åã®é·ãã¯ãå®è¡ã¹ã¿ãã¯äžã«ããã¡ãœããã®æ°ã«ãªããŸãã ã€ã³ããã¯ã¹0ã®èŠçŽ ã¯çŸåšã¡ãœãããå®è¡äžã®ã¯ã©ã¹ãã€ã³ããã¯ã¹1ã®èŠçŽ ã¯ãã®ã¡ãœããã®åŒåºãã¯ã©ã¹ãšãªããŸãã
@Deprecated protected ClassLoader currentClassLoader()
checkPermissionã®åŒåºãã䜿çšããããšããèŠãããŸãã ClassLoader.getSystemClassLoader()ã«ãã£ãŠè¿ããã)ãŸãã¯ãã®ç¥å
ã®ã²ãšã€ã«çãããªãã¯ã©ã¹ã»ããŒããŒã§ãããšå®çŸ©ãããŸãã
ãã®ã¡ãœããã¯ã次ã®3ã€ã®å Žåã«nullãè¿ããŸãã
AccessController.doPrivileged(java.security.PrivilegedAction<T>)ãåç
§)ãŸã§ã®å®è¡ã¹ã¿ãã¯äžã®ãã¹ãŠã®ã¡ãœããããã·ã¹ãã ã»ã¯ã©ã¹ã»ããŒããŒãŸãã¯ãã®äžäœãªããžã§ã¯ãã®1ã€ã䜿ã£ãŠå®çŸ©ãããã¯ã©ã¹ããã®ãã®ã§ããå Žåã
java.security.AllPermissionã䜿ã£ãŠcheckPermissionãåŒã³åºãããšãã«ãçµæãSecurityExceptionã§ã¯ãªãå Žåã
getSystemClassLoader, checkPermission@Deprecated protected Class<?> currentLoadedClass()
checkPermissionã®åŒåºãã䜿çšããããšããèŠãããŸãã ClassLoader.getSystemClassLoader()ã«ãã£ãŠè¿ããã)ãŸãã¯ãã®ç¥å
ã®ã²ãšã€ã«çãããªãã¯ã©ã¹ã»ããŒããŒã§ãããšå®çŸ©ãããŸãã
ãã®ã¡ãœããã¯ã次ã®3ã€ã®å Žåã«nullãè¿ããŸãã
AccessController.doPrivileged(java.security.PrivilegedAction<T>)ãåç
§)ãŸã§ã®å®è¡ã¹ã¿ãã¯äžã®ãã¹ãŠã®ã¡ãœããããã·ã¹ãã ã»ã¯ã©ã¹ã»ããŒããŒãŸãã¯ãã®äžäœãªããžã§ã¯ãã®1ã€ã䜿ã£ãŠå®çŸ©ãããã¯ã©ã¹ããã®ãã®ã§ããå Žåã
java.security.AllPermissionã䜿ã£ãŠcheckPermissionãåŒã³åºãããšãã«ãçµæãSecurityExceptionã§ã¯ãªãå Žåã
getSystemClassLoader, checkPermission@Deprecated protected int classDepth(String name)
checkPermissionã®åŒåºãã䜿çšããããšããèŠãããŸãã name - æ€çŽ¢ããã¯ã©ã¹ã®å®å
šæå®ã®ååã-1ã@Deprecated protected int classLoaderDepth()
checkPermissionã®åŒåºãã䜿çšããããšããèŠãããŸãã ClassLoader.getSystemClassLoader()ã«ãã£ãŠè¿ããã)ãŸãã¯ãã®ç¥å
ã®ã²ãšã€ã«çãããªãã¯ã©ã¹ã»ããŒããŒã§ãããšå®çŸ©ãããŸãã
ãã®ã¡ãœããã¯ã次ã®å Žåã« -1ãè¿ããŸãã
AccessController.doPrivileged(java.security.PrivilegedAction<T>)ãåç
§)ãŸã§ã®å®è¡ã¹ã¿ãã¯äžã®ãã¹ãŠã®ã¡ãœããããã·ã¹ãã ã»ã¯ã©ã¹ã»ããŒããŒãŸãã¯ãã®äžäœãªããžã§ã¯ãã®1ã€ã䜿ã£ãŠå®çŸ©ãããã¯ã©ã¹ããã®ãã®ã§ããå Žåã
java.security.AllPermissionã䜿ã£ãŠcheckPermissionãåŒã³åºãããšãã«ãçµæãSecurityExceptionã§ã¯ãªãå Žåã
getSystemClassLoader, checkPermission@Deprecated protected boolean inClass(String name)
checkPermissionã®åŒåºãã䜿çšããããšããèŠãããŸãã name - ã¯ã©ã¹ã®å®å
šæå®ã®ååãtrueããªãå Žåã¯falseã@Deprecated protected boolean inClassLoader()
checkPermissionã®åŒåºãã䜿çšããããšããèŠãããŸãã currentClassLoaderã®åŒåºãã®æ»ãå€ãnullã§ãªãå Žåã¯trueãcurrentClassLoaderpublic Object getSecurityContext()
checkConnectã¡ãœãããã2ã€ã®åŒæ°ãåãcheckReadã¡ãœãããªã©ã§äœ¿ããŸãã ãããã®ã¡ãœãããå¿
èŠãªã®ã¯ãä¿¡é Œã§ããã¡ãœããããå¥ã®ã¡ãœããã®ä»£ããã«ãã¡ã€ã«ãèªã¿èŸŒãã ãããœã±ããããªãŒãã³ãããããããã«åŒã³åºãããããã§ãã ä¿¡é Œã§ããã¡ãœããã¯ãã»ãã®(ããããã¯ä¿¡é Œã§ããªã)ã¡ãœããããã®æäœãèªåã§è¡ãããšãèš±å¯ãããŠãããã©ããããå€å®ããå¿
èŠããããŸãã
ãã®ã¡ãœããã®ããã©ã«ãã®å®è£
ã¯ãAccessControlContextãªããžã§ã¯ããè¿ããŸãã
checkConnect, checkRead, AccessControlContextpublic void checkPermission(Permission perm)
SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãæå®ãããã¢ã¯ã»ã¹æš©ã§AccessController.checkPermissionãåŒã³åºããŸãã
perm - èŠæ±ãããã¢ã¯ã»ã¹æš©ãSecurityException - çŸåšã®ã»ãã¥ãªãã£ã»ããªã·ãŒã«ãã£ãŠã¢ã¯ã»ã¹ãæåŠãããå ŽåãNullPointerException - ã¢ã¯ã»ã¹æš©ã®åŒæ°ãnullã®å Žåãpublic void checkPermission(Permission perm, Object context)
SecurityExceptionãã¹ããŒããŸãã contextã¯ãçŽåã®getSecurityContextåŒåºãã«ãã£ãŠè¿ãããã»ãã¥ãªãã£ã»ã³ã³ããã¹ãã§ããå¿
èŠããããŸããã¢ã¯ã»ã¹å¶åŸ¡ã®æ±ºå®ã¯ããã®ã»ãã¥ãªãã£ã»ã³ã³ããã¹ãã«å¯ŸããŠæ§æãããŠããã»ãã¥ãªãã£ã»ããªã·ãŒã«åºã¥ããŠè¡ãããŸãã
contextãAccessControlContextã®ã€ã³ã¹ã¿ã³ã¹ã§ããå ŽåãAccessControlContext.checkPermissionã¡ãœãããæå®ãããã¢ã¯ã»ã¹æš©ã§åŒã³åºãããŸãã
contextãAccessControlContextã®ã€ã³ã¹ã¿ã³ã¹ã§ãªãå Žåã¯ãSecurityExceptionãã¹ããŒãããŸãã
perm - æå®ãããã¢ã¯ã»ã¹æš©context - ã·ã¹ãã äŸåã®ã»ãã¥ãªãã£ã»ã³ã³ããã¹ããSecurityException - æå®ãããã»ãã¥ãªãã£ã»ã³ã³ããã¹ããAccessControlContextã®ã€ã³ã¹ã¿ã³ã¹ã§ãªã(ããšãã°nullã§ãã)ãããããã¯æå®ãããã¢ã¯ã»ã¹æš©ã瀺ããªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ãæåŠãããå ŽåãNullPointerException - ã¢ã¯ã»ã¹æš©ã®åŒæ°ãnullã®å ŽåãgetSecurityContext(), AccessControlContext.checkPermission(java.security.Permission)public void checkCreateClassLoader()
SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãã¢ã¯ã»ã¹æš©RuntimePermission("createClassLoader")ãæå®ããŠcheckPermissionãåŒã³åºããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkCreateClassLoaderãåŒã³åºãããããã«ããŠãã ããã
SecurityException - åŒåºãåŽã®ã¹ã¬ããããæ°ããã¯ã©ã¹ã»ããŒããŒãäœæã§ããã¢ã¯ã»ã¹æš©ãæããªãå ŽåãClassLoader.ClassLoader(), checkPermissionpublic void checkAccess(Thread t)
SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãThreadã¯ã©ã¹ã®stopãsuspendãresumeãsetPriorityãsetNameãããã³setDaemonã¡ãœããã«ãã£ãŠãçŸåšã®ã»ãã¥ãªãã£ã»ãããŒãžã£ã«å¯ŸããŠåŒã³åºãããŸãã
ã¹ã¬ããã®åŒæ°ãã·ã¹ãã ã»ã¹ã¬ãã(芪ãnullã§ããã¹ã¬ããã»ã°ã«ãŒãã«å±ããã¹ã¬ãã)ã®å Žåããã®ã¡ãœããã¯RuntimePermission("modifyThread")ã¢ã¯ã»ã¹æš©ã§checkPermissionãåŒã³åºããŸãã ã¹ã¬ããã®åŒæ°ãã·ã¹ãã ã»ã¹ã¬ããã§ãªãå Žåããã®ã¡ãœããã¯äœãããªãã§åŸ©åž°ããŸãã
ããå³ããããªã·ãŒãå¿
èŠãªã¢ããªã±ãŒã·ã§ã³ã§ã¯ããã®ã¡ãœããããªãŒããŒã©ã€ãããå¿
èŠããããŸãã ãã®ã¡ãœããããªãŒããŒã©ã€ãããå ŽåããªãŒããŒã©ã€ãåŽã®ã¡ãœããã¯ãåŒåºãåŽã¹ã¬ãããRuntimePermission("modifyThread")ã¢ã¯ã»ã¹æš©ãæã€ãã©ããã確èªããå¿
èŠããããŸããã¢ã¯ã»ã¹æš©ãæã£ãŠããå Žåããã®ã¡ãœãããäœãããã«åŸ©åž°ããããã«ããŠãã ããã ããã¯ããã®ã¢ã¯ã»ã¹æš©ãäžããããã³ãŒã(JDKèªäœãªã©)ãã©ããªã¹ã¬ããã§ãæ±ããããã«ããããã§ãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœããã®1çªç®ã®æã§super.checkAccessãåŒã³åºããããªãŒããŒã©ã€ããããã¡ãœããã«åçã®ã»ãã¥ãªãã£ã»ãã§ãã¯ãèšè¿°ããŠãã ããã
t - ãã§ãã¯å¯Ÿè±¡ã®ã¹ã¬ãããSecurityException - åŒåºãåŽã¹ã¬ããã«ããã®ã¹ã¬ããã倿Žããã®ã«å¿
èŠãªã¢ã¯ã»ã¹æš©ããªãå ŽåãNullPointerException - ã¹ã¬ããåŒæ°ãnullã®å Žåãresume, setDaemon, setName, setPriority, stop, suspend, checkPermissionpublic void checkAccess(ThreadGroup g)
SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãåã¹ã¬ãããŸãã¯åã¹ã¬ããã»ã°ã«ãŒããæ°ããäœæããããšãã«ãThreadGroupã¯ã©ã¹ã®setDaemonãsetMaxPriorityãstopãsuspendãresumeãdestroyã®åã¡ãœããã«ãã£ãŠãçŸåšã®ã»ãã¥ãªãã£ã»ãããŒãžã£ã«å¯ŸããŠåŒã³åºãããŸãã
ã¹ã¬ããã»ã°ã«ãŒãã®åŒæ°ãã·ã¹ãã ã»ã¹ã¬ããã»ã°ã«ãŒã(芪ãnull)ã®å Žåããã®ã¡ãœããã¯ãRuntimePermission("modifyThreadGroup")ã¢ã¯ã»ã¹æš©ã§checkPermissionãåŒã³åºããŸãã ã¹ã¬ããã»ã°ã«ãŒãã®åŒæ°ãã·ã¹ãã ã»ã¹ã¬ããã»ã°ã«ãŒãã§ãªãå Žåããã®ã¡ãœããã¯äœãããªãã§åŸ©åž°ããŸãã
ããå³ããããªã·ãŒãå¿
èŠãªã¢ããªã±ãŒã·ã§ã³ã§ã¯ããã®ã¡ãœããããªãŒããŒã©ã€ãããå¿
èŠããããŸãã ãã®ã¡ãœããããªãŒããŒã©ã€ãããå ŽåããªãŒããŒã©ã€ãåŽã®ã¡ãœããã¯ãåŒåºãåŽã¹ã¬ãããRuntimePermission("modifyThreadGroup")ã¢ã¯ã»ã¹æš©ãæã€ãã©ããã確èªããå¿
èŠããããŸããã¢ã¯ã»ã¹æš©ãæã£ãŠããå Žåããã®ã¡ãœãããäœãããã«åŸ©åž°ããããã«ããŠãã ããã ããã¯ããã®ã¢ã¯ã»ã¹æš©ãäžããããã³ãŒã(JDKèªäœãªã©)ãã©ããªã¹ã¬ããã§ãæ±ããããã«ããããã§ãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœããã®1çªç®ã®æã§super.checkAccessãåŒã³åºããããªãŒããŒã©ã€ããããã¡ãœããã«åçã®ã»ãã¥ãªãã£ã»ãã§ãã¯ãèšè¿°ããŠãã ããã
g - ãã§ãã¯å¯Ÿè±¡ã®ã¹ã¬ããã»ã°ã«ãŒããSecurityException - åŒåºãåŽã¹ã¬ããã«ããã®ã¹ã¬ããã»ã°ã«ãŒãã倿Žããã®ã«å¿
èŠãªã¢ã¯ã»ã¹æš©ããªãå ŽåãNullPointerException - ã¹ã¬ããã»ã°ã«ãŒãã®åŒæ°ãnullã®å Žåãdestroy, resume, setDaemon, setMaxPriority, stop, suspend, checkPermissionpublic void checkExit(int status)
SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãRuntimeã¯ã©ã¹ã®exitã¡ãœããã«ãã£ãŠãçŸåšã®ã»ãã¥ãªãã£ã»ãããŒãžã£ã«å¯ŸããŠåŒã³åºãããŸãã ã¹ããŒã¿ã¹ã»ã³ãŒã0ã¯æåã衚ãããã®ä»ã®å€ã¯åçš®ã®ãšã©ãŒã衚ããŸãã
ãã®ã¡ãœããã¯ãã¢ã¯ã»ã¹æš©RuntimePermission("exitVM."+status)ãæå®ããŠcheckPermissionãåŒã³åºããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkExitãåŒã³åºãããããã«ããŠãã ããã
status - çµäºã®ã¹ããŒã¿ã¹ãSecurityException - æå®ãããã¹ããŒã¿ã¹ã§Javaä»®æ³ãã·ã³ã忢ãããã¢ã¯ã»ã¹æš©ããåŒåºãåŽã¹ã¬ããã«ãªãå Žåãexit, checkPermissionpublic void checkExec(String cmd)
SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãRuntimeã¯ã©ã¹ã®execã¡ãœããã«ãã£ãŠãçŸåšã®ã»ãã¥ãªãã£ã»ãããŒãžã£ã«å¯ŸããŠåŒã³åºãããŸãã
ãã®ã¡ãœããã¯ãcmdã絶察ãã¹ã®å Žåã¯checkPermissionãFilePermission(cmd,"execute")ã¢ã¯ã»ã¹æš©ã§åŒã³åºãããã以å€ã®å Žåã¯checkPermissionãFilePermission("<<ALL FILES>>","execute")ã§åŒã³åºããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkExecãåŒã³åºãããããã«ããŠãã ããã
cmd - æå®ãããã·ã¹ãã ã»ã³ãã³ããSecurityException - åŒåºãåŽã¹ã¬ããã«ããµãããã»ã¹ãäœæããã¢ã¯ã»ã¹æš©ããªãå Žåã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[]), checkPermissionpublic void checkLink(String lib)
SecurityExceptionãã¹ããŒããŸãã åŒæ°ã«ã¯ãã©ã€ãã©ãªåã ããæå®ãããã絶察ãã¹ã®ãã¡ã€ã«åãæå®ããŸãã
ãã®ã¡ãœããã¯ãRuntimeã¯ã©ã¹ã®ã¡ãœããloadããã³loadLibraryã«ãã£ãŠãçŸåšã®ã»ãã¥ãªãã£ã»ãããŒãžã£ã«å¯ŸããŠåŒã³åºãããŸãã
ãã®ã¡ãœããã¯ãã¢ã¯ã»ã¹æš©RuntimePermission("loadLibrary."+lib)ãæå®ããŠcheckPermissionãåŒã³åºããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkLinkãåŒã³åºãããããã«ããŠãã ããã
lib - ã©ã€ãã©ãªã®ååãSecurityException - åŒåºãåŽã¹ã¬ããã«ãã©ã€ãã©ãªãåçã«ãªã³ã¯ããã¢ã¯ã»ã¹æš©ããªãå ŽåãNullPointerException - libåŒæ°ãnullã®å ŽåãRuntime.load(java.lang.String), Runtime.loadLibrary(java.lang.String), checkPermissionpublic void checkRead(FileDescriptor fd)
SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãã¢ã¯ã»ã¹æš©RuntimePermission("readFileDescriptor")ãæå®ããŠcheckPermissionãåŒã³åºããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkReadãåŒã³åºãããããã«ããŠãã ããã
fd - ã·ã¹ãã äŸåã®ãã¡ã€ã«èšè¿°åãSecurityException - åŒåºãåŽã¹ã¬ããã«ãæå®ããããã¡ã€ã«èšè¿°åãžã®ã¢ã¯ã»ã¹æš©ããªãå ŽåãNullPointerException - ãã¡ã€ã«èšè¿°åã®åŒæ°ãnullã®å ŽåãFileDescriptor, checkPermissionpublic void checkRead(String file)
SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãã¢ã¯ã»ã¹æš©FilePermission(file,"read")ãæå®ããŠcheckPermissionãåŒã³åºããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkReadãåŒã³åºãããããã«ããŠãã ããã
file - ã·ã¹ãã äŸåã®ãã¡ã€ã«åãSecurityException - åŒåºãåŽã¹ã¬ããã«ãæå®ããããã¡ã€ã«ãžã®ã¢ã¯ã»ã¹æš©ããªãå ŽåãNullPointerException - fileåŒæ°ãnullã®å ŽåãcheckPermissionpublic void checkRead(String file, Object context)
SecurityExceptionãã¹ããŒããŸãã ã³ã³ããã¹ãã¯ã以åã®getSecurityContextåŒåºãã§è¿ãããã»ãã¥ãªãã£ã»ã³ã³ããã¹ãã§ããå¿
èŠããããŸãã
contextãAccessControlContextã®ã€ã³ã¹ã¿ã³ã¹ã§ããå ŽåãAccessControlContext.checkPermissionã¡ãœãããFilePermission(file,"read")ã§åŒã³åºãããŸãã
contextãAccessControlContextã®ã€ã³ã¹ã¿ã³ã¹ã§ãªãå Žåã¯ãSecurityExceptionãã¹ããŒãããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkReadãåŒã³åºãããããã«ããŠãã ããã
file - ã·ã¹ãã ã«äŸåãããã¡ã€ã«åãcontext - ã·ã¹ãã äŸåã®ã»ãã¥ãªãã£ã»ã³ã³ããã¹ããSecurityException - æå®ãããã»ãã¥ãªãã£ã»ã³ã³ããã¹ããAccessControlContextã®ã€ã³ã¹ã¿ã³ã¹ã§ãªã(ããšãã°nullã§ãã)ãããããã¯æå®ããããã¡ã€ã«ã®èªèŸŒã¿æš©ããªãå ŽåãNullPointerException - fileåŒæ°ãnullã®å ŽåãgetSecurityContext(), AccessControlContext.checkPermission(java.security.Permission)public void checkWrite(FileDescriptor fd)
SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãã¢ã¯ã»ã¹æš©RuntimePermission("writeFileDescriptor")ãæå®ããŠcheckPermissionãåŒã³åºããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkWriteãåŒã³åºãããããã«ããŠãã ããã
fd - ã·ã¹ãã äŸåã®ãã¡ã€ã«èšè¿°åãSecurityException - åŒåºãåŽã¹ã¬ããã«ãæå®ããããã¡ã€ã«èšè¿°åãžã®ã¢ã¯ã»ã¹æš©ããªãå ŽåãNullPointerException - ãã¡ã€ã«èšè¿°åã®åŒæ°ãnullã®å ŽåãFileDescriptor, checkPermissionpublic void checkWrite(String file)
SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãã¢ã¯ã»ã¹æš©FilePermission(file,"write")ãæå®ããŠcheckPermissionãåŒã³åºããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkWriteãåŒã³åºãããããã«ããŠãã ããã
file - ã·ã¹ãã ã«äŸåãããã¡ã€ã«åãSecurityException - åŒåºãåŽã¹ã¬ããã«ãæå®ããããã¡ã€ã«ãžã®ã¢ã¯ã»ã¹æš©ããªãå ŽåãNullPointerException - fileåŒæ°ãnullã®å ŽåãcheckPermissionpublic void checkDelete(String file)
SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãFileã¯ã©ã¹ã®deleteã¡ãœããã«ãã£ãŠãçŸåšã®ã»ãã¥ãªãã£ã»ãããŒãžã£ã«å¯ŸããŠåŒã³åºãããŸãã
ãã®ã¡ãœããã¯ãã¢ã¯ã»ã¹æš©FilePermission(file,"delete")ãæå®ããŠcheckPermissionãåŒã³åºããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkDeleteãåŒã³åºãããããã«ããŠãã ããã
file - ã·ã¹ãã ã«äŸåãããã¡ã€ã«åãSecurityException - åŒåºãåŽã¹ã¬ããã«ãæå®ããããã¡ã€ã«ãåé€ããã¢ã¯ã»ã¹æš©ããªãå ŽåãNullPointerException - fileåŒæ°ãnullã®å ŽåãFile.delete(), checkPermissionpublic void checkConnect(String host, int port)
SecurityExceptionãã¹ããŒããŸãã
ããŒãçªå·-1ã¯ãæå®ããããã¹ãåã®IPã¢ãã¬ã¹ããåŒåºãåŽã®ã¡ãœãããæ±ºå®ããããšããŠããããšã衚ããŸãã
portã -1ã«çãããªãå Žåããã®ã¡ãœããã¯checkPermissionãSocketPermission(host+":"+port,"connect")ã¢ã¯ã»ã¹æš©ã§åŒã³åºããŸãã portã -1ã«çããå Žåãããã¯checkPermissionãSocketPermission(host,"resolve")ã¢ã¯ã»ã¹æš©ã§åŒã³åºããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkConnectãåŒã³åºãããããã«ããŠãã ããã
host -æ¥ç¶å
ã®ãã¹ãåããŒããport - æ¥ç¶å
ã®ãããã³ã«ã»ããŒããSecurityException - åŒåºãåŽã¹ã¬ããã«ãæå®ãããhostããã³portãžã®ãœã±ããæ¥ç¶ããªãŒãã³ããããã®ã¢ã¯ã»ã¹æš©ããªãå ŽåãNullPointerException - hoståŒæ°ãnullã®å ŽåãcheckPermissionpublic void checkConnect(String host, int port, Object context)
SecurityExceptionãã¹ããŒããŸãã
ããŒãçªå·-1ã¯ãæå®ããããã¹ãåã®IPã¢ãã¬ã¹ããåŒåºãåŽã®ã¡ãœãããæ±ºå®ããããšããŠããããšã衚ããŸãã
contextãAccessControlContextã®ã€ã³ã¹ã¿ã³ã¹ã§ãªãå Žåã¯ãSecurityExceptionãã¹ããŒãããŸãã
ããã§ãªãå Žåã¯ãããŒãçªå·ã確èªããŸãã ããã -1ã«çããå Žåãcontextã®checkPermissionã¡ãœãããSocketPermission(host+":"+port,"connect")ã¢ã¯ã»ã¹æš©ã§åŒã³åºãããŸãã portã -1ã«çããå Žåãcontextã®checkPermissionã¡ãœãããSocketPermission(host,"resolve")ã¢ã¯ã»ã¹æš©ã§åŒã³åºãããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkConnectãåŒã³åºãããããã«ããŠãã ããã
host -æ¥ç¶å
ã®ãã¹ãåããŒããport - æ¥ç¶å
ã®ãããã³ã«ã»ããŒããcontext - ã·ã¹ãã äŸåã®ã»ãã¥ãªãã£ã»ã³ã³ããã¹ããSecurityException - æå®ãããã»ãã¥ãªãã£ã»ã³ã³ããã¹ããAccessControlContextã®ã€ã³ã¹ã¿ã³ã¹ã§ãªã(ããšãã°nullã§ãã)ãããããã¯æå®ãããhostããã³portãžã®ãœã±ããæ¥ç¶ããªãŒãã³ããããã®ã¢ã¯ã»ã¹æš©ããªãå ŽåãNullPointerException - hoståŒæ°ãnullã®å ŽåãgetSecurityContext(), AccessControlContext.checkPermission(java.security.Permission)public void checkListen(int port)
SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯checkPermissionãSocketPermission("localhost:"+port,"listen")ã§åŒã³åºããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkListenãåŒã³åºãããããã«ããŠãã ããã
port - ããŒã«ã«ã»ããŒããSecurityException - åŒåºãåŽã¹ã¬ããã«ãæå®ãããããŒãã§åŸ
æ©ããããã®ã¢ã¯ã»ã¹æš©ããªãå ŽåãcheckPermissionpublic void checkAccept(String host, int port)
SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãServerSocketã¯ã©ã¹ã®acceptã¡ãœããã«ãã£ãŠãçŸåšã®ã»ãã¥ãªãã£ã»ãããŒãžã£ã«å¯ŸããŠåŒã³åºãããŸãã
ãã®ã¡ãœããã¯ãã¢ã¯ã»ã¹æš©SocketPermission(host+":"+port,"accept")ãæå®ããŠcheckPermissionãåŒã³åºããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkAcceptãåŒã³åºãããããã«ããŠãã ããã
host - ãœã±ããæ¥ç¶ã®ãã¹ãåãport - ãœã±ããæ¥ç¶ã®ããŒãçªå·ãSecurityException - åŒåºãåŽã¹ã¬ããã«ãæ¥ç¶ãåãå
¥ããããã®ã¢ã¯ã»ã¹æš©ããªãå ŽåãNullPointerException - hoståŒæ°ãnullã®å ŽåãServerSocket.accept(), checkPermissionpublic void checkMulticast(InetAddress maddr)
SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãã¢ã¯ã»ã¹æš©java.net.SocketPermission(maddr.getHostAddress(), "accept,connect")ãæå®ããŠcheckPermissionãåŒã³åºããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkMulticastãåŒã³åºãããããã«ããŠãã ããã
maddr - 䜿çšããã€ã³ã¿ãŒãããã»ã°ã«ãŒãã®ã¢ãã¬ã¹ãSecurityException - åŒåºãåŽã¹ã¬ããã«ãIPãã«ããã£ã¹ã(join/leave/send/receive)ã®äœ¿çšãèš±å¯ãããŠããªãå ŽåãNullPointerException - ã¢ãã¬ã¹ã®åŒæ°ãnullã®å ŽåãcheckPermission@Deprecated public void checkMulticast(InetAddress maddr, byte ttl)
SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãã¢ã¯ã»ã¹æš©java.net.SocketPermission(maddr.getHostAddress(), "accept,connect")ãæå®ããŠcheckPermissionãåŒã³åºããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkMulticastãåŒã³åºãããããã«ããŠãã ããã
maddr - 䜿çšããã€ã³ã¿ãŒãããã»ã°ã«ãŒãã®ã¢ãã¬ã¹ãttl - 䜿çšããå€ããã«ããã£ã¹ãéä¿¡ãããå Žåããã®å€ã ããŒã: ãã®ç¹å®ã®å®è£
ã¯ttlãã©ã¡ãŒã¿ã䜿çšããªãã SecurityException - åŒåºãåŽã¹ã¬ããã«ãIPãã«ããã£ã¹ã(join/leave/send/receive)ã®äœ¿çšãèš±å¯ãããŠããªãå ŽåãNullPointerException - ã¢ãã¬ã¹ã®åŒæ°ãnullã®å ŽåãcheckPermissionpublic void checkPropertiesAccess()
SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯Systemã®getPropertiesããã³setPropertiesã¡ãœããã«ãã£ãŠäœ¿çšãããŸãã
ãã®ã¡ãœããã¯ãã¢ã¯ã»ã¹æš©PropertyPermission("*", "read,write")ãæå®ããŠcheckPermissionãåŒã³åºããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkPropertiesAccessãåŒã³åºãããããã«ããŠãã ããã
SecurityException - åŒåºãåŽã¹ã¬ããã«ãã·ã¹ãã ã»ããããã£ã«å¯Ÿããã¢ã¯ã»ã¹ãŸãã¯å€æŽãè¡ãããã®ã¢ã¯ã»ã¹æš©ããªãå ŽåãSystem.getProperties(), System.setProperties(java.util.Properties), checkPermissionpublic void checkPropertyAccess(String key)
keyã§æå®ãããã·ã¹ãã ã»ããããã£ãžã®ã¢ã¯ã»ã¹ããåŒåºãåŽã¹ã¬ããã«èš±å¯ãããŠããªãå Žåã«ãSecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãSystemã¯ã©ã¹ã®getPropertyã¡ãœããã«ãã£ãŠäœ¿çšãããŸãã
ãã®ã¡ãœããã¯ãã¢ã¯ã»ã¹æš©PropertyPermission(key, "read")ãæå®ããŠcheckPermissionãåŒã³åºããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkPropertyAccessãåŒã³åºãããããã«ããŠãã ããã
key - ã·ã¹ãã ã»ããããã£ã®ããŒãSecurityException - åŒåºãåŽã¹ã¬ããã«ãæå®ãããã·ã¹ãã ã»ããããã£ãžã®ã¢ã¯ã»ã¹æš©ããªãå ŽåãNullPointerException - keyåŒæ°ãnullã®å ŽåãIllegalArgumentException - keyã空ã§ããå ŽåãSystem.getProperty(java.lang.String), checkPermission@Deprecated public boolean checkTopLevelWindow(Object window)
AWTPermissionãžã®äŸåã¯ãJavaãã©ãããã©ãŒã ã®å°æ¥ã®ã¢ãžã¥ã©åã«å¯Ÿããé害ã«ãªããŸãã ãã®ã¡ãœããã®ãŠãŒã¶ãŒã¯ä»£ããã«checkPermission(java.security.Permission)ãçŽæ¥åŒã³åºããŠãã ããã ãã®ã¡ãœããã¯å°æ¥ã®ãªãªãŒã¹ã§ã¢ã¯ã»ã¹æš©java.security.AllPermissionããã§ãã¯ããããã«å€æŽãããŸãã windowåŒæ°ã§æå®ããããããã»ã¬ãã«ã®ãŠã£ã³ããŠã衚瀺ããããã®ä¿¡é ŒãåŒåºãåŽã¹ã¬ããã«ãªãå Žåã«ãfalseãè¿ããŸãã ãã®å Žåã§ããåŒåºãåŽã¹ã¬ããã¯ãŠã£ã³ããŠã衚瀺ã§ããŸããããŠã£ã³ããŠã«ã¯ãªãããã®èŠåã衚瀺ãããŸãã ãã®ã¡ãœãããtrueãè¿ããå Žåã¯ãç¹ã«å¶éãªããŠã£ã³ããŠã衚瀺ã§ããŸãã
ä¿¡é Œã§ãããŠã£ã³ããŠãšä¿¡é Œã§ããªããŠã£ã³ããŠã®è©³çްã¯ãWindowã¯ã©ã¹ãåç
§ããŠãã ããã
ãã®ã¡ãœããã¯ãã¢ã¯ã»ã¹æš©AWTPermission("showWindowWithoutWarningBanner")ãæå®ããŠcheckPermissionãåŒã³åºããŸããSecurityExceptionãã¹ããŒãããªããã°trueãè¿ãããããã§ãªãå Žåã¯falseãè¿ãããŸãã java.awtããã±ãŒãžãå«ãŸãªãJava SEã®ãµãã»ããã»ãããã¡ã€ã«ã®å Žåã¯ã代ããã«checkPermissionãåŒã³åºãããŠã¢ã¯ã»ã¹æš©java.security.AllPermissionããã§ãã¯ãããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå ŽåããªãŒããŒã©ã€ããããã¡ãœãããéåžžfalseãè¿ãäœçœ®ã§super.checkTopLevelWindowã®åŒåºããè¡ããsuper.checkTopLevelWindowã®å€ãè¿ãããã«ããŠãã ããã
window - äœæãããæ°ãããŠã£ã³ããŠãtrueãããã§ãªãå Žåã¯falseãNullPointerException - windowåŒæ°ãnullã®å ŽåãWindowãcheckPermissionpublic void checkPrintJobAccess()
SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãã¢ã¯ã»ã¹æš©RuntimePermission("queuePrintJob")ãæå®ããŠcheckPermissionãåŒã³åºããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkPrintJobAccessãåŒã³åºãããããã«ããŠãã ããã
SecurityException - åŒåºãåŽã¹ã¬ããã«ãå°å·ãžã§ãèŠæ±ãéå§ããããã®ã¢ã¯ã»ã¹æš©ããªãå ŽåãcheckPermission@Deprecated public void checkSystemClipboardAccess()
AWTPermissionãžã®äŸåã¯ãJavaãã©ãããã©ãŒã ã®å°æ¥ã®ã¢ãžã¥ã©åã«å¯Ÿããé害ã«ãªããŸãã ãã®ã¡ãœããã®ãŠãŒã¶ãŒã¯ä»£ããã«checkPermission(java.security.Permission)ãçŽæ¥åŒã³åºããŠãã ããã ãã®ã¡ãœããã¯å°æ¥ã®ãªãªãŒã¹ã§ã¢ã¯ã»ã¹æš©java.security.AllPermissionããã§ãã¯ããããã«å€æŽãããŸãã SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãã¢ã¯ã»ã¹æš©AWTPermission("accessClipboard")ãæå®ããŠcheckPermissionãåŒã³åºããŸãã java.awtããã±ãŒãžãå«ãŸãªãJava SEã®ãµãã»ããã»ãããã¡ã€ã«ã®å Žåã¯ã代ããã«checkPermissionãåŒã³åºãããŠã¢ã¯ã»ã¹æš©java.security.AllPermissionããã§ãã¯ãããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkSystemClipboardAccessãåŒã³åºãããããã«ããŠãã ããã
SecurityException - åŒåºãåŽã¹ã¬ããã«ãã·ã¹ãã ã»ã¯ãªããããŒããžã®ã¢ã¯ã»ã¹æš©ããªãå ŽåãcheckPermission@Deprecated public void checkAwtEventQueueAccess()
AWTPermissionãžã®äŸåã¯ãJavaãã©ãããã©ãŒã ã®å°æ¥ã®ã¢ãžã¥ã©åã«å¯Ÿããé害ã«ãªããŸãã ãã®ã¡ãœããã®ãŠãŒã¶ãŒã¯ä»£ããã«checkPermission(java.security.Permission)ãçŽæ¥åŒã³åºããŠãã ããã ãã®ã¡ãœããã¯å°æ¥ã®ãªãªãŒã¹ã§ã¢ã¯ã»ã¹æš©java.security.AllPermissionããã§ãã¯ããããã«å€æŽãããŸãã SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãã¢ã¯ã»ã¹æš©AWTPermission("accessEventQueue")ãæå®ããŠcheckPermissionãåŒã³åºããŸãã java.awtããã±ãŒãžãå«ãŸãªãJava SEã®ãµãã»ããã»ãããã¡ã€ã«ã®å Žåã¯ã代ããã«checkPermissionãåŒã³åºãããŠã¢ã¯ã»ã¹æš©java.security.AllPermissionããã§ãã¯ãããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkAwtEventQueueAccessãåŒã³åºãããããã«ããŠãã ããã
SecurityException - åŒåºãåŽã¹ã¬ããã«ãAWTã€ãã³ãã»ãã¥ãŒãžã®ã¢ã¯ã»ã¹æš©ããªãå ŽåãcheckPermissionpublic void checkPackageAccess(String pkg)
SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ã¯ã©ã¹ã»ããŒããŒã®loadClassã¡ãœããã«ãã£ãŠäœ¿çšãããŸãã
ãã®ã¡ãœããã¯ãæåã«java.security.Security.getProperty("package.access")ãåŒã³åºããŠã«ã³ãã§åºåããããªã¹ããååŸããããšã«ãããå¶éä»ãã®ããã±ãŒãžã®ãªã¹ããååŸããŸããæ¬¡ã«ãå¶éä»ãããã±ãŒãžã®äžã«pkgã§å§ãŸãããã±ãŒãžãŸãã¯pkgã«äžèŽããããã±ãŒãžããããã©ãããå€å®ããŸãã 該åœããå Žåã«ã¯ãcheckPermissionãRuntimePermission("accessClassInPackage."+pkg)ã¢ã¯ã»ã¹æš©ã§åŒã³åºãããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœããã®1è¡ç®ã§ãsuper.checkPackageAccessãžã®åŒåºããè¡ãå¿
èŠããããŸãã
pkg - ããã±ãŒãžåãSecurityException - åŒåºãåŽã¹ã¬ããã«ãæå®ãããããã±ãŒãžãžã®ã¢ã¯ã»ã¹æš©ããªãå ŽåãNullPointerException - ããã±ãŒãžåã®åŒæ°ãnullã®å ŽåãloadClass, getProperty, checkPermissionpublic void checkPackageDefinition(String pkg)
SecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãäžéšã®ã¯ã©ã¹ã»ããŒããŒã®loadClassã¡ãœããã䜿ããŸãã
ãã®ã¡ãœããã¯ãæåã«java.security.Security.getProperty("package.definition")ãåŒã³åºããŠã«ã³ãã§åºåããããªã¹ããååŸããããšã«ãããå¶éä»ãã®ããã±ãŒãžã®ãªã¹ããååŸããŸããæ¬¡ã«ãå¶éä»ãããã±ãŒãžã®äžã«pkgã§å§ãŸãããã±ãŒãžãŸãã¯pkgã«äžèŽããããã±ãŒãžããããã©ãããå€å®ããŸãã 該åœããå Žåã«ã¯ãcheckPermissionãRuntimePermission("defineClassInPackage."+pkg)ã¢ã¯ã»ã¹æš©ã§åŒã³åºãããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœããã®1è¡ç®ã§ãsuper.checkPackageDefinitionãžã®åŒåºããè¡ãå¿
èŠããããŸãã
pkg - ããã±ãŒãžåãSecurityException - åŒåºãåŽã¹ã¬ããã«ãæå®ãããããã±ãŒãžäžã®ã¯ã©ã¹ãå®çŸ©ããããã®ã¢ã¯ã»ã¹æš©ããªãå ŽåãClassLoader.loadClass(java.lang.String, boolean), getProperty, checkPermissionpublic void checkSetFactory()
ServerSocketãŸãã¯Socketã䜿çšãããœã±ããã»ãã¡ã¯ããªããŸãã¯URLã䜿çšããã¹ããªãŒã ã»ãã³ãã©ã»ãã¡ã¯ããªãèšå®ããããšãåŒåºãåŽã¹ã¬ããã«èš±å¯ãããŠããªãå Žåã«ãSecurityExceptionãã¹ããŒããŸãã
ãã®ã¡ãœããã¯ãã¢ã¯ã»ã¹æš©RuntimePermission("setFactory")ãæå®ããŠcheckPermissionãåŒã³åºããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkSetFactoryãåŒã³åºãããããã«ããŠãã ããã
SecurityException - åŒåºãåŽã¹ã¬ããã«ããœã±ããã»ãã¡ã¯ããªããŸãã¯ã¹ããªãŒã ã»ãã³ãã©ã»ãã¡ã¯ããªãæå®ããããã®ã¢ã¯ã»ã¹æš©ããªãå ŽåãsetSocketFactory, setSocketImplFactory, setURLStreamHandlerFactory, checkPermission@Deprecated public void checkMemberAccess(Class<?> clazz, int which)
checkPermission(java.security.Permission)ãçŽæ¥åŒã³åºããŠãã ããã ãã®ã¡ãœããã¯å°æ¥ã®ãªãªãŒã¹ã§ã¢ã¯ã»ã¹æš©java.security.AllPermissionããã§ãã¯ããããã«å€æŽãããŸãã SecurityExceptionãã¹ããŒããŸãã
ããã©ã«ãã®ããªã·ãŒã¯PUBLICã¡ã³ããŒãžã®ã¢ã¯ã»ã¹ããã³ãåŒåºãå
ãšåãã¯ã©ã¹ã»ããŒããŒãæã€ã¯ã©ã¹ãžã®ã¢ã¯ã»ã¹ãèš±å¯ããŸãã ãã®ä»ã®å Žåã¯ãã¹ãŠããã®ã¡ãœããã¯checkPermissionãRuntimePermission("accessDeclaredMembers") ã¢ã¯ã»ã¹æš©ã§åŒã³åºããŸãã
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåãsuper.checkMemberAccessãåŒã³åºãããšã¯ã§ããŸãããããã¯ãcheckMemberAccessã®ããã©ã«ãã®å®è£
ããã¹ã¿ãã¯ã®æ·±ã4ã«ãããã§ãã¯é²è¡äžã®ã³ãŒãã«äŸåããããã§ãã
clazz - ãªãã¬ã¯ã·ã§ã³ãå®è¡ãããã¯ã©ã¹ãwhich - ã¢ã¯ã»ã¹ã®ã¿ã€ããPUBLICãŸãã¯DECLAREDãSecurityException - åŒåºãåŽã«ã¡ã³ããŒãžã®ã¢ã¯ã»ã¹æš©ããªãå ŽåãNullPointerException - clazzåŒæ°ãnullã®å ŽåãMember, checkPermissionpublic void checkSecurityAccess(String target)
èŠæ±ãããã¢ã¯ã»ã¹æš©ãèš±å¯ããå Žåããã®ã¡ãœããã¯äœãããªãã§åŸ©åž°ããŸãã æåŠããå Žåã¯ãSecurityExceptionãã¹ããŒãããŸãã
ãã®ã¡ãœããã¯ãæå®ãããã¢ã¯ã»ã¹æš©ã¿ãŒã²ããåã®SecurityPermissionãªããžã§ã¯ããçæããæ¬¡ã«ããã®ã¢ã¯ã»ã¹æš©ãæå®ããŠcheckPermissionãåŒã³åºããŸãã
æå®ã§ããã¢ã¯ã»ã¹æš©ã¿ãŒã²ããåã®ãªã¹ãã«ã€ããŠã¯ãã®ããã¥ã¡ã³ããåç
§ããŠãã ããã
SecurityPermission
ãã®ã¡ãœããããªãŒããŒã©ã€ãããå Žåã¯ããªãŒããŒã©ã€ããããã¡ãœãããéåžžã§ããã°äŸå€ãã¹ããŒããäœçœ®ã§super.checkSecurityAccessãåŒã³åºãããããã«ããŠãã ããã
target - SecurityPermissionã®ã¿ãŒã²ããåãSecurityException - åŒåºãåŽã¹ã¬ããã«ãèŠæ±ãããã¢ã¯ã»ã¹ã«å¿
èŠãªã¢ã¯ã»ã¹æš©ããªãå ŽåãNullPointerException - targetãnullã§ããå ŽåãIllegalArgumentException - targetã空ã§ããå ŽåãcheckPermissionpublic ThreadGroup getThreadGroup()
ThreadGroup ãã°ãŸãã¯æ©èœãéä¿¡
詳现ãªAPIãªãã¡ã¬ã³ã¹ããã³éçºè
ããã¥ã¡ã³ãã«ã€ããŠã¯ãJava SEã®ããã¥ã¡ã³ããåç
§ããŠãã ããã ãã®ããã¥ã¡ã³ãã«ã¯ãæŠå¿µçãªæŠèŠãçšèªã®å®çŸ©ãåé¿æ¹æ³ãæå¹ãªã³ãŒãäŸãªã©ã®ãéçºè
ã察象ã«ãããã詳现ãªèª¬æãå«ãŸããŠããŸãã
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyãåç
§ããŠãã ããã