LaunchKey Service SDK for Java


This SDK version is intended for use with Services belonging to a Directory or Organization created in or migrated to the Admin Center.

Use this SDK to interact with the LaunchKey Platform API in your Java application. This documentation explains how to use the SDK in the most common scenarios. The full documentation of the SDK can be found in the Javadocs. The Javadocs are available in these locations:

Before you can begin using the Platform API, you need an service. If you have not created an service yet, you can use our Help Center to create one.

Example Apps

Example apps are included in the source repository as submodules.


Spring MVC with Spring Security




Provide Cryptography Pre-Requisites

Before you can use the LaunchKey Platform SDK, you must update your Java Runtime Environment (JRE) for some requirements of the Java Cryptography Extension (JCE) to allow the Platform SDK for Java to encrypt, decrypt, sign, and verify data transferred between your service and the Platform API.

JCE Unlimited Strength Jurisdiction Policy Files

Install the "Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files" for your JRE version. If you installed your JRE via a package manager, there will usually be a package for the JCE as well. If not, download the JAR for your JRE and follow the installation instructions.

JCE Cryptography Provider

Follow the instructions for your installing cryptography provider.

We recommend the Bouncy Castle JCE provider. Installation consists of:

  1. Download the JAR file for the Bouncy Castle cryptography provider from

    Maven Central here.

  2. Place the JAR file in the lib/ext directory of the JRE.

Obtain the SDK

The LaunchKey Service SDK for Java is available via standard Maven artifact repositories. Multiple dependency management systems allow for using Maven artifact repositories.

  • Group ID: com.iovation.launchkey
  • Artifact ID: sdk


The LaunchKey Service SDK for Java is broken into credential based factories that make functionality based clients. Clients can be directly instantiated. However, the factory builder, and factory factory, and client factories are a much cleaner, and often simpler, way to construct clients.

Building a Factory Factory

Funny name aside, the Factory factory's purpose is to build credential based client factories.

The factory factory contains all of the pieces and parts for creating a client factory. To simplify the process of building the factory factory, we have provided a factory factory builder. The FactoryFactoryBuilder provides a number of methods to customize the FactoryFactory. A few common examples are below.

Example using a specific JCE provider:

FactoryFactory factoryFactory = new FactoryFactoryBuilder()
    .setJCEProvider(new BouncyCastleProvider())

Example using a custom Apache HTTP client:

HttpClient httpClient = HttpClients.createDefault();
FactoryFactory factoryFactory = new FactoryFactoryBuilder()
    .setJCEProvider(new BouncyCastleProvider())


Factories are based on the credentials supplied. The Organization Factory uses Organization credentials, the Directory Factory uses Directory credentials, and the Service Factory uses Service credentials. Each factory makes clients which access distinct functionality. The availability is based on the hierarchy of the entities themselves. Below is a matrix of available clients for each factory.

Client Organization Client Directory Client Service Client
Organization Factory Yes Yes Yes
Directory Factory No Yes Yes
Service Factory No No Yes

Clients are retrieved from the client factor by providing credentials to the appropriate factory method. For example:

ServiceFactory factory =, privateKey);

For information regarding each factory, see the links below.

LaunchKey Service SDK for Java on GitHub: LaunchKey Service SDK for Java Maven Repository:

User Contributed

LaunchKey links to user contributed code as a resource to its community. LaunchKey does not in any way guarantee or warrant the quality and security of these code bases. User contributed code is supported by the creators. If you do find a link from the site to user contributed code that is malicious or inappropriate in any way, please report that link to LaunchKey immediately and we will investigate the claim. Submit any issue to LaunchKey support at ×