SecurityManager类的checkSetFactory()方法 (SecurityManager Class checkSetFactory() method)
checkSetFactory() method is available in java.lang package.
checkSetFactory()方法在java.lang包中可用。
checkSetFactory() method invokes checkPermission with the RuntimePermission("setFactory") permission and it is used to set the socket factory by using ServerSocket or it is used to set the Stream handler factory by using URL.
checkSetFactory()方法使用RuntimePermission(“ setFactory”)权限调用checkPermission,它用于通过ServerSocket设置套接字工厂,或者用于通过URL设置Stream处理程序工厂。
checkSetFactory() method is a non-static method, it is accessible with the class object only and if we try to access the method with the class name then we will get an error.
checkSetFactory()方法是一个非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。
checkSetFactory() method may throw an exception at the time of set socket factory or stream handler factory.
在设置套接字工厂或流处理程序工厂时, checkSetFactory()方法可能会引发异常。
SecurityException – This exception may throw when the calling thread does not have the right to set the socket factory or stream handler factory.
SecurityException-当调用线程无权设置套接字工厂或流处理程序工厂时,可能引发此异常。
Syntax:
句法:
public void checkSetFactory();
Parameter(s):
参数:
It does not accept any parameter.
它不接受任何参数。
Return value:
返回值:
The return type of this method is void, it returns nothing.
此方法的返回类型为void ,不返回任何内容。
Example:
例:
// Java program to demonstrate the example
// of void checkSetFactory() method of SecurityManager
public class CheckSetFactory extends SecurityManager {
public static void main(String[] args) {
// By using setProperty() method is to set the policy property
// with security manager
System.setProperty("java.security.policy", "file:/C:/java.policy");
// Instantiating a CheckSetFactory object
CheckSetFactory csf = new CheckSetFactory();
// By using setSecurityManager() method is to set the
// security manager
System.setSecurityManager(csf);
// By using checkSetFactory() method is to
// check restriction on factory methods
csf.checkSetFactory();
// Display the message
System.out.println("Not Restricted..");
}
}
Output
输出量
Exception in thread "main" java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "setFactory")
at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
at java.base/java.security.AccessController.checkPermission(AccessController.java:897)
at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:322)
at java.base/java.lang.SecurityManager.checkSetFactory(SecurityManager.java:1401)
at CheckSetFactory.main(CheckSetFactory.java:18)
翻译自: https://www.includehelp.com/java/securitymanager-checksetfactory-method-with-example.aspx