SecurityManager类的checkAccept()方法 (SecurityManager Class checkAccept() method)
checkAccept() method is available in java.lang package.
checkAccept()方法在java.lang包中可用。
checkAccept() method of ServerSocket class is called for the current security manager and it calls checkPermission with the SocketPermission(host_add+":"+port_no,"accept").
当前安全管理器将调用ServerSocket类的checkAccept()方法 ,并使用SocketPermission(host_add +“:” + port_no,“ accept”)调用checkPermission。
checkAccept() 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.
checkAccept()方法是一种非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。
checkAccept() method may throw an exception at the time of establishing a server connection.
建立服务器连接时, checkAccept()方法可能会引发异常。
- SecurityException – This exception may throw when the calling thread is not allowed to accept the connection.
- NullPointerException – This exception may throw when the given first parameter is null.
Syntax:
句法:
public void checkAccept(String host_add, int port_no);
Parameter(s):
参数:
String host_add – represents the hostname of the socket connection.
字符串host_add –表示套接字连接的主机名。
int port_no – represents the port number of the socket connection.
int port_no –表示套接字连接的端口号。
Return value:
返回值:
The return type of this method is void, it returns nothing.
此方法的返回类型为void ,不返回任何内容。
Example:
例:
// Java program to demonstrate the example
// of void checkAccept(String host_add, int port_no)
// method of SecurityManager
public class CheckAccept {
public static void main(String[] args) {
String host_add = "www.includehelp.com";
int port_no = 8080;
// By using setProperty() method is to set the policy property
// with security manager
System.setProperty("java.security.policy", "file:/C:/java.policy");
// Instantiating a SecurityManager object
SecurityManager smgr = new SecurityManager();
// By using setSecurityManager() method is to set the
// security manager
System.setSecurityManager(smgr);
// By using checkAccept() method is to check that
// socket connection is enabled or not
smgr.checkAccept(host_add, port_no);
// Display the message when connection is enabled
System.out.println("Accepted..");
}
}
Output
输出量
Exception in thread "main" java.security.AccessControlException: access denied ("java.net.SocketPermission" "www.includehelp.com:8080" "accept,resolve")
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.checkAccept(SecurityManager.java:940)
at CheckAccept.main(CheckAccept.java:23)
翻译自: https://www.includehelp.com/java/securitymanager-checkaccept-method-with-example.aspx