Java SecurityManager checkAccess()方法与示例

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值