2016-08-18 2 views
0

So habe ich die Antwort für diese question als mein Tutorial für Token-basierte Authentifizierung verwendet. Aber ich habe immer noch ein Problem mit dem Autorisierungsheader einrichten.Bearer Header in Jax-Rs einrichten

In meiner authenticateUser Methode habe ich versucht, hier einen Träger Header einzurichten, th Code ist

@POST 
@Path("https://stackoverflow.com/users/authentication") 
@Produces("application/json") 
@Consumes("application/x-www-form-urlencoded") 
public Response getUsers(@FormParam("username") String username, 
     @FormParam("password") String password){  

    try{ 
     if(userDao.existUser(username, password)){ 
      User uUser = new User(userDao.getUser(username, password)); 
      uUser.setToken(userDao.issueToken()); 
      uUser.setTokenExpDate(); 
      userDao.updateUser(uUser); 
      Response response = Response.ok(userDao.getUser(uUser.getId()).getToken()) 
        .header(HttpHeaders.AUTHORIZATION, "Bearer "+userDao.getUser(uUser.getId()).getToken()) 
        .build(); 
      System.out.println(response.getHeaderString(HttpHeaders.AUTHORIZATION)); 
      return response;     
      } 
     }catch(Exception e){ 
      return Response.status(Response.Status.UNAUTHORIZED).build(); 
     } 
    return null; 
} 

Wie Sie Ich gründe es auf Reaktionsvariable und es ist dort zu sehen. Aber sobald ich zur gesicherten Methode gehe und mein AuthenticationFilter aktiviert, finde ich heraus, dass die Überschrift, die ich von requestContext erhalte, null ist. Wie sende ich Token in dieser Situation richtig an diesen Header? Here's my full code

Antwort

0

Der Header muss vom Client und nicht vom Server eingefügt werden. Der allgemeine Ablauf ist diese

1) der Client mit Anmeldeinformationen in Ihrem Dienst authentifiziert, dann der Server ein Token erstellt und gibt sie an den Client, der das Token in einer sicheren Lagerung führt

2) der Client speichert eine Anfrage und fügen Sie das Token in die Kopfzeile ein.

POST/Your Berechtigung: Bearer thetoken

3) Der Server prüft den Header, extrahiert das Token und validieren

Verwandte Themen