- Support TSP error code for KMS_ACCOUNT_ISSUE.
KMS_ACCOUNT_ISSUE requires TSP 4.13.0+. If using TSC < 7.2.0 and TSP >= 4.13.0, these errors will come through as UNKNOWN_ERROR.
- Send TSC language/version as headers on requests to the TSP. This will allow the TSP to report TSC versions along with its metrics.
- Encryption now throws a
TscException
when trying to encrypt a document that has already been IronCore encrypted.- If you have a use case for double-encrypting a document, please open an issue explaining and we can work on accommodating you.
- Crypto exceptions occurring during batch operations will no longer fail the whole operation, but instead be added to the resulting failure list.
- Added
DeterministicTenantSecurityClient
supporting deterministic encryption/decryption operations. - Changed minimum supported Java version to 11.
- Removed deprecated
TenantSecurityClient.rekeyDocument
method. - Added
TscException
for exceptions originating from the TSC.
Deterministic encryption functionality requires TSP 4.11.1+.
- Added
KmsException
forKmsThrottled
.
This new error code will only be returned by TSP 4.4.1+.
- Added
TenantSecurityClient.rekeyEdek
method - Deprecated
TenantSecurityClient.rekeyDocument
method
- Remove javax.annotation from the shaded jar.
- Shade google-http-client and all related jars to increase compatibility with conflicting versions.
- No public api changes, but bumping major version since we've changed the contents of our jar significantly.
- No public api changes. Internal change to increase compatibility with 1.20 google-http-client.
- Added
TenantSecurityClient.rekeyDocument
method and supportingRekeyedDocumentKey
type
- Renamed some security events for better consistency
- Added
TenantSecurityClient.logSecurityEvent
method and supportingSecurityEvent
andEventMetadata
types - Standardized
EventMetadata
andDocumentMetadata
to similar interfaces with the TSP - Introduced an exception hierarchy based on TSP error codes.
TenantSecurityKMSException
renamed toTenantSecurityException
andKmsException
,SecurityEventException
, andTspServiceException
are subclasses. - Renamed
TenantSecurityKMSClient
toTenantSecurityClient
- Removed deprecated list based batch methods
This version of the Tenant Security Java Client will only work with version 3.0.0+
of the Tenant Security Proxy container.
- Use connection pooling for better performance and safer scaling in high-load environments.
- Bumped versions of HTTP libs
- Added a
timeout
option to theTenantSecurityKMSClient
this timeout is applied to the connection negotiation and the read from the TSP, so the worst case of a very unstable connection is 2x thetimeout
value.
- Fixed displayed URL in error message when TSP unwrap endpoint cannot be reached.
- Deprecated the list based versions of
TenantSecurityKMSClient.decryptBatch
andTenantSecurityKMSClient.encryptBatch
in favor of a Map based interface that allows for partial failure.
This version of the Tenant Security Java Client will only work with version >= 2.0.0 < 4.0.0
of the Tenant Security Proxy container due to a deprecated interface. TSP v3
supports both the old and new interfaces and can be used to migrate TSCs if necessary.
- Deprecated
TenantSecurityKMSException.getErrorMessage
in favor ofgetMessage
to make the full error message more accessible. - All
TenantSecurityKMSException
constructors accept/set anException.cause
if possible.
- Added an error message to the
TenantSecurityKMSException
error that occurs when requests to the Tenant Security Proxy could not be made. This error message will include the URL that was attempted to be reached and the error text from the original exception that occurred. The error code associated with this error will beUNABLE_TO_MAKE_REQUEST
.
- Added additional error codes to the
TenantSecurityKMSErrorCodes
enum for errors specific to failures when interacting with the tenants KMS. These errors will help differentiate between KMS errors that were caused by network outages, credential errors, etc so that the appropriate error can be communicated to the calling client.KMS_AUTHORIZATION_FAILED
: Requests to the tenants KMS failed because the credentials provided in their config failed to authenticate against their KMS. This could be because the credentials were setup incorrectly or because they have been revoked/removed.KMS_CONFIGURATION_INVALID
: Requests to the tenants KMS failed because the KMS key configuration was invalid or the permissions for the key that is being wrapped/unwrapped have been revoked/removed. This could be because the key configuration was setup incorrectly or because the key has been revoked/removed.KMS_UNREACHABLE
: Requests to the tenants KMS failed because the KMS API wasn't reachable. This could be because of a temporary network outage or service down situation. The Tenant Security Proxy will automatically perform a single retry for the request if this error occurs.- The existing
KMS_WRAP_FAILED
/KMS_UNWRAP_FAILED
error codes will now only occur when the request to the tenants KMS was successful but did not return the expected response.
- The
TenantSecurityKMSException
class now also contains the error message returned from Tenant Security Proxy and can be retrieved by callingex.getErrorMessage()
. This message will have additional context for the error that occurred within the Tenant Security Proxy and will be specific to the KMS type being used. This message should be very helpful in logs to determine why requests are failing to the tenants KMS.
- Fixed a bug where the user agent header send on requests to the Tenant Security Proxy would grow unbounded and eventually cause HTTP 413 errors.
- Added support for Java8 compatibility.
This version of the Tenant Security Java Client will only work with version >= 1.2.0 < 4.0.0
of the Tenant Security Proxy container due to a deprecated interface. TSP v3
supports both the old and new interfaces and can be used to migrate TSCs if necessary.
This version of the Tenant Security Java Client will only work with version >= 1.2.0 < 4.0.0
of the Tenant Security Proxy container due to a deprecated interface. TSP v3
supports both the old and new interfaces and can be used to migrate TSCs if necessary.