
- Java.lang Package classes
- Java.lang - Home
- Java.lang - Boolean
- Java.lang - Byte
- Java.lang - Character
- Java.lang - Character.Subset
- Java.lang - Character.UnicodeBlock
- Java.lang - Class
- Java.lang - ClassLoader
- Java.lang - Compiler
- Java.lang - Double
- Java.lang - Enum
- Java.lang - Float
- Java.lang - InheritableThreadLocal
- Java.lang - Integer
- Java.lang - Long
- Java.lang - Math
- Java.lang - Number
- Java.lang - Object
- Java.lang - Package
- Java.lang - Process
- Java.lang - ProcessBuilder
- Java.lang - Runtime
- Java.lang - RuntimePermission
- Java.lang - SecurityManager
- Java.lang - Short
- Java.lang - StackTraceElement
- Java.lang - StrictMath
- Java.lang - String
- Java.lang - StringBuffer
- Java.lang - StringBuilder
- Java.lang - System
- Java.lang - Thread
- Java.lang - ThreadGroup
- Java.lang - ThreadLocal
- Java.lang - Throwable
- Java.lang - Void
- Java.lang Package extras
- Java.lang - Interfaces
- Java.lang - Errors
- Java.lang - Exceptions
- Java.lang Package Useful Resources
- Java.lang - Useful Resources
- Java.lang - Discussion
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Java.lang.SecurityManager.checkConnect() Method
Description
The java.lang.SecurityManager.checkConnect(String host, int port, Object context) method Throws a SecurityException if the specified security context is not allowed to open a socket connection to the specified host and port number. A port number of -1 indicates that the calling method is attempting to determine the IP address of the specified host name.
If context is not an instance of AccessControlContext then a SecurityException is thrown. Otherwise, the port number is checked. If it is not equal to -1, the context's checkPermission method is called with a SocketPermission(host+":"+port,"connect") permission. If the port is equal to -1, then the context's checkPermission method is called with a SocketPermission(host,"resolve") permission.
If you override this method, then you should make a call to super.checkConnect at the point the overridden method would normally throw an exception.
Declaration
Following is the declaration for java.lang.SecurityManager.checkConnect() method
public void checkConnect(String host, int port, Object context)
Parameters
host − the host name port to connect to.
port − the protocol port to connect to.
context − a system-dependent security context.
Return Value
This method does not return a value.
Exception
SecurityException − if the specified security context is not an instance of AccessControlContext (e.g., is null), or does not have permission to open a socket connection to the specified host and port.
NullPointerException − if the host argument is null.
Example
Our examples require that the permissions for each command is blocked. A new policy file was set that allows only the creating and setting of our Security Manager. The file is in C:/java.policy and contains the following text −
grant { permission java.lang.RuntimePermission "setSecurityManager"; permission java.lang.RuntimePermission "createSecurityManager"; permission java.lang.RuntimePermission "usePolicy"; };
The following example shows the usage of lang.SecurityManager.checkConnect() method.
package com.tutorialspoint; import java.security.AccessControlContext; import java.security.AccessController; public class SecurityManagerDemo { public static void main(String[] args) { // get the current calling context AccessControlContext acc = AccessController.getContext(); // set the policy file as the system securuty policy System.setProperty("java.security.policy", "file:/C:/java.policy"); // create a security manager SecurityManager sm = new SecurityManager(); // set the system security manager System.setSecurityManager(sm); // perform the check sm.checkConnect("www.tutorialspoint.com", 8080, acc); // print a message if we passed the check System.out.println("Allowed!"); } }
Let us compile and run the above program, this will produce the following result −
Exception in thread "main" java.security.AccessControlException: access denied (java.net.SocketPermission www.tutorialspoint.com:8080 connect,resolve)