2017-04-12 1 views
1

Ich arbeite an der Erweiterung eines vorhandenen GWT-Projekts, ich füge die Authentifizierung mit PING hinzu.So senden Sie URL-Parameter vom GWT-Client zur Serverseite zur Validierung

Also hier ist es, was die Strömung ist:

  1. Benutzer gibt Anwendung URL http://...../library-ui
  2. Ich möchte das alle URLs zu filtern Servlet-Filter verwenden und für die Code-Parameter in der URL überprüfen, wenn ich don‘ t Siehe Code-Parameter in der URL, ich möchte sie an PING-Authentifizierungs-URL umleiten.
  3. Sobald PING authentifiziert es erneut anweist, http://...../library-ui/?code=xxxxxx
  4. Dieser "Code" ist erforderlich, um die JWT Token in Bezug auf den Benutzer zu erhalten

ich einen Filter unten bin und fügte hinzu:

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); 
} 

Aber das Problem ist, dass meine Anfrage URI nicht Code-Parameter hat.

System.out.println(requestURI); drucke - bibliothek-ui.

Sobald ich den Code von der URL bekomme ich in der Lage, weiter zu gehen.

+1

Das wird nicht sicher sein. Wie wäre es, wenn Sie eine OpenID Connect-Bibliothek verwenden, statt selbst zu rollen, ohne sie vollständig zu verstehen? 'redirect_uri's sollen Cookies setzen und weiterleiten. –

+0

in der URL Ich bekomme nur Auth-Code, dieser hat keine Informationen über den Benutzer oder das Token. Sobald ich das bekomme, werde ich Backend-Server-Aufrufe tun, um den tatsächlichen Token zu bekommen. Lass mich wissen, ob es immer noch verwundbar sein wird, ich bin neu in der GwT-Welt, jede Anleitung wird geschätzt. –

+0

Ich empfehle Ihnen sorgfältig zu überprüfen https://tools.ietf.org/html/rfc6819 –

Antwort

0

Ich konnte dieses Problem beheben, ich musste window.location verwenden, um die Details vom Browser abzurufen und einen RPC-Aufruf an die Serverseite durchzuführen. Ich musste dann PING für JWT-Token mit Autorisierungscode anfordern und es bestätigen.

Verwandte Themen