1.2 Java Library Design

The JSSO library provides methods to create a common Java interface to SecretStore functionality that is independent of the communication pathway between the library and SecretStore in the directory. The library transforms the function-based C client API into an object-oriented Java client API. Because the library is Java based, it is portable across multiple platforms. This extensible, modular design enables new library features to be added without impact to applications that use its functions.

1.2.1 Library Architecture

As shown in Figure 1-1, the JSSO library architecture is split into two parts: the Java application programming interface and its possible implementations. Note that the NCP implementation requires a NetWare client and functions only on Windows. However, the LDAP implementation is platform independent.

Figure 1-1 Java JNDI and NCP Implementations

The JSSO library provides a common, object-oriented interface to SecretStore. Additional implementations can be added to the library without impacting the Java applications.Java applications use the JSSO API to obtain SecretStore functionality, primarily by using the Secret and SecretStore Java* classes, as shown in Figure 1-2.

Figure 1-2 Secret and SecretStore Java Classes

As shown in the figure, the Secret and SecretStore classes make up most of the API. The Secret class manages functionality that involves a secret, while the SecretStore class deals with functionality that involves the SecretStore as a whole.

Applications obtain an instance of the SecretStore by calling the getInstance (hashtable environment) method. Applications can provide information to the library in the form of environment properties.Implementations plug into the library by providing two classes that extend the Secret and SecretStore classes. The API classes provided in this document handle all of the business logic that concerns SecretStore functionality. This enables implementations to contain only code that deals with how the library communicates with SecretStore.