Признать клиента от Jhipster UAA до приложения для подключения к микросервису

delkant спросил: 26 декабря 2017 в 07:41 в: java

У меня есть контактное лицо в приложении моего шлюза (gw-app), и я хотел бы создавать запись каждый раз, когда новый пользователь регистрируется в приложении UAA. Я пытаюсь использовать межсервисную связь, описанную в документации Jhipster для микросервисов.

  • Проблема с Fist у меня здесь: у меня нет этого интерфейса @AuthorizedFeignClient в UAA
  • Во-вторых, я никогда не получал успех от uaa до gw-app, используя @FeignClient.

Помимо проблем с коммуникацией / конфигурацией с клиентом feign у меня есть некоторые проблемы относительно того, как это будет работать, когда нет сессии, установленной (регистрация нового пользователя), а затем у меня есть другой вариант использования, когда у меня есть существующий сеанс с экрана управления пользователями (когда администратор создает новый пользователь)

Конфигурация UAA

{
  "generator-jhipster": {
    "promptValues": {
      "packageName": "com.uaa.auth",
      "nativeLanguage": "es"
    },
    "jhipsterVersion": "4.13.3",
    "baseName": "UAA",
    "packageName": "com.agriket.auth",
    "packageFolder": "com/uaa/auth",
    "serverPort": "9999",
    "authenticationType": "uaa",
    "cacheProvider": "hazelcast",
    "enableHibernateCache": true,
    "websocket": false,
    "databaseType": "sql",
    "devDatabaseType": "mysql",
    "prodDatabaseType": "mysql",
    "searchEngine": "elasticsearch",
    "messageBroker": false,
    "serviceDiscoveryType": "eureka",
    "buildTool": "gradle",
    "enableSocialSignIn": false,
    "enableSwaggerCodegen": false,
    "jwtSecretKey": "8e4167f67e9f8d85cc35b70181a828c691374e58",
    "enableTranslation": true,
    "applicationType": "uaa",
    "testFrameworks": [],
    "jhiPrefix": "jhi",
    "nativeLanguage": "es",
    "languages": [
      "es",
      "en"
    ],
    "clientPackageManager": "yarn",
    "skipClient": true
  }
}

Конфигурация приложения шлюза

{
  "generator-jhipster": {
    "promptValues": {
      "packageName": "com.app.gw",
      "nativeLanguage": "es"
    },
    "jhipsterVersion": "4.13.3",
    "baseName": "gwApp",
    "packageName": "com.agriket.chat",
    "packageFolder": "com/app/gw",
    "serverPort": "9085",
    "authenticationType": "uaa",
    "uaaBaseName": "UAA",
    "cacheProvider": "hazelcast",
    "enableHibernateCache": true,
    "websocket": "spring-websocket",
    "databaseType": "sql",
    "devDatabaseType": "mysql",
    "prodDatabaseType": "mysql",
    "searchEngine": "elasticsearch",
    "messageBroker": false,
    "serviceDiscoveryType": "eureka",
    "buildTool": "gradle",
    "enableSocialSignIn": false,
    "enableSwaggerCodegen": false,
    "clientFramework": "angularX",
    "useSass": false,
    "clientPackageManager": "yarn",
    "applicationType": "gateway",
    "testFrameworks": [],
    "jhiPrefix": "jhi",
    "enableTranslation": true,
    "nativeLanguage": "es",
    "languages": [
      "es",
      "en"
    ]
  }
}

Код клиента

package com.uaa.auth.service.restClient;import com.uaa.auth.service.restClient.Contact;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.*;@FeignClient(name = "gwApp")
@RequestMapping("/api")
public interface ContactClient {    @PostMapping("/contacts")
    Contact createContact(@RequestBody Contact contact);    @GetMapping("/contacts/{id}")
    Contact getContact(@PathVariable(name = "id") Long id);}

Контакт
public class Contact {    private Long id;    private String login;    private String firstName;    private String lastName;    public Contact(User user) {
        this.id = user.getId();
        this.firstName = user.getFirstName();
        this.lastName = user.getLastName();
    }    public Long getId() {
        return id;
    }    public String getLogin() {
        return login;
    }    public String getFirstName() {
        return firstName;
    }    public String getLastName() {
        return lastName;
    }
}

0 ответов