Hi Elias, please help me and give me a hint *how to send a get-request with basic authentication to a REST-WS endpoint in Angular 2*. I have the same problems trying to get a list of tasks from a comunda RESTful-Webservice that is protected via basic authentication. (See documentation here https://docs.camunda.org/manual/7.6/reference/rest/overview/authentication/)
Just to explain, what I want to do, I give you the curl-call that works perfect: curl --user john:john http://localhost:8080/engine-rest/task Now I try to do it with Angular 2 public model = { 'account' : "john", 'password' : "john" }; getTasks(){ let headers = new Headers(); this.createAuthorizationHeader(headers); let options = new RequestOptions({ headers: headers }); return this.http .get( "http://localhost:8080/engine-rest/task", options ) .map(response => response.json()).subscribe( (taskNumber:number) => this.numberOfTasks=taskNumber, (err) => console.log(err), () => console.log(this.numberOfTasks) ); } createAuthorizationHeader(headers: Headers) { headers.append('Authorization', 'Basic ' + btoa(`${this.model.account}:${this.model.password}`)); } with Angular I got an 401 as response. Sniffing the Requests I see the problem: Hypertext Transfer Protocol OPTIONS /engine-rest/task HTTP/1.1\r\n [Expert Info (Chat/Sequence): OPTIONS /engine-rest/task HTTP/1.1\r\n] [OPTIONS /engine-rest/task HTTP/1.1\r\n] [Severity level: Chat] [Group: Sequence] Request Method: OPTIONS Request URI: /engine-rest/task Request Version: HTTP/1.1 Host: localhost:8080\r\n Connection: keep-alive\r\n Access-Control-Request-Method: GET\r\n Origin: http://evil.com/\r\n User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36\r\n Access-Control-Request-Headers: authorization\r\n Accept: */*\r\n Referer: http://localhost:4200/login\r\n Accept-Encoding: gzip, deflate, sdch, br\r\n Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4\r\n \r\n [Full request URI: http://localhost:8080/engine-rest/task] [HTTP request 1/1] [Response in frame: 6] So my call was send as an OPTIONS request and the header wasn't set correctly. For a comparison, here is the working call with curl: Hypertext Transfer Protocol GET /engine-rest/task HTTP/1.1\r\n [Expert Info (Chat/Sequence): GET /engine-rest/task HTTP/1.1\r\n] Request Method: GET Request URI: /engine-rest/task Request Version: HTTP/1.1 Host: localhost:8080\r\n Authorization: Basic am9objpqb2hu\r\n Credentials: john:john User-Agent: curl/7.51.0\r\n Accept: */*\r\n \r\n [Full request URI: http://localhost:8080/engine-rest/task] [HTTP request 1/1] [Response in frame: 25] Thanks in advance! Yours Arne Am Montag, 5. Dezember 2016 09:36:25 UTC+1 schrieb Sander Elias: > > Hi Nithil, > > I would say it works as advertised. Doing it in quite a few applications. > It easier to help you if you show your code, or at least tell us what you > have tried, and what the results are? > > Regards > Sander > -- You received this message because you are subscribed to the Google Groups "Angular" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.
