4
respostas

Header sempre chega vazio no JAVA

Implementei um Token, para trabalhar com Spring, SpringSecutity e Angular.

Só que isto sempre vem vazio request.getHeader(“Authorization”).

Apesar de não ter colocado código nenhum aqui, o que pode ser ?

No Angular ou No Spring ?

Não consigo identificar. Pelo que vi ele não vai para o JAVA. Mas não sei o porque.

4 respostas

Oi Guilherme, tudo bem?

A primeira coisa que eu faria, é ter certeza que o front esta enviando, o que voce pode fazer é usar o postman, que é uma ferramenta para envio de requisições, assim da para setar um header na requisição e conferir no back.

Parece que resolvi a parte do angular, pois todas as requisições ele esta levando o Authorization, eté então.

No Angular alterei para:

    import { RequestOptions, Headers } from '@angular/http';

    const createDefaultHeaders = function() {
      return new RequestOptions(
        {
          headers : new Headers(
            { 
              'Authorization': 'Bearer ' + localStorage.getItem('token') 
            }
          )
        }
      );
     };

    export const REQUEST_OPTIONS_DEFAULT: Function = createDefaultHeaders;

No Java está com este erro agora. Unable to read JSON value

https://gist.github.com/guilhermecostalopes/96c22a8ec318115d5eec9a59786cd49b

Voltou a dar erro. Não está enviando o Authorization e nem o Content-Type, conforme imagem.

O que será em ?

Serviço do Angular.

 import { Injectable, EventEmitter }  from '@angular/core';
    import { Http, Response } from "@angular/http";
    import { Observable } from 'rxjs/Observable';
    import 'rxjs/add/operator/catch';
    import 'rxjs/add/operator/map';
    import 'rxjs/add/observable/throw';

    import { BASE_API_URL } from '../base-api-url-defaul';
    import { REQUEST_OPTIONS_DEFAULT } from '../request-options.default';
    import { AuthenticationService } from '../authentication/authentication.service';
    import { Pais } from '../../modelo/endereco/pais.model';

    @Injectable()
    export class PaisService {

      private base: string;
      private options: Function;

      constructor(
        private http: Http,
        private authenticationService: AuthenticationService,
      ) {
        this.base = BASE_API_URL + 'paisRecurso';
        this.options = REQUEST_OPTIONS_DEFAULT;
      }

      getPesquisar(pais : Pais) {
        let url = this.base + "/buscar";
        return this.http.post(url, pais,  this.options())
          .map((response: Response) => {
            console.log("Pesquisou por todos países " + response.status);
           return response.json();
          }
        ).catch((error:any) => 
          Observable.throw(error.json().error || 
          'Erro em buscar países ' + console.log(this.options))
        );
      }
    }

BASE_API_URL, que o serviço do angular chama

export const BASE_API_URL: string = 'http://localhost:8080/des-if-web/admin/';

REQUEST_OPTIONS_DEFAULT, que o serviço do angular chama

  import { RequestOptions, Headers } from '@angular/http';

    const createDefaultHeaders = function() {
      let headers = new Headers();
      headers.append('Content-Type', 'application/json');
      headers.append('Authorization', 'Bearer ' + localStorage.getItem('token'));
      return headers;
    };

    export const REQUEST_OPTIONS_DEFAULT: Function = createDefaultHeaders;