Микронавт, распространяющий токен. Ошибка Unauthrized. - PullRequest
0 голосов
/ 30 сентября 2019

В рамках требований моего проекта я пытаюсь вызвать два серверных API из моей родительской службы. Все мои конечные точки защищены, поэтому токен должен проходить через каждый запрос. Чтобы передать токен на конечные точки, вызываемые из моего родительского контроллера, я использовал концепцию распространения токена микроавтоном. Но я все еще вижу ошибку «unauthrozed» с дочерним запросом. Примечание. Я получаю токен с помощью метода родительского контроллера (зарегистрирован и проверен). Ниже приведен мой код.

Родительский контроллер - ClientUserController

    package io.appter.portal.controllers;

    import io.appter.portal.models.ClientContact;
    import io.appter.portal.models.User;
    import io.appter.portal.repositories.IClientManagementClient;
    import io.appter.portal.repositories.IUserManagementClient;
    import io.micronaut.http.annotation.Controller;
    import io.micronaut.http.annotation.Header;
    import io.micronaut.http.annotation.Post;

    import io.micronaut.security.annotation.Secured;
    import io.micronaut.security.rules.SecurityRule;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;

    import java.util.List;

    @Controller("clientuser")
    public class ClientUserController {
        private static final Logger LOG = LoggerFactory.getLogger(ClientUserController.class);
        private IClientManagementClient clientManagementClient;
        private IUserManagementClient userManagementClient;

        public ClientUserController(IClientManagementClient clientManagementClient, IUserManagementClient userManagementClient) {
            this.clientManagementClient = clientManagementClient;
            this.userManagementClient = userManagementClient;
        }

        @Post("/")
        @Secured(SecurityRule.IS_AUTHENTICATED)
        public ClientContact createClientContactUser(ClientContact clientContact,
                                                     @Header("Authorization") String authorization
        ) {
            LOG.info("Authorization token received is: " + authorization);
            List<ClientContact> clientContacts = clientManagementClient.getClientContactByClientId(133);
            LOG.info("client contact 0 - Email Address received from API is: " + clientContacts.get(0).getEmailAddress());

            String testInfo = userManagementClient.test();
            LOG.info("Test Info received from API is: " + testInfo);

            return clientContact;
        }
    }

IUserManagementClient.java

    package io.appter.portal.repositories;

    import io.appter.portal.models.User;
    import io.micronaut.http.annotation.Get;
    import io.micronaut.http.annotation.Post;
    import io.micronaut.http.client.annotation.Client;

    @Client(id = "usermanagement")
    public interface IUserManagementClient {
        @Post("/user")
        public User createUser(User user);

        @Get("/user/test")
        public String test();
    }

IClientManagementClient.java

    package io.appter.portal.repositories;

    import io.appter.portal.models.ClientContact;
    import io.micronaut.http.annotation.Get;
    import io.micronaut.http.annotation.Post;
    import io.micronaut.http.client.annotation.Client;

    import java.util.List;

    @Client(id = "clientmanagement")
    public interface IClientManagementClient {
        @Post("/clientcontact")
        public ClientContact createClientContact(ClientContact clientContact);

        @Get("/getClientContactByClientId/{id}")
        public List<ClientContact> getClientContactByClientId(Integer id);
    }

application.yml

    micronaut:
      application:
        name: appter-portal-api
      server:
        port: 8080
        cors:
          enabled: true
      security:
        enabled: true
        token:
          jwt:
            enabled: true
            signatures:
              secret:
                generator:
                  secret: xxxxxxxxxx
          writer:
            header:
              enabled: true
            propagation:
              enabled: true
              service-id-regex: "clientmanagement"
      http:
        services:
          usermanagement:
            urls:
              - "http://appterusersvc.com"
          clientmanagement:
            urls:
              - "http://apptorclientmgmtsvc.com"

Может ли кто-нибудь помочь мне в этом, пожалуйста?

Спасибо,Будданна Т

...