typescript - πώς παίρνω ένα token με angular 2 (oauth2)


Έχω ένα πρόβλημα με μια υπηρεσία στο Angular 2, θέλω να πάρω ένα token από ένα apiREST στο Spring, ο διακομιστής λειτουργεί, αν κάνω το αίτημα με το Postman λειτουργεί!, αλλά δεν ξέρω πώς να κάνω το αίτημα στο Angular 2, έχω αυτόν τον κώδικα στο Angular 2

getToken(login:Login)
{
  let headers = new Headers();
  let urlSearchParams = new URLSearchParams();

  // urlSearchParams.append(this.GRANT_TYPE,"client_credentials");
  urlSearchParams.append(this.GRANT_TYPE,"password");
  urlSearchParams.append(this.USERNAME, ""+login.usr);
  urlSearchParams.append(this.PASSWORD, ""+login.pwd);
  urlSearchParams.append("client_id","my-trusted-client");

  //headers.append("Content-Type","application/json");
  headers.append('Content-Type', 'application/x-www-form-urlencoded');
  // headers.append('Authorization', 'Bearer ' + btoa(plainClientCredentials));
  headers.append("Authorization", "Basic "+ btoa("my-trusted-client:secret"));

  console.log(headers);

  let url = `${this.URL_OAUTH}/${this.GET_TOKEN}`;


  let body = urlSearchParams.toString()

  console.log("Esta es la url: "+url+'?'+body);

  return this.http.post( url, body ,{ headers })
  .map(res => {

  console.log(res);
//  return res;
  let token = res.json() && res.json().access_token;

            if (token) {
                // set token property
                this.token = token;

                // store username and jwt token in local storage to keep user logged in between page refreshes
                localStorage.setItem('token', JSON.stringify({token: token}));

                // return true to indicate successful login
                return res;
            } else {
                // return false to indicate failed login
                return false;
            }
  }
  ,error => {

       console.log(error.json());
   });
}

Ο διακομιστής μου επιστρέφει κωδικό κατάστασης 401, δεν ξέρω πώς να δημιουργήσω επικεφαλίδα για να στείλω αίτημα στο oauth2