Package com.iizix.prop
Class SSLCommProps
- java.lang.Object
- com.iizix.prop.GProp<GProp<?>[]>
- com.iizix.prop.PropCnr
- com.iizix.prop.SSLCommProps
 
 
 
- All Implemented Interfaces:
- EventListener,- IGProp<GProp<?>[]>,- IPropCnr,- java.lang.Cloneable
 - public class SSLCommProps extends PropCnr This property container contains all properties required for a SSL Socket (NIO) connection.
- Field Summary- Fields inherited from class com.iizix.prop.PropCnr- EMPTY, EMPTY_CLASSES, EMPTY_CNRS, EXTENDS_FRAMEWORK_ERROR_ID
 - Fields inherited from class com.iizix.prop.GProp- GPDEBUG, PROP_ATTR_STRING_EDITOR_PROP, PROP_ATTR_STRING_ERRORED_NAME, PROP_ATTR_STRING_EXTENDS, PROP_ATTR_STRING_EXTENDS_FINAL, PROP_ATTR_STRING_EXTENDS_PRIVATE, PROP_ATTR_STRING_NULLABLE, PROP_ATTR_STRING_PRIVATE, PROP_ATTR_STRING_PRIVATE_CHANGE_EVENT, PROP_ATTR_STRING_READ_ONLY, PROP_USER_1, PROP_USER_2
 - Fields inherited from interface com.iizix.prop.IGProp- EQC_ERROR_IGNORE_ALL, EQC_ERROR_IGNORE_REFERENCES, EQC_IGNORE_ARRAY, EQC_IGNORE_VOLATILE_OR_EDITOR, EQC_PRIVATE, EQC_SAVE_FILE, EXT_CONTAINER_EXTENDS, EXT_CONTAINER_EXTENDS_VALID, EXT_EXTENDED, EXT_FINAL, EXT_OVERRIDES, EXT_OVERRIDES_FINAL_ERR, EXT_PRIVATE
 
 - Constructor Summary- Constructors - Constructor - Description - SSLCommProps()Creates the socket property container without a name.- SSLCommProps(Atom propertyAtom)Creates the socket property container with the specified name.
 - Method Summary- All Methods Static Methods Instance Methods Concrete Methods - Modifier and Type - Method - Description - SSLCommProps- clone()Clones the settings.- javax.net.ssl.SSLEngine- createClientSSLEngine(java.lang.String serverDescription)Creates a Client SSL Engine for the NIO socket communication initialized with these parameters.- ICertificateUI- getCallback()Gets the callback assigned to the properties.- boolean- getClientCertificateDeploymentInfo()Gets Client Certificates using the JRE deployment information.- java.lang.String- getClientCertificateDescription()Gets the Client Certificate description.- javax.net.ssl.KeyManager[]- getClientCertificateKeyManagers(java.lang.String serverDescription, char[] password, ICertificateUI callback)Gets the keystore for the Client Certificate.- boolean- getServerAuthentication()Gets server authentication globally.- boolean- getServerAuthenticationCallback()Gets server authentication using callback interface- com.iizix.nio.ICertificateUI.- java.security.cert.X509Certificate[]- getServerAuthenticationCertificates()Gets the Server Authentication certificates.- boolean- getServerAuthenticationDeploymentInfo()Gets server authentication using the JRE deployment information.- boolean- getStrongCipher()Gets strong cipher encryption requirement, 128 bits or more.- boolean- hasSavedClientCertificatePassword()Checks if the password is saved for the Client Certificate.- static void- resetServerCertificates()Resets the accepted or rejected certificates.- void- setCallback(ICertificateUI callback)Assigns the callback interface to this instance of the properties.- void- setClientCertificate(java.lang.String fileName, char[] password, boolean doSavePassword)Sets or removed the Client Certificate.- void- setClientCertificateDeploymentInfo(boolean on)Sets Client Certificates using the JRE deployment information.- void- setHostName(java.lang.String hostName)Assigns the Host Name once a session has been established with a socket.- void- setServerAuthentication(boolean on)Sets server authentication globally.- void- setServerAuthenticationCallback(boolean on)Sets server authentication using callback interface- com.iizix.nio.ICertificateUI.- void- setServerAuthenticationCertificates(java.security.cert.X509Certificate[] certificates)Sets or removes server authentication using the specified certificates.- void- setServerAuthenticationDeploymentInfo(boolean on)Sets server authentication using the JRE deployment information.- void- setStrongCipher(boolean on)Sets strong cipher encryption requirement, 128 bits or more.- boolean- useClientCertificate()Checks a Client Certificate is used.- Methods inherited from class com.iizix.prop.PropCnr- __transferChildProps, addPredefinedProps, addProp, addProp, addProp2, addProp2, appendPropValue, canRequestFocus, completeVirtualize, containsProp, containsProp, convertLoadedProp, couldRequestFocusIfVirtualized, createCopyOfAtom, createUniqueAtom, createUniqueAtom, createUniqueAtom, createVSReference, doPropEqualsArrayValues, doVirtualizePropCnr, enablePropCommunication, enablePropHashMap, equalsTree, equalsTree, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getBool, getBool, getBool, getBool, getChildPropError, getChildPropError, getChildPropErrorSeverity, getChildPropErrorSeverity, getErrorsProp, getExtendsContainer, getExtendsError, getExtendsName, getExtendsOverride, getExtendsPossibleClasses, getFirstProp, getFirstProp, getFocusEngine, getInt, getInt, getInt, getInt, getLong, getLong, getLong, getLong, getNumber, getNumber, getNumber, getNumber, getPossibleChildren, getPredefinedProps, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getPropBaseReference, getPropCnr, getPropCount, getPropCount, getPropIndex, getPropIndex, getPropIndexes, getProps, getProps, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue0, getReferences, getRetargetedVerifyContainer, getString, getString, getString, getString, getValueClasses, getVSReference, hasFocus, hasSendData, initializeElement, initializeExtendsFramework, initializeProp, initializeValue, initPropCnr, insertProp, insertProp2, isChild, isExtendsOverriden, isExtendsPropertyValid, isExtendsRoot, isPropAddRemoveAllowed, isPropCommunicating, isPropExtended, isSibling, list, list, logPropNotFound, maybeAddProp, onInsertProp, onPropDispose, onPropRemoved, onPropTreeInitialized, onReferenceEvent, paramString, prepare, removeAllProps, removeAllProps2, removeProp, removeProp, removeProp, removeProp, removeProp, removeProp, removeProp, removeProp2, removeProp2, removeProp2, removeProp2, removeProp2, removeProp2, removeProp2, reorderProps, replaceProps, requestFocus, requestFocus, requestFocusEx, requestFocusEx, resolveReferences, resolveRuntimeReferences, setBool, setBool, setBool, setBool, setCreateRequiredProp, setExtendsName, setExtendsOverride, setInt, setInt, setInt, setLong, setLong, setLong, setLong, setNumber, setNumber, setNumber, setNumber, setProp, setProp, setProp, setProp2, setProp2, setPropValue, setPropValue, setPropValue, setPropValue, setPropValue, setPropValue, setString, setString, setString, setString, shouldCreateProps, shouldSerializeToXML, toElementString, toNativeValue0, usePropHashMap, usesPropIndex, validateChildPropInValue, validateClassInstances, validatePropType, validatePropValue, verify, verifyInternalUseOnly, verifyTree, virtualize
 - Methods inherited from class com.iizix.prop.GProp- addPropError, addPropListener, convertPropError, dispose, equals, equals, equalsErrors, equalsObj, equalsPropValue, equalValues, extendsClone, finalize, fine, fine, finer, finer, finest, finest, fromElementString, getAliasName, getAppSessionGyro, getAppWorker, getAtomPath, getAttribute, getChildReferencePropName, getClientSessionGyro, getClientWorker, getConstraints, getEnvironment, getErroredPropItems, getErroredProps, getErrorsProp, getExtendsRootContainer, getFullPropName, getFullPropName, getFullPropNameDebug, getFullPropNameDebug, getListeners, getModuleFolder, getModuleFolder, getParent, getParent, getProjectName, getPropAtom, getPropError, getPropError, getPropErroredName, getPropErrorSeverity, getPropExtendsFlags, getPropFromPath, getPropFromPath, getPropFromReference, getPropFromReference, getPropIndex, getPropName, getPropPath, getPropPath, getPropReferenceTarget, getPropRootPropMgr, getPropTreeErrorSeverity, getPropValue, getPropValue, getPropValueObject, getReferencePropName, getRelativePropName, getRootFromName, getRootName, getRootParent, getRootParent, getTreeLock, hasChanged, hasPrivateChangeEventProp, hasPropError, hasPropTreeError, info, info, initializeGElement, initializeGProp, isDisposed, isPropChildOf, isPropClientCreated, isPropCreateRequired, isPropExtended, isPropExtendsFinal, isPropExtendsPrivate, isPropExtendsPrivateInRoot, isPropExtendsPrivateInRoot, isPropFile, isPropFolder, isPropForEditor, isPropNullable, isPropPrivate, isPropPrivateAtCreation, isPropReadOnly, isPropReferenceTreeValid, isPropRoot, isPropUSER, isPropValueTreeLockNeeded, isPropVirtualized, isPropVirtualizing, isPropVolatile, isPropVolatileOrEditorOnly, isProxied, list, list, list, mapAliasToReference, mapAliasToReference, mapReferenceToAlias, mapReferenceToAlias, mapReferenceToProjectRelative, modifyPropValue, moveProp, moveProp, moveProp, onEvent, onEventSelf, onPrepare, onPropInvalidateCache, onPropParentChanged, onPropValueSet, onRemoteEvent, onVirtualizationCompleted, onVirtualized, paramValue, post, post, removePropError, removePropListener, removePropUSER, renameProp, renameProp2, resetChangedTree, setChanged, setConstraints, setConstraints, setParent, setPrivateChangeEventProp, setPrivateCreateRequiredProp, setPropError, setPropErroredName, setPropExtended, setPropExtendsFinal, setPropExtendsPrivate, setPropForEditor, setPropNullable, setPropPrivate, setPropReadOnly, setPropUSER, setPropValue, setPropValue, setPropValue, setPropValueIncognito, setPropVolatile, severe, severe, severe, shouldSerializeToXML, throwIfReadOnly, toNativeValue, toString, toString, triggerRemoteEvent, triggerRemoteEvent, validateProp, verifyHasPropertyItem, warning, warning, warning
 - Methods inherited from class java.lang.Object- getClass, hashCode, notify, notifyAll, wait, wait, wait
 - Methods inherited from interface com.iizix.prop.IGProp- addPropError, addPropListener, dispose, equals, fine, fine, finer, finer, finest, finest, fromElementString, getAppSessionGyro, getAtomPath, getClientSessionGyro, getConstraints, getEnvironment, getErroredPropItems, getErroredProps, getErrorsProp, getExtendsRootContainer, getFullPropName, getFullPropNameDebug, getModuleFolder, getModuleFolder, getParent, getParent, getPropAtom, getPropError, getPropError, getPropErrorSeverity, getPropExtendsFlags, getPropFromPath, getPropFromReference, getPropIndex, getPropName, getPropPath, getPropPath, getPropRootPropMgr, getPropTreeErrorSeverity, getPropValue, getPropValue, getReferencePropName, getRelativePropName, getRootParent, getTreeLock, hasChanged, hasPrivateChangeEventProp, hasPropError, hasPropTreeError, info, info, initializeGElement, initializeGProp, isDisposed, isPropChildOf, isPropClientCreated, isPropCreateRequired, isPropExtended, isPropExtendsFinal, isPropExtendsPrivate, isPropExtendsPrivateInRoot, isPropExtendsPrivateInRoot, isPropFile, isPropFolder, isPropNullable, isPropPrivate, isPropReadOnly, isPropReferenceTreeValid, isPropRoot, isPropVirtualized, list, list, list, mapAliasToReference, mapReferenceToAlias, mapReferenceToProjectRelative, moveProp, moveProp, moveProp, onEvent, onEventSelf, onRemoteEvent, removePropError, removePropListener, renameProp, setChanged, setConstraints, setConstraints, setParent, setPrivateChangeEventProp, setPropError, setPropExtendsFinal, setPropExtendsPrivate, setPropNullable, setPropPrivate, setPropReadOnly, setPropValue, setPropValue, severe, severe, severe, toNativeValue, triggerRemoteEvent, triggerRemoteEvent, validateProp, verifyHasPropertyItem, warning, warning, warning
 - Methods inherited from interface com.iizix.prop.IPropCnr- canRequestFocus, canRequestFocus, couldRequestFocusIfVirtualized, couldRequestFocusIfVirtualized
 
 
- Constructor Detail- SSLCommProps- public SSLCommProps() Creates the socket property container without a name. The name must be set in all cases using the- setPropertyAtomcall.
 - SSLCommProps- public SSLCommProps(Atom propertyAtom) Creates the socket property container with the specified name. All system-reserved names for components begins with "$".- Parameters:
- propertyAtom- the name of the component, unique within it's parent.
 
 
 - Method Detail- resetServerCertificates- public static void resetServerCertificates() Resets the accepted or rejected certificates.
 - clone- public SSLCommProps clone() Clones the settings.
 - setStrongCipher- public void setStrongCipher(boolean on) Sets strong cipher encryption requirement, 128 bits or more.- Parameters:
- on- The enablement flag.
 
 - getStrongCipher- public boolean getStrongCipher() Gets strong cipher encryption requirement, 128 bits or more.- Returns:
- true if enabled, false if disabled.
 
 - setServerAuthentication- public void setServerAuthentication(boolean on) Sets server authentication globally. If off, all servers are accepted.- Parameters:
- on- The enablement flag.
 
 - getServerAuthentication- public boolean getServerAuthentication() Gets server authentication globally. If off, all servers are accepted.- Returns:
- true if enabled, false if disabled.
 
 - setServerAuthenticationCallback- public void setServerAuthenticationCallback(boolean on) Sets server authentication using callback interface- com.iizix.nio.ICertificateUI.- Parameters:
- on- The enablement flag.
 
 - getServerAuthenticationCallback- public boolean getServerAuthenticationCallback() Gets server authentication using callback interface- com.iizix.nio.ICertificateUI.- Returns:
- true if enabled, false if disabled.
 
 - setServerAuthenticationDeploymentInfo- public void setServerAuthenticationDeploymentInfo(boolean on) Sets server authentication using the JRE deployment information.- Parameters:
- on- The enablement flag.
 
 - getServerAuthenticationDeploymentInfo- public boolean getServerAuthenticationDeploymentInfo() Gets server authentication using the JRE deployment information.- Returns:
- true if enabled, false if disabled.
 
 - setServerAuthenticationCertificates- public void setServerAuthenticationCertificates(java.security.cert.X509Certificate[] certificates) throws PropException, java.security.cert.CertificateExceptionSets or removes server authentication using the specified certificates.- Parameters:
- certificates- The certificates to accept, or null to remove certificate verification.
- Throws:
- PropException- If the property cannot be removed, set or added.
- java.security.cert.CertificateEncodingException- If an encoding error occurs.
- java.security.cert.CertificateException
 
 - getServerAuthenticationCertificates- public java.security.cert.X509Certificate[] getServerAuthenticationCertificates() throws java.security.cert.CertificateExceptionGets the Server Authentication certificates.- Returns:
- The array of server certificates (could be empty), or null if this authentication is disabled.
- Throws:
- java.security.cert.CertificateException- If no Provider supports a CertificateFactorySpi implementation for the specified type when creating the Certificate Factory, or when the certificate is initialized from the data.
 
 - setClientCertificateDeploymentInfo- public void setClientCertificateDeploymentInfo(boolean on) Sets Client Certificates using the JRE deployment information.- Parameters:
- on- The enablement flag.
 
 - getClientCertificateDeploymentInfo- public boolean getClientCertificateDeploymentInfo() Gets Client Certificates using the JRE deployment information.- Returns:
- true if enabled, false if disabled.
 
 - setClientCertificate- public void setClientCertificate(java.lang.String fileName, char[] password, boolean doSavePassword) throws PropException, java.io.FileNotFoundException, java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException, java.io.IOException, java.security.UnrecoverableKeyExceptionSets or removed the Client Certificate.- Parameters:
- fileName- The file name of the PKCS#12 file, DER encoded, null to remove client certificate.
- password- The password, or null for none.
- doSavePassword- Flag to save the password. The password is saved "garbled" but not safe for "de-garbling", use with care.
- Throws:
- PropException- If the property cannot be removed, set or added.
- java.io.FileNotFoundException- If the file is not found.
- java.security.NoSuchAlgorithmException- If the algorithm used to check the integrity of the keystore cannot be found.
- java.security.cert.CertificateException- If any of the certificates in the keystore could not be loaded.
- java.io.IOException- If there is an I/O or format problem with the keystore data, if a password is required but not given, or if the given password was incorrect. If the error is due to a wrong password, the cause of the IOException should be an UnrecoverableKeyException.
- java.security.UnrecoverableKeyException- If the key cannot be recovered (e.g. the given password is wrong).
- java.security.KeyStoreException
 
 - useClientCertificate- public boolean useClientCertificate() Checks a Client Certificate is used.
 - getClientCertificateDescription- public java.lang.String getClientCertificateDescription() Gets the Client Certificate description.- Returns:
- null if none is present, otherwise the string.
 
 - hasSavedClientCertificatePassword- public boolean hasSavedClientCertificatePassword() Checks if the password is saved for the Client Certificate.
 - getClientCertificateKeyManagers- public javax.net.ssl.KeyManager[] getClientCertificateKeyManagers(java.lang.String serverDescription, char[] password, ICertificateUI callback) throws java.security.KeyStoreException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException, java.io.IOException, java.security.UnrecoverableKeyExceptionGets the keystore for the Client Certificate.- If no - passwordor- callbackis set and the password is not saved, an error will be thrown.- Parameters:
- serverDescription- The server description.
- password- The password, or null for none.
- callback- The callback to request the password from the user, null for none.
- Returns:
- The keystore, or null if client certificate is not used or the user canceled the password dialog box.
- Throws:
- java.security.KeyStoreException- If no Provider supports a KeyStoreSpi implementation for the PKCS#12 type.
- java.security.NoSuchAlgorithmException- If the algorithm used to check the integrity of the keystore cannot be found.
- java.security.cert.CertificateException- If any of the certificates in the keystore could not be loaded.
- java.io.IOException- If there is an I/O or format problem with the keystore data, if a password is required but not given, or if the given password was incorrect. If the error is due to a wrong password, the cause of the IOException should be an UnrecoverableKeyException.
- java.security.UnrecoverableKeyException- If the key cannot be recovered (e.g. the given password is wrong).
 
 - createClientSSLEngine- public javax.net.ssl.SSLEngine createClientSSLEngine(java.lang.String serverDescription) throws java.security.NoSuchAlgorithmException, java.security.cert.CertificateException, java.io.IOException, java.security.UnrecoverableKeyException, java.security.KeyStoreException, java.security.NoSuchProviderException, java.security.KeyManagementExceptionCreates a Client SSL Engine for the NIO socket communication initialized with these parameters. The SSL context for the settings is cached in order to provide a faster access the second time this method is called.- Parameters:
- serverDescription- The server description.
- Returns:
- The SSL Engine for the Client, initialized for Client mode.
- Throws:
- java.security.KeyStoreException- If no Provider supports a KeyStoreSpi implementation for the PKCS#12 type.
- java.security.NoSuchAlgorithmException- If the algorithm used to check the integrity of the keystore cannot be found.
- java.security.cert.CertificateException- If any of the certificates in the keystore could not be loaded.
- java.io.IOException- If there is an I/O or format problem with the keystore data, if a password is required but not given, or if the given password was incorrect. If the error is due to a wrong password, the cause of the IOException should be an UnrecoverableKeyException.
- java.security.UnrecoverableKeyException- If the key cannot be recovered (e.g. the given password is wrong).
- java.security.NoSuchProviderException- TLS provider not found.
- java.security.KeyManagementException- Key management problems.
 
 - setHostName- public void setHostName(java.lang.String hostName) Assigns the Host Name once a session has been established with a socket. This is then used for name clash verification with a server certificate.
 - setCallback- public void setCallback(ICertificateUI callback) Assigns the callback interface to this instance of the properties. Please note that it is not a good idea to do if it's not a new instance of the properties, e.g. if they are loaded from an XML file.
 - getCallback- public ICertificateUI getCallback() Gets the callback assigned to the properties.- Returns:
- The callback, or null if none has been set.