Syntax:
句法:
public void checkAccess (Thread th);
public void checkAccess (ThreadGroup tg);
SecurityManager类的checkAccess()方法 (SecurityManager Class checkAccess() method)
checkAccess(Thread th) method is called for the current security manager by these methods of Thread class stop(), suspend(), resume(), setName() and setDaemon().
当前安全管理器的Thread类stop() , suspend() , resume() , setName()和setDaemon()这些方法将调用checkAccess(Thread th)方法 。
checkAccess(ThreadGroup tg) method is called for the current security manager to create new child thread on thread group by using these methods of ThreadGroup class like setDaemon(), stop(), resume(), suspend() and destroy().
当前的安全管理器将调用checkAccess(ThreadGroup tg)方法 ,以通过使用ThreadGroup类的这些方法(例如setDaemon() , stop() , resume() , suspend()和destroy())在线程组上创建新的子线程。
checkAccess(Thread th), checkAccess (ThreadGroup tg) methods may throw an exception at the time modification.
checkAccess(Thread th)和checkAccess(ThreadGroup tg)方法在修改时可能会引发异常。
SecurityException: This exception may throw when the calling thread is not allowed to modify Thread or ThreadGroup.
SecurityException :当不允许调用线程修改Thread或ThreadGroup时,可能引发此异常。
These methods are non-static methods, it is accessible with the class object only and, if we try to access these methods with the class name then we will get an error.
这些方法是非静态方法,只能通过类对象访问,如果尝试使用类名访问这些方法,则会收到错误消息。
Parameter(s):
参数:
In the first case, Thread th - This parameter represents the thread to be examined.
在第一种情况下, Thread th-此参数表示要检查的线程。
In the second case, ThreadGroup tg - This parameter represents the thread group to be examined.
在第二种情况下, ThreadGroup tg-此参数表示要检查的线程组。
Return value:
返回值:
The return type of this method is void, it returns nothing.
此方法的返回类型为void ,不返回任何内容。
Example:
例:
// Java program to demonstrate the example
// of checkAccess () method of SecurityManager class
public class CheckAccess extends SecurityManager {
// Override checkAcess(Thread th) of SecurityManager class
public void checkAccess(Thread th) {
throw new SecurityException("Restricted...");
}
// Override checkAcess(ThreadGroup tg) of SecurityManager //class
public void checkAccess(ThreadGroup tg) {
throw new SecurityException("Restricted...");
}
public static void main(String[] args) {
ThreadGroup tg1 = new ThreadGroup("New Thread Group");
// By using setProperty() method is to set the policy property
// with security manager
System.setProperty("java.security.policy", "file:/C:/java.policy");
// Instantiating a CheckAccept object
CheckAccess ca = new CheckAccess();
// By using setSecurityManager() method is to set the
// security manager
System.setSecurityManager(ca);
// By using checkAccess(Thread th) method is to check that
// current thread is enabled for access or not
ca.checkAccess(Thread.currentThread());
// By using checkAccess(ThreadGroup tg) method is to check
// that current thread group is enabled for access or not
ca.checkAccess(tg1);
// Display the message when thread is enabled
System.out.println("Not Restricted..");
}
}
Output
输出量
Exception in thread "main" java.lang.SecurityException: Restricted...
at CheckAccess.checkAccess(CheckAccess.java:5)
at CheckAccess.main(CheckAccess.java:30)
翻译自: https://www.includehelp.com/java/securitymanager-checkaccess-method-with-example.aspx