2017-04-12 14 views
1

Je travaille sur l'amélioration d'un projet GWT existant, j'ajoute l'authentification en utilisant PING.Comment envoyer les paramètres d'URL du client GWT vers le côté serveur pour la validation

Voici donc ce que le flux est:

  1. L'utilisateur saisit l'URL d'application http://...../library-ui
  2. Je veux utiliser le filtre de servlet pour filtrer tous les URL et vérifier le paramètre de code dans l'URL, si je n » t voir le paramètre de code dans l'URL, je veux les rediriger vers l'URL d'authentification PING.
  3. Une fois PING authentifie il réoriente à http://...../library-ui/?code=xxxxxx
  4. Ce « code » est nécessaire pour obtenir le jeton JWT par rapport à l'utilisateur

J'ajoute un filtre ci-dessous:

public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain filterChain) throws IOException, ServletException { 

    HttpServletRequest httpRequest = (HttpServletRequest) request; 
    System.out.println(httpRequest); 
    String requestURI = httpRequest.getParameter("code"); 

    System.out.println(requestURI); 
    if (!requestURI.contains("code")) { 
     HttpServletResponse httpResponse = (HttpServletResponse) response; 
     httpResponse.sendRedirect("https://pingwebsite/as/authorization.oauth2?client_id=XXX&response_type=code"); 
    } 
    filterChain.doFilter(request, response); 
} 

Mais le problème est que mon URI de requête n'a pas de paramètre de code.

System.out.println(requestURI); imprime - library-ui.

Une fois que j'aurai reçu le code de l'URL, je serai en mesure d'aller plus loin.

+1

Cela ne va pas être sécurisé. Que diriez-vous d'utiliser une bibliothèque OpenID Connect au lieu de rouler la vôtre sans une compréhension totale? 'redirect_uri's sont censés mettre en place des cookies et rediriger. –

+0

dans l'URL Je reçois seulement le code d'autorisation, ceci n'a aucune information sur l'utilisateur ou le jeton. Une fois que j'obtiens ceci je ferai des appels de serveur dorsaux pour obtenir le jeton réel. Faites-moi savoir si ce sera encore vulnérable, je suis nouveau dans le monde GwT, toute orientation serait appréciée. –

+0

Je vous recommande d'examiner attentivement https://tools.ietf.org/html/rfc6819 –

Répondre

0

J'ai été capable de résoudre ce problème, j'ai dû utiliser window.location pour obtenir les détails du navigateur et effectuer un appel RPC au serveur. J'ai ensuite dû demander PING pour le jeton Jwt avec le code d'autorisation et le valider.