Sécurisation des ressources JAX-RS en aval
Les ressources en aval JAX-RS (Java™ API for RESTful Web Services) peuvent être sécurisées par la configuration de la méthode d'authentification BasicAuth et l'utilisation du gestionnaire de sécurité LTPA JAX-RS afin de profiter de la connexion unique pour l'authentification utilisateur.
Avant de commencer
- Vous avez installé votre application JAX-RS sur le serveur d'applications.
- Vous avez activé la sécurité pour votre application JAX-RS.
- Vous avez sécurisé vos applications JAX-RS dans le conteneur Web en configurant les applications JAX-RS en aval pour utiliser la méthode d'authentification de base (BasicAuth) pour authentifier les utilisateurs.
Pourquoi et quand exécuter cette tâche
Lors de la composition des ressources JAX-RS, un nouveau gestionnaire de sécurité LTPA JAX-RS peut être utilisé pour s'authentifier de manière transparente dans les appels de ressources en aval.
Lors de l'appel des ressources JAX-RS sécurisées en aval, l'application appelante doit s'authentifier auprès de la ressource cible. Si la ressource cible sur un serveur en aval met en oeuvre sa sécurité à l'aide de la méthode BasicAuth, l'application appelante peut profiter de la connexion unique (SSO) pour les ressources JAX-RS. Avec la connexion unique, un contexte authentifié est propagé dans les appels en aval. Vous pouvez utiliser le gestionnaire de sécurité client LTPA pour l'authentification auprès des ressources en aval réparties sur les serveurs.
Pour illustrer ce scénario, supposons que la cellule contienne deux serveurs, et que les ressources JAX-RS soient déployées sur ces serveurs. Supposons qu'une ressource de serveur1 doive appeler une autre ressource déployée sur serveur2. Lorsque les ressources de serveur2 sont sécurisées à l'aide de la méthode d'authentification BasicAuth, utilisez le gestionnaire de sécurité LTPA JAX-RS pour tirer partie de la connexion unique et propager de façon transparente l'authentification utilisateur dans les appels en aval, sans avoir à fournir ou gérer des identificateurs et des mots de passe utilisateur dans l'application.

Procédez comme suit pour configurer l'authentification utilisateur auprès d'un serveur en aval à l'aide du gestionnaire de sécurité JAX-RS lors de la génération de l'application.
Procédure
Résultats
Vous avez défini des ressources JAX-RS , de sorte que lorsque les ressources en aval sont appelées, la connexion unique peut être utilisée et l'authentification utilisateur propagée de façon transparente dans les appels en aval, sans avoir à fournir ou gérer des identificateurs et des mots de passe utilisateur dans l'application.
Exemple
import org.apache.wink.client.Resource;
import org.apache.wink.client.RestClient;
import org.apache.wink.client.ClientConfig;
import org.apache.wink.client.handlers.LtpaAuthSecurityHandler;
ClientConfig config = new ClientConfig();
LtpaAuthSecurityHandler secHandler = new LtpaAuthSecurityHandler();
// Add this security handler to the handlers chain.
config.handlers(secHandler);
// Create the REST client instance.
RestClient client = new RestClient(config);
// Create the resource instance that you want to interact with.
// Substitute a value representing your resource address
resource =
client.resource("http://localhost:8080/path/to/resource");
// Now you are ready to begin calling your resource.

![[8.5.5.6 ou ultérieure]](../ng_v8556.gif)
ClientBuilder cb = ClientBuilder.newBuilder();
Client c = cb.build();
c.property("com.ibm.ws.jaxrs.client.ltpa.handler", "true");
String res = "";
res = c.target("http://" + serverIP + ":" + serverPort + "/" + moduleName + "/rest/ltpa")
.request()
c.close();
return res;