весенний загрузочный микросервис OAuth2TokenRelayFilter 500 error - PullRequest
0 голосов
/ 18 мая 2019

Я работаю над проектом весенней загрузки с микросервисной архитектурой. У меня есть микросервис (отчет), шлюз и реестр. Микросервис работает на порту 8082, который зарегистрирован в реестре.

Шлюз работает на порте 8080. При отправке запроса API в микро-службу отчетов от почтальона я получаю ответ, как и ожидалось.

Мой запрос: ПОЛУЧИТЬ: http://localhost:8080/report

Но пока я делаю запрос GET из моего приложения React, я получаю сообщение об ошибке.

{  
   "timestamp":"2019-05-02T10:54:48.591+0000",
   "status":500,
   "error":"Internal Server Error",
   "message":"pre:OAuth2TokenRelayFilter"
}

Вот запрос почтальона как XHR, который работает нормально.

var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
 if (this.readyState === 4) {
   console.log(this.responseText);
 }
});

xhr.open("GET", "https://<url>/report/v1");
xhr.setRequestHeader("Authorization", "Bearer <jwt token>");

xhr.send(data);

Вот фрагмент о звонке, который идет от реакции.

{
HEADERS : {

    General :{

        Request URL: <url>/report/v1
        Request Method: GET
        Status Code: 500 Internal Server Error
        Remote Address: <IP>:443
        Referrer Policy: no-referrer-when-downgrade 
    }, 

    Response Headers : {

        Access-Control-Allow-Headers: x-requested-with, Accept, Content-Type, Authorization
        Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE,PUT
        Access-Control-Allow-Origin: http://localhost:3000
        Access-Control-Max-Age: 3600
        Cache-Control: no-cache, no-store, max-age=0, must-revalidate
        Connection: keep-alive
        Content-Type: application/json;charset=UTF-8
        Date: Tue, 21 May 2019 05:27:22 GMT
        Expires: 0
        Pragma: no-cache
        Server: nginx/1.14.0 (Ubuntu)
        Transfer-Encoding: chunked
        X-Content-Type-Options: nosniff
        X-XSS-Protection: 1; mode=block
    }

    Request Headers: { 

        Provisional headers are shown
        Authorization: Bearer <jwt_token>
        Origin: http://localhost:3000
        Referer: http://localhost:3000/welcome
        User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36
    }
}, 

PREVIEW : {

    {timestamp: "2019-05-21T05:27:22.186+0000", status: 500, error: "Internal Server Error",…} 
    error: "Internal Server Error"
    message: "pre:OAuth2TokenRelayFilter"
    status: 500
    timestamp: "2019-05-21T05:27:22.186+0000"
},

RESPONSE {

    {"timestamp":"2019-05-21T05:27:22.186+0000","status":500,"error":"Internal Server Error","message":"pre:OAuth2TokenRelayFilter"}
}

}

Вот как я звоню из своего приложения React:

export default class ReportService {
  static call = {
    getReport: 'getReport'
  };
  static callAxios(options) {
    return axios(options)
      .then(res => res.data)
      .catch(err => Promise.reject(err));
  }
  static get(callTo, item) {
    let url = null;
    switch (callTo) {
      case ReportService.call.getReport:
        url = new URL("report/v1");
        break;
    }
url = ReportService.initParams(url, item);
return ReportService.callAxios({ method: 'get', url });
  }
  static initParams(url, item) {
    if (item && item.params) {
      let queryParams = Object.entries(item.params);
      if (queryParams.length > 0) {
        queryParams.forEach(([key, value]) => {
          if (api.params[key]) {
            url.searchParams.append(api.params[key], value);
          }
        });
      }
    }
    return url;
  }
}

Я не понимаю, что именно происходит. Любая помощь приветствуется.

...