L'ajout d'en-tête d'autorisation de Maillot de l'ESS demande du Client
Je suis à l'aide de Jersey client pour se connecter à un ESS flux. Le serveur, je dois ajouter un en-tête de la requête http pour l'autorisation, mais je ne peux pas comprendre comment ajouter l'en-tête.
Voici mon code:
Client client = ClientBuilder.newBuilder().register(SseFeature.class).build();
WebTarget target = client.target(baseurl + "/v1/devices/events/");
eventSource = EventSource.target(target).build();
eventSource.register(getEventListener());
eventSource.open();
Voici un exemple de l'en-tête j'ai besoin d'ajouter:
Authorization: Bearer 38bb7b318cc6898c80317decb34525844bc9db55
OriginalL'auteur Quick | 2015-03-15
Vous devez vous connecter pour publier un commentaire.
Il serait quelque chose comme ceci pour l'Authentification de Base:
...
Vous avez déjà obtenir le mot de passe codé en Jersey.
Et si c'est un jeton:
Espère que cela aide!
J'ai édité... Laissé à l'utilisateur/mot de passe de la partie dans le cas où il aide quelqu'un d'autre. Dans le cas du jeton que vous n'avez pas besoin de l'auth fonctionnalité. Espérons que cela aide!
Mon WebTarget objet (javax.ws.rs.client.WebTarget) n'ont pas de header() de la méthode. J'ai essayé ceci mais ça n'a aucun effet:
target.request().header("Authorization", "Bearer " + token);
Désolé, vous avez raison c'est en effet après la demande. J'ai édité ma réponse. Quelle est la version de
Jersey
utilisez-vous? Pourriez-vous poster vos dépendances? (pom.xml
ou équivalent) Qu'entendez-vous par "pas d'effet"? Avez-vous de débogage pour voir si l'en-tête HTTP est-il?POM Par aucun effet, je veux dire l'en-tête n'y était pas. Test
OriginalL'auteur lrnzcig
Espère que cela vous aide à résoudre votre problème.
OriginalL'auteur Tekle
Essayez ceci:
OriginalL'auteur phani abburi
Au cas où quelqu'un aurait envie d'ajouter le porteur du jeton d'en-tête à la
Client
au niveau de l'entité elle-même, plutôt qu'à laRequest
au niveau de l'entité (dans mon cas, j'ai eu une usine méthode pour le retour préconfiguréClient
entités, donc je n'avais aucun moyen de l'ajout de l'en-tête d'autorisation au sein de l'usine de méthode,.header(...)
devient disponible uniquement après vous passez par leClientBuilder.newBuilder().register(...).build().target(...).request(...)
appel à la chaîne de Jersey 2.x):Malheureusement (comme vous l'aurez deviné) cela nécessite une nouvelle dépendance:
org.glassfish.jersey.security:oauth2-client
OriginalL'auteur Janaka Bandara
Je me rends compte que cette question est d'un an, mais depuis il n'y a pas beaucoup à être trouvé sur le sujet, je vais partager ma solution.
Basé sur des propositions de OAuth2Feature, j'ai trouvé cette solution:
- Tête de l'interface du fournisseur de
De fonctionnalités personnalisées
Filtre personnalisé
Utilisation
Cette solution est générique et permet d'ajouter facilement une Autorisation de tête, sans avoir à ajouter une autre dépendance.
OriginalL'auteur Gilles
Réponse suivante est utile:
Serveur d'Événement Envoyé au Client avec Cookie supplémentaire
Il utiliser un personnalisé WebTarget pour ajouter des cookies et de la même manière sur l'en-tête.
Voici le code à utiliser:
OriginalL'auteur lprince
Si vous utilisez jercy client à l'aide de l'en-tête dans websource
OriginalL'auteur Nisha Jamalu