Приложение микросервиса JHIpster без реестра создает конфигурацию для реестра UAA
Почему Yeoman Jhipster generator
генерировать код для JHipster UAA
регистрация услуги с JHipster Registry
даже когда мы указываем, что мы не будем использовать JHipster Registry
в течение Microservice
генерация приложений.
Ниже приведены параметры, выбранные мной при создании приложения Micorservice.
? (1/16) Which *type* of application would you like to create? Microservice application
? (2/16) What is the base name of your application? service
? (3/16) As you are running in a microservice architecture, on which port would like your server to run? It should be unique to avoid port conflicts. 8081
? (4/16) What is your default Java package name? com.test
################ Jhipster registry not to be used ##########################
? (5/16) Do you want to use the JHipster Registry to configure, monitor and scale your microservices and gateways? No
################ Use Jhipster UAA #######################################
? (6/16) Which *type* of authentication would you like to use? [BETA] Authentication with JHipster UAA server (the server must be generated separately)
? (7/16) What is the folder path of your UAA application? ../uaa
? (8/16) Which *type* of database would you like to use? SQL (H2, MySQL, MariaDB, PostgreSQL, Oracle)
? (9/16) Which *production* database would you like to use? PostgreSQL
? (10/16) Which *development* database would you like to use? H2 with in-memory persistence
? (11/16) Do you want to use Hibernate 2nd level cache? No
? (12/16) Would you like to use Maven or Gradle for building the backend? Maven
? (13/16) Which other technologies would you like to use?
? (14/16) Would you like to enable internationalization support? No
? (15/16) Besides JUnit and Karma, which testing frameworks would you like to use?
? (16/16) Would you like to install other generators from the JHipster Marketplace? No
После выбора этих параметров при создании приложения оно имеет следующую конфигурацию для UAA
внутри application-dev.yml
jhipster:
http:
version: V_1_1 # To use HTTP/2 you will need SSL support (see above the "server.ssl" configuration)
# CORS is only enabled by default with the "dev" profile, so BrowserSync can access the API
cors:
allowed-origins: "*"
allowed-methods: GET, PUT, POST, DELETE, OPTIONS
allowed-headers: "*"
exposed-headers:
allow-credentials: true
max-age: 1800
security:
client-authorization:
access-token-uri: http://uaa/oauth/token
token-service-id: uaa ############ Why does it need service ID if it's not dependenty on Jhipster Registry
client-id: internal
client-secret: internal
Ниже приведены две строки, которые предназначены для UAA
access-token-uri: http://uaa/oauth/token
token-service-id: uaa
Как видно, конфигурация микросервиса создается для поиска службы с именем uaa
, Если это приложение не зависит от реестра Jhipster или любого другого реестра в этом отношении, почему эта конфигурация ищет зарегистрированное имя службы?
Я ожидаю, что мне нужно только указать URL-адрес UAA и учетные данные, и это должно быть в отсутствие реестра.
Любая помощь приветствуется.
Версия Jhipster
{
"devDependencies": {
"generator-jhipster": "4.6.1"
}
}
Выход из yo jhipster:info
##### **JHipster Version(s)**
```
C:\workspace\test3\service
`-- generator-jhipster@4.6.1
```
##### **JHipster configuration, a `.yo-rc.json` file generated in the root folder**
<details>
<summary>.yo-rc.json file</summary>
<pre>
{
"generator-jhipster": {
"promptValues": {
"packageName": "com.test"
},
"jhipsterVersion": "4.6.1",
"baseName": "service",
"packageName": "com.test",
"packageFolder": "com/test",
"serverPort": "8081",
"authenticationType": "uaa",
"uaaBaseName": "uaa",
"hibernateCache": "no",
"clusteredHttpSession": false,
"websocket": false,
"databaseType": "sql",
"devDatabaseType": "h2Memory",
"prodDatabaseType": "postgresql",
"searchEngine": false,
"messageBroker": false,
"serviceDiscoveryType": false,
"buildTool": "maven",
"enableSocialSignIn": false,
"jwtSecretKey": "replaced-by-jhipster-info",
"enableTranslation": false,
"applicationType": "microservice",
"testFrameworks": [],
"jhiPrefix": "jhi",
"skipClient": true,
"skipUserManagement": true,
"clientPackageManager": "npm"
}
}
</pre>
</details>
##### **JDL for the Entity configuration(s) `entityName.json` files generated in the `.jhipster` directory**
<details>
<summary>JDL entity definitions</summary>
<pre>
</pre>
</details>
##### **Environment and Tools**
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
git version 2.10.0.windows.1
node: v6.11.1
npm: 3.9.6
bower: 1.7.7
gulp:
[07:50:35] CLI version 3.9.1
yeoman: 2.0.0
1 ответ
Извините за столь поздний ответ. Единственный реальный ненужный фрагмент сгенерированного кода - это "token-service-id", так как это относится к обнаружению сервисов внутри вашего стека приложений (скажем, Netflix Eureka, Consul и т. Д.)
Если у вас нет службы обнаружения, вам все еще нужно ваше приложение для доступа к UAA. Так что достаточно просто сохранить access-token-uri
и не нужно заполнять token-service-id
флаг.
По сути, это должно работать, если ваше приложение может разрешить предоставленный URI. Но если нет, не стесняйтесь, чтобы открыть вопрос на GitHub.