Créer une Route en tant que fournisseur de service avec une validation JWT utilisant Talend STS
Procédure
-
Depuis la Palette, glissez-déposez un composant cBeanRegister, un cREST, un cRecipientList, cinq cDirect, un cSetBody et un cLog dans l'espace de modélisation graphique.
- Renommez les composants afin de mieux identifier leur rôle et reliez-les à l'aide de liens Row > Route comme ci-dessus.
-
Dans la vue Basic settings du composant cBeanRegister, saisissez "customers" dans le champ Id. Sélectionnez l'option Customized et, dans la zone de texte Code, saisissez le code suivant :
beans.Customers customers = new beans.Customers(); beans.Customer customer = new beans.Customer(); customer.setFirstName(TalendDataGenerator.getFirstName()); customer.setLastName(TalendDataGenerator.getLastName()); customer.setCity(TalendDataGenerator.getUsCity()); customers.addCustomer(customer); customer = new beans.Customer(); customer.setFirstName(TalendDataGenerator.getFirstName()); customer.setLastName(TalendDataGenerator.getLastName()); customer.setCity(TalendDataGenerator.getUsCity()); customers.addCustomer(customer); customer = new beans.Customer(); customer.setFirstName(TalendDataGenerator.getFirstName()); customer.setLastName(TalendDataGenerator.getLastName()); customer.setCity(TalendDataGenerator.getUsCity()); customers.addCustomer(customer); beanInstance = customers;
-
Dans la vue Basic settings du composant cREST :
- Renseignez le champ Endpoint en saisissant "/services/customers".
- Dans la liste Type, sélectionnez Manual pour déterminer manuellement le mapping de l'API REST.
- Dans la table REST API mapping, cliquez sur le bouton [+] pour ajouter une ligne à la table. Dans le champ Output Flow, saisissez getAllCustomers comme nom de flux. Sélectionnez GET dans la liste HTTP Verb. Laissez les paramètres par défaut dans les autres colonnes.
- Répétez l'étape précédente pour ajouter les flux de sortie getCustomer, addCustomer, updateCustomer et deleteCustomer avec les éléments HTTP Verb, URI Pattern, Consumers, Producers et Bean class correspondant comme dans l'image ci-dessus.
- Cochez la case Security et sélectionnez le schéma JWT Bearer Token.
- Sélectionnez Java Keystore (.jks) dans la liste Keystore Type.
- Dans le champ Keystore File, saisissez "<TESB-HOME>/etc/keystores/stsstore.jks".
- Dans le champ Keystore Password, saisissez le mot de passe du KeyStore STS.
- Dans le champ Keystore Alias, saisissez l'alias du KeyStore STS.
- Dans le champ Audience, saisissez "http://127.0.0.1:8090/services/customers".
-
Dans la vue Advanced settings du composant cREST, ajoutez deux propriétés "rs.security.signature.algorithm" et "rs.security.accept.public.key" dans la table JAXRS Properties, avec les valeurs "RS256" et "true" respectivement.
-
Dans la vue Basic settings du composant cRecipientList, sélectionnez Simple dans la liste Language et "direct:${header.operationName}" dans le champ Expression.
-
Dans la vue Basic settings du cDirect nommé getAllCustomers, saisissez "getAllCustomers" dans le champ Name.
Répétez cette étape pour saisir un nom dans chaque composant cDirect ayant les noms suivants.
- getCustomer : "getCustomer"
- addCustomer : "addCustomer"
- updateCustomer : "updateCustomer"
- deleteCustomer : "deleteCustomer"
-
Dans la vue Basic settings du composant cSetBody nommé getAllCustomers, sélectionnez SIMPLE dans la liste Language et saisissez "${ref:customers}" dans le champ Expression.
Répétez cette étape pour saisir une expression simple dans chaque composant cSetBody ayant les noms suivants.
- getCustomer : "${bean:customers.getCustomer}"
- addCustomer : "${bean:customers.addCustomer}"
- updateCustomer : "${bean:customers.updateCustomer(${body[0]}, ${body[1]})}"
- deleteCustomer : "${bean:customers.deleteCustomer}"
-
Laissez les valeurs par défaut des paramètres du composant cLog.
-
Exécutez la Route dans le Studio.
Le service REST sera disponible à l'adresse http://localhost:8090/services/customers/ avec la validation JWT activée.
-
Envoyez une requête GET depuis Postman.
- Sélectionnez OAuth 2.0 dans la liste Auth Type.
- Sélectionnez Request Headers dans la liste Add authorization data to.
- Copiez le jeton d'accès obtenu de http://localhost:8040/services/SecurityTokenService/token/jwt dans le champ Token.
Vous obtenez une réponse du service REST.
Cette page vous a-t-elle aidé ?
Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.