Package org.h2.engine
Class ConnectionInfo
java.lang.Object
org.h2.engine.ConnectionInfo
- All Implemented Interfaces:
Cloneable
Encapsulates the connection settings, including user name and password.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate byte[]
private byte[]
private String
The database nameprivate String
private NetworkConnectionInfo
private String
private boolean
private Properties
private boolean
private boolean
private TimeZoneProvider
private boolean
private String
private String
private byte[]
-
Constructor Summary
ConstructorsConstructorDescriptionConnectionInfo
(String name) Create a connection info object.ConnectionInfo
(String u, Properties info, String user, Object password) Create a connection info object. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Clear authentication properties.clone()
private void
Split the password property into file password and user password if necessary, and convert them to the internal hash format.(package private) byte[]
byte[]
Get the file password hash if it is set.(package private) DbException
Generate a URL format exception.(package private) int
getIntProperty
(int setting, int defaultValue) Get the value of the given property.(package private) String[]
getKeys()
Get the property keys.getName()
Get the unique and normalized database name (excluding settings).Returns the network connection information, ornull
.Get the complete original database URL.(package private) String
getProperty
(int setting, String defaultValue) Get the value of the given property.(package private) String
getProperty
(String key) Get the value of the given property.boolean
getProperty
(String key, boolean defaultValue) Get a boolean property if it is set and return the value.(package private) int
getProperty
(String key, int defaultValue) Get the value of the given property.getProperty
(String key, String defaultValue) Get the value of the given property.Returns the time zone.getURL()
Get the database URL.Get the name of the user.(package private) byte[]
Get the user password hash.private static byte[]
hashPassword
(boolean passwordHash, String userName, char[] password) static boolean
isIgnoredByParser
(String name) Returns whether setting with the specified name should be ignored by parser.private static boolean
boolean
Check if the referenced database is persistent.boolean
isRemote()
Check if this is a remote connection.(package private) boolean
isSSL()
Check if this is a remote connection with SSL enabled.(package private) boolean
Check if the referenced database is an unnamed in-memory database.private void
private void
preservePasswordForAuthentication
(Object password) private void
readProperties
(Properties info) private void
private static String
private char[]
boolean
removeProperty
(String key, boolean defaultValue) Remove a boolean property if it is set and return the value.(package private) String
removeProperty
(String key, String defaultValue) Remove a String property if it is set and return the value.void
setBaseDir
(String dir) Set the base directory of persistent databases, unless the database is in the user home folder (~).void
setFileEncryptionKey
(byte[] key) void
setFilePasswordHash
(byte[] hash) Set the file password hash.void
setNetworkConnectionInfo
(NetworkConnectionInfo networkConnectionInfo) Sets the network connection information.void
setOriginalURL
(String url) Set the original database URL.void
setProperty
(String key, String value) Overwrite a property.void
setServerKey
(String serverKey) Switch to server mode, and set the server name and database key.void
setUserName
(String name) Overwrite the user name.void
setUserPasswordHash
(byte[] hash) Set the user password hash.
-
Field Details
-
KNOWN_SETTINGS
-
IGNORED_BY_PARSER
-
prop
-
originalURL
-
url
-
user
-
filePasswordHash
private byte[] filePasswordHash -
fileEncryptionKey
private byte[] fileEncryptionKey -
userPasswordHash
private byte[] userPasswordHash -
timeZone
-
name
The database name -
nameNormalized
-
remote
private boolean remote -
ssl
private boolean ssl -
persistent
private boolean persistent -
unnamed
private boolean unnamed -
networkConnectionInfo
-
-
Constructor Details
-
ConnectionInfo
Create a connection info object.- Parameters:
name
- the database name (including tags), but without the "jdbc:h2:" prefix
-
ConnectionInfo
Create a connection info object.- Parameters:
u
- the database URL (must start with jdbc:h2:)info
- the connection properties ornull
user
- the user name ornull
password
- the password asString
orchar[]
, ornull
-
-
Method Details
-
isKnownSetting
-
isIgnoredByParser
Returns whether setting with the specified name should be ignored by parser.- Parameters:
name
- the name of the setting- Returns:
- whether setting with the specified name should be ignored by parser
-
clone
- Overrides:
clone
in classObject
- Throws:
CloneNotSupportedException
-
parseName
private void parseName() -
setBaseDir
Set the base directory of persistent databases, unless the database is in the user home folder (~).- Parameters:
dir
- the new base directory
-
isRemote
public boolean isRemote()Check if this is a remote connection.- Returns:
- true if it is
-
isPersistent
public boolean isPersistent()Check if the referenced database is persistent.- Returns:
- true if it is
-
isUnnamedInMemory
boolean isUnnamedInMemory()Check if the referenced database is an unnamed in-memory database.- Returns:
- true if it is
-
readProperties
-
readSettingsFromURL
private void readSettingsFromURL() -
preservePasswordForAuthentication
-
removePassword
private char[] removePassword() -
convertPasswords
private void convertPasswords()Split the password property into file password and user password if necessary, and convert them to the internal hash format. -
hashPassword
-
getProperty
Get a boolean property if it is set and return the value.- Parameters:
key
- the property namedefaultValue
- the default value- Returns:
- the value
-
removeProperty
Remove a boolean property if it is set and return the value.- Parameters:
key
- the property namedefaultValue
- the default value- Returns:
- the value
-
removeProperty
Remove a String property if it is set and return the value.- Parameters:
key
- the property namedefaultValue
- the default value- Returns:
- the value
-
getName
Get the unique and normalized database name (excluding settings).- Returns:
- the database name
-
getFilePasswordHash
public byte[] getFilePasswordHash()Get the file password hash if it is set.- Returns:
- the password hash or null
-
getFileEncryptionKey
byte[] getFileEncryptionKey() -
getUserName
Get the name of the user.- Returns:
- the user name
-
getUserPasswordHash
byte[] getUserPasswordHash()Get the user password hash.- Returns:
- the password hash
-
getKeys
String[] getKeys()Get the property keys.- Returns:
- the property keys
-
getProperty
Get the value of the given property.- Parameters:
key
- the property key- Returns:
- the value as a String
-
getProperty
Get the value of the given property.- Parameters:
key
- the property keydefaultValue
- the default value- Returns:
- the value as a String
-
getProperty
Get the value of the given property.- Parameters:
key
- the property keydefaultValue
- the default value- Returns:
- the value as a String
-
getProperty
Get the value of the given property.- Parameters:
setting
- the setting iddefaultValue
- the default value- Returns:
- the value as a String
-
getIntProperty
int getIntProperty(int setting, int defaultValue) Get the value of the given property.- Parameters:
setting
- the setting iddefaultValue
- the default value- Returns:
- the value as an integer
-
isSSL
boolean isSSL()Check if this is a remote connection with SSL enabled.- Returns:
- true if it is
-
setUserName
Overwrite the user name. The user name is case-insensitive and stored in uppercase. English conversion is used.- Parameters:
name
- the user name
-
setUserPasswordHash
public void setUserPasswordHash(byte[] hash) Set the user password hash.- Parameters:
hash
- the new hash value
-
setFilePasswordHash
public void setFilePasswordHash(byte[] hash) Set the file password hash.- Parameters:
hash
- the new hash value
-
setFileEncryptionKey
public void setFileEncryptionKey(byte[] key) -
setProperty
Overwrite a property.- Parameters:
key
- the property namevalue
- the value
-
getURL
Get the database URL.- Returns:
- the URL
-
getOriginalURL
Get the complete original database URL.- Returns:
- the database URL
-
setOriginalURL
Set the original database URL.- Parameters:
url
- the database url
-
getTimeZone
Returns the time zone.- Returns:
- the time zone
-
getFormatException
DbException getFormatException()Generate a URL format exception.- Returns:
- the exception
-
setServerKey
Switch to server mode, and set the server name and database key.- Parameters:
serverKey
- the server name, '/', and the security key
-
getNetworkConnectionInfo
Returns the network connection information, ornull
.- Returns:
- the network connection information, or
null
-
setNetworkConnectionInfo
Sets the network connection information.- Parameters:
networkConnectionInfo
- the network connection information
-
getDbSettings
-
remapURL
-
cleanAuthenticationInfo
public void cleanAuthenticationInfo()Clear authentication properties.
-