@ParametersAreNonnullByDefault @Nonnull
See: Description
| Interface | Description |
|---|---|
| LicenseApplicationContext |
A context which has been derived from a
license management context.
|
| LicenseApplicationContext.KsbaInjection<Target> |
Injects a Key Store Based
Authentication (KSBA)
into some target. |
| LicenseApplicationContext.PbeInjection<Target> |
Injects a Password Based
Encryption (PBE)
into some target. |
| LicenseAuthorization |
Defines an authorization for the license key life cycle management
operations.
|
| LicenseAuthorizationProvider |
Provides a license authorization.
|
| LicenseConsumerContext |
A derived context for license consumer applications.
|
| LicenseConsumerContext.ManagerBuilder |
A builder for
license consumer managers.
|
| LicenseConsumerManager |
Defines the life cycle management operations for license keys in consumer
applications.
|
| LicenseInitialization |
Defines a license initialization.
|
| LicenseInitializationProvider |
Provides a license initialization.
|
| LicenseManagementContext |
A root context for the life cycle management of license keys.
|
| LicenseParameters |
Defines license parameters.
|
| LicenseParametersProvider |
Provides license parameters.
|
| LicenseProvider |
Provides a license.
|
| LicenseSubjectProvider |
Provides a licensing subject.
|
| LicenseValidation |
Defines a license validation.
|
| LicenseValidationProvider |
Provides a license validation.
|
| LicenseVendorContext |
A derived context for license vendor applications alias license key tools.
|
| LicenseVendorContext.ManagerBuilder |
A builder for
license vendor managers.
|
| LicenseVendorManager |
Defines the life cycle management operations for license keys in vendor
applications alias key tools.
|
| Class | Description |
|---|---|
| BasicLicenseManagementContext |
A basic license management context.
|
| BasicV2LicenseManagementContext |
The root context for the management of V2 format license keys.
|
| License |
A Java Bean which defines and provides the common properties of any license.
|
| V1LicenseManagementContext |
The root context for the management of Version 1 (V1) format license keys.
|
| V2XmlLicenseManagementContext |
The root context for the management of Version-2-with-XML (V2/XML) format
license keys.
|
| Exception | Description |
|---|---|
| LicenseManagementException | |
| LicenseValidationException |
Indicates that a
license validation failed.
|
Store interface.
License keys pass the following life cycle phases:
These operations are defined in the
LicenseVendorManager and the
LicenseConsumerManager interfaces.
A Free Trial Period (FTP) is
configurable
with a license consumer manager in order to ease the conversion of prospects
to customers.
License consumer managers can also get
chained
in order to unlock application features based on the purchased license keys.
A license bean is an instance of the
License class.
This class follows the Java Bean pattern and defines common properties for
the licensing subject, issue date, issuer, holder, consumer type/amount,
validity period and custom data.
These properties get
initialized
and
validated
whenever a license key gets created.
They also get validated whenever a license key gets installed or verified.
A license key gets created from a license bean by applying the following function composition:
encrypt(compress(encode(sign(encode(validate(initialize(duplicate(licenseBean))))))))
When installing or verifying a license key, a duplicate of the original license bean gets derived by applying the following (almost inverse) function composition (note that there is no initialization and hence no duplication required):
validate(decode(authenticate(decode(decompress(decrypt(licenseKey))))))
The validation step is skipped when a license key is just viewed.
Encryption is done via JCA with a configurable password based encryption
algorithm.
Authentication is done via JCA with a configurable key store type and
signature algorithm.
Encoding is done with XMLEncoder for simple,
schema-less, yet resilient long term archival.
TrueLicense 2 retains full compatibility with TrueLicense 1 (V1) format
license keys plus defines a new V2 format for enhanced encryption and
compression.
Applications select the class
V1LicenseManagementContext or
V2XmlLicenseManagementContext as
their starting point for configuring a license vendor or consumer manager.
These classes can get subclassed to customize special aspects, such as
performing additional license validation steps, providing an authoritative
clock et al.
However, TrueLicense 2 has been designed so that typical applications don't
need to subclass or implement any class or interface of its API.
For security, passwords are represented as an instance of the
ObfuscatedString class.
Other security critical string (algorithms, paths, etc.) are annotatable
with @Obfuscate and
processible with the TrueLicense Maven Plugin for simple, reliable
obfuscation of constant string values in the byte code for license
applications.
Warning: To protect against reverse engineering and modification of your application, it is strictly necessary to generally process all byte code which is comprised in your deployment unit with a tool for byte code obfuscation. TrueLicense does not provide general byte code obfuscation because there exist good quality third party tools, e.g. ProGuard.
Copyright © 2005–2017 Schlichtherle IT Services. All rights reserved.