Insérer paramètre (token) dans une url avec java

Fermé
meriembac Messages postés 3 Date d'inscription samedi 31 mai 2014 Statut Membre Dernière intervention 31 mai 2014 - 31 mai 2014 à 19:32
meriembac Messages postés 3 Date d'inscription samedi 31 mai 2014 Statut Membre Dernière intervention 31 mai 2014 - 31 mai 2014 à 22:14
Bonjour,
je suis débutante en programmation (java)
je voudrais insérer un jeton comme paramètre a une URL avec java pour sécuriser l'accès a mon API RET : (j'ai créer le jeton et l'api mais je ne sais pas comment insérer le jeton à l'url d'accès à l'API REST
exemple: forme d'url =http://localhost:8080/client-api/api/ventes
A voir également:

4 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
31 mai 2014 à 20:03
Bonjour,

Normalement le jeton est transmis dans le header HTTP à la fin de la négociation, mais tu ne le récupères pas comme paramètre de l'URL, il me semble qu'il est plutôt dans les @QueryParam.

Essayes :

@QueryParam("token")
private String token;
0
meriembac Messages postés 3 Date d'inscription samedi 31 mai 2014 Statut Membre Dernière intervention 31 mai 2014
31 mai 2014 à 20:34
merci pour votre réponse
je ne sais pas ou je doit mettre ces deux instructions
voici l'url de mon api
http://localhost:8080/client-api/api/vente
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
31 mai 2014 à 20:58
Je fais le code de tête, c'est approximatif, il faudra vérifier.

En gros pour l'instant j'imagine que ta classe doit être quelque chose comme ça :

import javax.ws.rs.*;

public class VenteService
{
    @GET
    @Path("/api/vente")
    @Produces("text/html")
    public String vente()
    {
        return "token is missing";
    }
}

Ce que tu voudrais faire en mettant le jeton dans l'URL c'est avoir :

public String vente(@PathParam("token") String token)
{
    return "token="+token;
}

Mais ça ne fonctionnera pas car le jeton n'est pas dans l'URL.
Par contre il devrait être dans la requête, tu pourrais donc faire :

public String vente(@QueryParam("token") String token)
{
    return "token="+token;
}

Pour généraliser, vu que tu vas certainement avoir plusieurs méthodes dans la même classe, mais que tu auras toujours besoin du jeton, au lieu de passer la variable en paramètre de chacune des méthodes, tu peux la mettre en attribut de la classe, comme ceci :

import javax.ws.rs.*;

public class VenteService
{
    @QueryParam("token")
    private String token;

    @GET
    @Path("/api/vente")
    @Produces("text/html")
    public String vente()
    {
        return "token="+token;
    }
}
0
meriembac Messages postés 3 Date d'inscription samedi 31 mai 2014 Statut Membre Dernière intervention 31 mai 2014
31 mai 2014 à 22:14
pour mieux comprendre mon problème voici les détaillés de mon application
j'ai créer une api REST avec .NET (c#) qui permet l'accès a des tables d'une base de données.
j'ai créer une application web cliente (netbeans) pour accéder a la base de données via cette API (j'ai réussi dans cette partie et je peux accéder a l'api a partir de l'application java (méthode get et servlet
classe get
-----------------------------------------------------------------
public static String get(String url) throws MalformedURLException, IOException{
String source="";
URL oracle = new URL(url);
URLConnection yc = oracle.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
String inputline;
while((inputline=in.readLine())!=null)
source+=inputline;
in.close();
return source;
et Servlet
--------------------------------------------------------------------------
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String token=null;
try (PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code. */

out.println(users.post.get("http://localhost:8080/client-api/api/vente"));

}
}
pour récupérer la liste de vente
et j'ai créer un jeton JWT pour les client de mon application
moi je veux insérer ce jeton dans les requêtes de l'application cliente
donc ou je doit mettre le jeton.
0