Package org.postgresql.ssl
Class BaseX509KeyManager
java.lang.Object
org.postgresql.ssl.BaseX509KeyManager
- All Implemented Interfaces:
KeyManager,X509KeyManager
- Direct Known Subclasses:
PEMKeyManager,PKCS12KeyManager
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionchooseClientAlias(String[] keyType, Principal[] principals, Socket socket) chooseServerAlias(String s, Principal[] principals, Socket socket) String[]getClientAliases(String keyType, Principal[] principals) String[]getServerAliases(String s, Principal[] principals) voidgetCertificateChain and getPrivateKey cannot throw exceptions, therefore any exception is stored inerrorand can be raised by this method.static voidvalidateKeyFilePermissions(Path keyPath) Validates that the private key file has secure permissions (owner-only readable).private static booleanvalidatePosixPermissions(Path keyPath) Validates POSIX file permissions of key.private static booleanvalidateWindowsAclPermissions(Path keyPath) Validates Windows ACL permissions of the key file.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface javax.net.ssl.X509KeyManager
getCertificateChain, getPrivateKey
-
Field Details
-
error
-
-
Constructor Details
-
BaseX509KeyManager
public BaseX509KeyManager()
-
-
Method Details
-
throwKeyManagerException
getCertificateChain and getPrivateKey cannot throw exceptions, therefore any exception is stored inerrorand can be raised by this method.- Throws:
PSQLException- if any exception is stored inerrorand can be raised
-
getClientAliases
- Specified by:
getClientAliasesin interfaceX509KeyManager
-
chooseClientAlias
- Specified by:
chooseClientAliasin interfaceX509KeyManager
-
getServerAliases
- Specified by:
getServerAliasesin interfaceX509KeyManager
-
chooseServerAlias
- Specified by:
chooseServerAliasin interfaceX509KeyManager
-
validateKeyFilePermissions
Validates that the private key file has secure permissions (owner-only readable). On POSIX systems, ensures no group or other permissions are set. On Windows systems, checks ACLs to ensure only the owner and trusted system accounts have access.- Parameters:
keyPath- the path to the private key file- Throws:
PSQLException- if the file has insecure permissions
-
validatePosixPermissions
Validates POSIX file permissions of key.- Parameters:
keyPath- the path to the private key file- Returns:
- true if validation succeeded (permissions are secure), false if POSIX is not supported
- Throws:
PSQLException- if the file has insecure permissions
-
validateWindowsAclPermissions
Validates Windows ACL permissions of the key file.- Parameters:
keyPath- the path to the private key file- Returns:
- true if validation succeeded (permissions are secure), false if ACL is not supported
- Throws:
PSQLException- if the file has insecure permissions
-