Vous pouvez utiliser les fonctionnalités avancées du client Java Cloudant sur Liberty.
Pourquoi et quand exécuter cette tâche
En tant qu'utilisateur du client Java Cloudant, il est possible que vous souhaitiez exécuter votre serveur avec la sécurité Java 2 activée ou appliquer des alias
d'authentification à des références de ressource. Vous pouvez également utiliser le client Java Cloudant sans aucune fonction d'intégration WebSphere. Les étapes suivantes peuvent être
réalisées indépendamment les unes des autres.
- Si votre serveur s'exécute avec la sécurité Java 2 activée, des droits doivent être accordés à la bibliothèque client cloudant.
Par exemple, dans server.xml, vous pouvez spécifier :
<javaPermission codebase="${shared.resource.dir}cloudant/cloudant-client-2.2.0.jar" className="java.security.AllPermission"/>
- Créez un élément d'alias d'authentification des conteneurs dans le fichier server.xml pour fournir un nom d'utilisateur et un mot de passe à utiliser pour
s'authentifier dans la base de données.
<cloudant ... containerAuthDataRef="cadr"/>
<authData id="cadr" user="username" password="password"/>
Conseil : Au lieu de spécifier un alias d'authentification des conteneurs par défaut, vous pouvez utiliser les attributs du nom d'utilisateur et du mot de passe de l'élément
cloudant. Pour
plus d'information, veuillez vous reporter à
Profil
Liberty : Limites de la protection via le chiffrement de mot de passe pour savoir comment sécuriser les mots de passe dans les fichiers de configuration.
- L'application peut spécifier un alias d'authentification géré par conteneur pour chaque référence de ressource dans les liaisons. La valeur spécifiée comme alias d'authentification doit
être l'ID d'un élément authData dans la configuration du serveur.
Par exemple, dans ibm-web-bnd.xml, vous pouvez spécifier :
<resource-ref name="java:module/env/cloudant/testDBRef" binding-name="cloudant/testDB">
<authentication-alias name="cadr"/>
</resource-ref>
- Si vous souhaitez utiliser des ressources Cloudant non gérées dans votre application, la fonction cloudant-1.0 n'a pas besoin d'être activée ni aucun
élément cloudant ou cloudantDatabase ajouté dans le server.xml.
Lorsque vous utilisez des ressources Cloudant non gérées, les bibliothèques Cloudant peuvent être packagées directement dans l'application ou une bibliothèque peut être configurée dans
le fichier server.xml :
<library name="cloudantLib">
<fileset dir="${shared.resource.dir}cloudant"
includes="cloudant-client-2.2.0.jar commons-codec-1.6.jar commons-io-2.4.jar gson-2.2.4.jar"/>
</library>
<application ...>
<classloader commonLibraryRef="cloudantLib"/>
</application>
- Si un nom JNDI est spécifié sur un élément de configuration cloudant, vous pouvez injecter ou rechercher l'instance ClientBuilder configurée à l'aide de l'élément de
configuration cloudant.
<cloudant id="builder" jndiName="cloudant/builder" ... />
Exemple d'injection ou de recherche d'une instance ClientBuilder configurée à l'aide de l'élément de configuration cloudant.
import com.cloudant.client.api.*;
//...
@Resource(lookup="cloudant/builder", name="cloudant/resRef")
ClientBuilder builder;
public void useInjectedBuilder() {
CloudantClient client = builder.build();
Database db = client.database("somedb", true);
// use the db ...
// Shutdown the connection manager for this client when you are done with it
// note that this renders the CloudantClient instance unusable after this point
client.shutdown();
}
public void useBuilderLookup() throws NamingException {
ClientBuilder builder = (ClientBuilder) new InitialContext().lookup("java:comp/env/cloudant/resRef");
CloudantClient client = builder.build();
Database db = client.database("somedb",true);
// use the db ...
// Shutdown the connection manager for this client when you are done with it
// note that this renders the CloudantClient instance unusable after this point
client.shutdown();
}