generator-jhipster 8.3.0 → 8.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generators/angular/generator.js +34 -0
- package/dist/generators/angular/resources/package.json +13 -13
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +3 -6
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.ts.ejs +3 -6
- package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.ts.ejs +3 -6
- package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +11 -11
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +0 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/core/auth/user-route-access.service.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +0 -3
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/route/_entityFile_-routing-resolve.service.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-form.service.ts.ejs +10 -6
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.ts.ejs +11 -17
- package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.html.ejs +6 -6
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/active-menu.directive.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.ts.ejs +3 -4
- package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.spec.ts.ejs +10 -8
- package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.ts.ejs +3 -8
- package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +6 -2
- package/dist/generators/angular/templates/webpack/webpack.custom.js.ejs +1 -1
- package/dist/generators/app/generator.js +6 -33
- package/dist/generators/app/support/config.js +1 -3
- package/dist/generators/base/generator.js +15 -16
- package/dist/generators/base/priorities.js +12 -1
- package/dist/generators/base-application/generator.js +14 -2
- package/dist/generators/base-application/priorities.js +1 -0
- package/dist/generators/base-application/support/prepare-entity.js +7 -8
- package/dist/generators/base-application/support/prepare-field.js +1 -1
- package/dist/generators/base-application/support/prepare-relationship.js +3 -2
- package/dist/generators/base-core/generator.js +45 -11
- package/dist/generators/base-entity-changes/generator.js +24 -0
- package/dist/generators/bootstrap-application-base/generator.js +46 -1
- package/dist/generators/bootstrap-application-server/generator.js +5 -7
- package/dist/generators/ci-cd/generator.js +0 -5
- package/dist/generators/client/command.js +2 -2
- package/dist/generators/client/generator.js +0 -22
- package/dist/generators/client/generators/common/command.js +5 -0
- package/dist/generators/client/generators/common/generator.js +79 -0
- package/dist/generators/{app/prompts.js → client/generators/common/index.js} +2 -15
- package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/headers.ts.ejs +57 -0
- package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/problem-details.ts.ejs +51 -0
- package/dist/generators/client/resources/package.json +6 -6
- package/dist/generators/client/templates/src/main/webapp/index.html.ejs +1 -1
- package/dist/generators/common/command.js +13 -0
- package/dist/generators/common/generator.js +17 -3
- package/dist/generators/common/resources/package.json +2 -2
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/login-page.cy.ts.ejs +4 -4
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/password-page.cy.ts.ejs +2 -2
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/register-page.cy.ts.ejs +1 -1
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/reset-password-page.cy.ts.ejs +1 -1
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/entity/_entity_.cy.ts.ejs +10 -10
- package/dist/generators/docker/templates/docker/mysql.yml.ejs +1 -1
- package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +14 -3
- package/dist/generators/docker-compose/generator.js +1 -5
- package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +14 -3
- package/dist/generators/entity/generator.js +2 -10
- package/dist/generators/entity/prompts.js +6 -11
- package/dist/generators/export-jdl/generator.js +0 -5
- package/dist/generators/gatling/README.md +15 -0
- package/dist/generators/gatling/templates/buildSrc/src/main/groovy/jhipster.gatling-conventions.gradle.ejs +1 -1
- package/dist/generators/gatling/templates/src/test/java/gatling/simulations/_entityClass_GatlingTest.java.ejs +2 -10
- package/dist/generators/generate-blueprint/command.js +16 -0
- package/dist/generators/generate-blueprint/files.js +8 -0
- package/dist/generators/generate-blueprint/generator.js +17 -10
- package/dist/generators/generate-blueprint/resources/package.json +1 -1
- package/dist/generators/generate-blueprint/templates/.blueprint/cli/commands.mjs.ejs +6 -0
- package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/command.mjs.ejs +20 -0
- package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/generator.mjs.ejs +9 -13
- package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/build-matrix.mjs.ejs +22 -0
- package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/generator.mjs.ejs +24 -0
- package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/index.mjs.ejs +1 -0
- package/dist/generators/generate-blueprint/templates/.eslintrc.json.ejs +2 -2
- package/dist/generators/generate-blueprint/templates/README.md.ejs +16 -8
- package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +1 -0
- package/dist/generators/generator-constants.js +1 -1
- package/dist/generators/heroku/generator.js +0 -5
- package/dist/generators/info/generator.js +1 -3
- package/dist/generators/init/generator.js +2 -2
- package/dist/generators/init/resources/.node-version +1 -1
- package/dist/generators/java/generators/build-tool/command.js +4 -1
- package/dist/generators/java/generators/domain/generator.js +16 -0
- package/dist/generators/java/generators/domain/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.ejs +1 -5
- package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Asserts.java.ejs +3 -3
- package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Test.java.ejs +3 -3
- package/dist/generators/java/support/add-java-annotation.js +28 -7
- package/dist/generators/java/support/generated-annotation-transform.js +1 -1
- package/dist/generators/java/support/index.js +1 -1
- package/dist/generators/jdl/generator.js +1 -5
- package/dist/generators/kubernetes/files.js +1 -1
- package/dist/generators/kubernetes/generator.js +0 -5
- package/dist/generators/kubernetes/templates/db/mysql.yml.ejs +0 -1
- package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +14 -3
- package/dist/generators/kubernetes-helm/generator.js +0 -5
- package/dist/generators/kubernetes-knative/generator.js +0 -5
- package/dist/generators/languages/files.js +2 -2
- package/dist/generators/languages/generator.js +4 -8
- package/dist/generators/languages/templates/src/main/webapp/i18n/al/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/ar-ly/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/az-Latn-az/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/bg/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/bn/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/by/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/ca/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/cs/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/da/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/de/global.json.ejs +2 -2
- package/dist/generators/languages/templates/src/main/webapp/i18n/de/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/el/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/en/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/es/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/et/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/fa/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/fi/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/fr/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/gl/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/hi/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/hr/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/hu/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/hy/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/id/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/it/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/ja/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/ko/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/kr-Latn-kr/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/mr/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/my/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/nl/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/pa/{home.json → home.json.ejs} +2 -2
- package/dist/generators/languages/templates/src/main/webapp/i18n/pl/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/pt-br/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/pt-pt/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/ro/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/ru/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/si/{home.json → home.json.ejs} +6 -6
- package/dist/generators/languages/templates/src/main/webapp/i18n/sk/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/sr/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/sv/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/ta/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/te/{home.json → home.json.ejs} +1 -1
- package/dist/generators/languages/templates/src/main/webapp/i18n/th/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/tr/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/ua/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/vi/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/zh-cn/home.json.ejs +19 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/zh-tw/home.json.ejs +19 -0
- package/dist/generators/liquibase/generator.js +59 -12
- package/dist/generators/liquibase/support/prepare-field.js +16 -1
- package/dist/generators/liquibase/support/relationship.js +1 -0
- package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/added_entity.xml.ejs +1 -1
- package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity.xml.ejs +3 -3
- package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +26 -1
- package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/fake-data/table_entity.csv.ejs +3 -3
- package/dist/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +2 -2
- package/dist/generators/maven/templates/mvnw +185 -243
- package/dist/generators/maven/templates/mvnw.cmd +121 -180
- package/dist/generators/react/generator.js +10 -0
- package/dist/generators/react/resources/package.json +30 -30
- package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.spec.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.ts.ejs +80 -87
- package/dist/generators/react/templates/src/main/webapp/app/config/store.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.tsx.ejs +3 -3
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.reducer.ts.ejs +12 -7
- package/dist/generators/react/templates/src/main/webapp/app/modules/home/home.tsx.ejs +7 -7
- package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +2 -3
- package/dist/generators/react/templates/webpack/webpack.microfrontend.js.jhi.react.ejs +0 -8
- package/dist/generators/server/command.js +0 -11
- package/dist/generators/server/generator.js +19 -115
- package/dist/generators/server/jdl/application-definition.js +3 -1
- package/dist/generators/server/resources/Dockerfile +15 -15
- package/dist/generators/server/resources/gradle/libs.versions.toml +12 -10
- package/dist/generators/server/resources/pom.xml +10 -10
- package/dist/generators/server/support/config.js +4 -8
- package/dist/generators/server/support/prepare-entity.js +5 -6
- package/dist/generators/server/support/prepare-field.js +7 -2
- package/dist/generators/server/support/prepare-relationship.js +7 -2
- package/dist/generators/server/support/relationship.js +5 -2
- package/dist/generators/server/templates/build.gradle.ejs +5 -3
- package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +3 -2
- package/dist/generators/server/templates/gradle/profile_prod.gradle.ejs +3 -2
- package/dist/generators/server/templates/gradle.properties.ejs +1 -1
- package/dist/generators/server/templates/pom.xml.ejs +7 -9
- package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/service/dto/_dtoClass_.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/config/Constants.java.ejs +0 -2
- package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +57 -24
- package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +1 -15
- package/dist/generators/server/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs +0 -20
- package/dist/generators/server/templates/src/main/java/_package_/security/SecurityUtils.java.ejs +65 -5
- package/dist/generators/server/templates/src/main/java/_package_/service/dto/UserDTO.java.ejs +23 -0
- package/dist/generators/server/templates/src/main/java/_package_/service/mapper/UserMapper.java.ejs +8 -4
- package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource_skipUserManagement.java.ejs +43 -9
- package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +60 -22
- package/dist/generators/server/templates/src/main/resources/config/bootstrap.yml.ejs +1 -1
- package/dist/generators/server/templates/src/main/resources/static/index_microservices.html.ejs +8 -8
- package/dist/generators/server/templates/src/main/resources/swagger/api.yml.ejs +1 -1
- package/dist/generators/server/templates/src/test/java/_package_/security/DomainUserDetailsServiceIT.java.ejs +31 -13
- package/dist/generators/server/templates/src/test/java/_package_/service/mapper/UserMapperTest.java.ejs +84 -17
- package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs +62 -6
- package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT_oauth2.java.ejs +22 -0
- package/dist/generators/server/templates/src/test/resources/config/application.yml.ejs +20 -10
- package/dist/generators/spring-boot/cleanup.js +3 -0
- package/dist/generators/spring-boot/command.js +127 -7
- package/dist/generators/spring-boot/files.js +0 -10
- package/dist/generators/spring-boot/generator.js +54 -4
- package/dist/generators/{server → spring-boot}/prompts.js +8 -72
- package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +380 -588
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs +47 -11
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/PublicUserResourceIT.java.ejs +60 -24
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs +195 -318
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +58 -51
- package/dist/generators/spring-cache/internal/dependencies.js +2 -2
- package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +2 -2
- package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheConfiguration.java.ejs +4 -0
- package/dist/generators/spring-cloud/generators/gateway/command.js +5 -1
- package/dist/generators/spring-cloud/generators/gateway/generator.js +13 -0
- package/dist/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.js +6 -0
- package/dist/generators/spring-data-cassandra/generator.js +2 -2
- package/dist/generators/spring-data-relational/support/h2-reserved-keywords.js +22 -0
- package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +3 -1
- package/dist/generators/upgrade/generator.js +0 -4
- package/dist/generators/vue/resources/package.json +22 -22
- package/dist/generators/vue/templates/src/main/webapp/app/account/change-password/change-password.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/login-form/login-form.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/finish/reset-password-finish.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/init/reset-password-init.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/settings/settings.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.spec.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/admin/user-management/user-management-edit.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.vue.ejs +7 -7
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-details.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.vue.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/shared/alert/alert.service.spec.ts.ejs +8 -8
- package/dist/generators/vue/templates/src/main/webapp/app/shared/data/data-utils.service.spec.ts.ejs +1 -1
- package/dist/generators/vue/templates/tsconfig.app.json.ejs +1 -1
- package/dist/generators/vue/templates/vite.config.mts.ejs +5 -4
- package/dist/generators/vue/templates/vitest.config.mts.ejs +1 -1
- package/dist/generators/vue/templates/webpack/webpack.microfrontend.js.jhi.vue.ejs +0 -9
- package/dist/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.js +1 -1
- package/dist/jdl/converters/jdl-to-json/jdl-to-json-field-converter.js +4 -4
- package/dist/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.js +9 -9
- package/dist/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.js +2 -2
- package/dist/jdl/converters/json-to-jdl-application-converter.js +1 -1
- package/dist/jdl/converters/json-to-jdl-converter.js +6 -5
- package/dist/jdl/converters/json-to-jdl-entity-converter.js +14 -14
- package/dist/jdl/converters/json-to-jdl-option-converter.js +1 -2
- package/dist/jdl/converters/parsed-jdl-to-jdl-object/application-converter.js +1 -1
- package/dist/jdl/converters/parsed-jdl-to-jdl-object/option-converter.js +2 -2
- package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +7 -6
- package/dist/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.js +1 -1
- package/dist/jdl/exporters/applications/jhipster-application-formatter.js +16 -23
- package/dist/jdl/exporters/config.js +1 -0
- package/dist/jdl/exporters/jhipster-deployment-exporter.js +5 -5
- package/dist/jdl/exporters/jhipster-entity-exporter.js +1 -1
- package/dist/jdl/jdl-importer.js +22 -20
- package/dist/jdl/jhipster/binary-options.js +12 -8
- package/dist/jdl/jhipster/json-entity.js +1 -1
- package/dist/jdl/models/abstract-jdl-option.js +2 -2
- package/dist/jdl/models/jdl-application-configuration-factory.js +2 -0
- package/dist/jdl/models/jdl-binary-option.js +2 -2
- package/dist/jdl/models/jdl-deployment.js +11 -0
- package/dist/jdl/models/jdl-entity.js +1 -1
- package/dist/jdl/models/jdl-enum.js +1 -1
- package/dist/jdl/models/jdl-enums.js +0 -18
- package/dist/jdl/models/jdl-field.js +2 -2
- package/dist/jdl/models/jdl-object-wrapper.js +1 -0
- package/dist/jdl/models/jdl-object.js +23 -45
- package/dist/jdl/models/jdl-options.js +0 -18
- package/dist/jdl/models/jdl-relationships.js +8 -16
- package/dist/jdl/models/jdl-unary-option.js +1 -1
- package/dist/jdl/models/list-jdl-application-configuration-option.js +5 -2
- package/dist/jdl/parsing/jdl-ast-builder-visitor.js +12 -0
- package/dist/jdl/parsing/jdl-parser.js +14 -0
- package/dist/jdl/parsing/lexer/lexer.js +17 -11
- package/dist/jdl/parsing/validator.js +16 -2
- package/dist/jdl/readers/json-reader.js +1 -1
- package/dist/jdl/utils/array-utils.js +6 -0
- package/dist/jdl/utils/set-utils.js +3 -2
- package/dist/jdl/validators/jdl-without-application-validator.js +2 -2
- package/dist/testing/helpers.js +4 -0
- package/dist/types/generators/base/api.d.ts +6 -2
- package/dist/types/generators/base/generator.d.ts +10 -4
- package/dist/types/generators/base/priorities.d.ts +4 -0
- package/dist/types/generators/base/shared-data.d.ts +1 -1
- package/dist/types/generators/base-application/priorities.d.ts +2 -0
- package/dist/types/generators/base-application/support/entity.d.ts +2 -2
- package/dist/types/generators/base-application/support/prepare-entity.d.ts +3 -3
- package/dist/types/generators/base-application/support/relationship.d.ts +5 -5
- package/dist/types/generators/base-application/types.d.ts +15 -0
- package/dist/types/generators/base-core/generator.d.ts +16 -1
- package/dist/types/generators/base-entity-changes/types.d.ts +2 -0
- package/dist/types/generators/generator-constants.d.ts +1 -1
- package/dist/types/generators/java/support/add-java-annotation.d.ts +10 -20
- package/dist/types/generators/java/support/doc.d.ts +1 -1
- package/dist/types/generators/java/support/index.d.ts +1 -1
- package/dist/types/generators/server/support/relationship.d.ts +2 -2
- package/dist/types/generators/server/types.d.ts +5 -0
- package/dist/types/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.d.ts +2 -0
- package/dist/types/generators/spring-cloud/generators/gateway/types.d.ts +4 -0
- package/dist/types/generators/spring-data-relational/support/h2-reserved-keywords.d.ts +20 -0
- package/dist/types/jdl/converters/jdl-to-json/jdl-to-json-field-converter.d.ts +2 -2
- package/dist/types/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.d.ts +2 -1
- package/dist/types/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.d.ts +3 -1
- package/dist/types/jdl/converters/json-to-jdl-application-converter.d.ts +9 -2
- package/dist/types/jdl/converters/json-to-jdl-converter.d.ts +3 -3
- package/dist/types/jdl/converters/json-to-jdl-entity-converter.d.ts +2 -4
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/application-converter.d.ts +3 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/deployment-converter.d.ts +2 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/entity-converter.d.ts +3 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/enum-converter.d.ts +2 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/field-converter.d.ts +2 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/option-converter.d.ts +3 -3
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.d.ts +2 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/relationship-converter.d.ts +2 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/types.d.ts +110 -0
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.d.ts +2 -1
- package/dist/types/jdl/converters/types.d.ts +102 -14
- package/dist/types/jdl/exporters/applications/jhipster-application-formatter.d.ts +4 -4
- package/dist/types/jdl/exporters/config.d.ts +2 -1
- package/dist/types/jdl/exporters/export-utils.d.ts +2 -1
- package/dist/types/jdl/exporters/jdl-exporter.d.ts +2 -1
- package/dist/types/jdl/exporters/jhipster-deployment-exporter.d.ts +3 -1
- package/dist/types/jdl/exporters/jhipster-entity-exporter.d.ts +3 -1
- package/dist/types/jdl/exporters/types.d.ts +61 -0
- package/dist/types/jdl/jhipster/binary-options.d.ts +8 -26
- package/dist/types/jdl/jhipster/field-types.d.ts +2 -2
- package/dist/types/jdl/jhipster/json-entity.d.ts +2 -2
- package/dist/types/jdl/models/abstract-jdl-option.d.ts +14 -9
- package/dist/types/jdl/models/boolean-jdl-application-configuration-option.d.ts +1 -1
- package/dist/types/jdl/models/integer-jdl-application-configuration-option.d.ts +1 -1
- package/dist/types/jdl/models/jdl-application-configuration-factory.d.ts +1 -1
- package/dist/types/jdl/models/jdl-application-configuration-option.d.ts +4 -4
- package/dist/types/jdl/models/jdl-application-configuration.d.ts +4 -4
- package/dist/types/jdl/models/jdl-application-definition.d.ts +4 -4
- package/dist/types/jdl/models/jdl-application-entities.d.ts +4 -4
- package/dist/types/jdl/models/jdl-application.d.ts +16 -13
- package/dist/types/jdl/models/jdl-binary-option.d.ts +5 -3
- package/dist/types/jdl/models/jdl-deployment.d.ts +13 -1
- package/dist/types/jdl/models/jdl-entity.d.ts +5 -5
- package/dist/types/jdl/models/jdl-enum-value.d.ts +4 -4
- package/dist/types/jdl/models/jdl-enum.d.ts +9 -5
- package/dist/types/jdl/models/jdl-enums.d.ts +6 -5
- package/dist/types/jdl/models/jdl-field.d.ts +10 -8
- package/dist/types/jdl/models/jdl-object-wrapper.d.ts +25 -0
- package/dist/types/jdl/models/jdl-object.d.ts +23 -19
- package/dist/types/jdl/models/jdl-options.d.ts +7 -24
- package/dist/types/jdl/models/jdl-relationship.d.ts +16 -10
- package/dist/types/jdl/models/jdl-relationships.d.ts +5 -5
- package/dist/types/jdl/models/jdl-validation.d.ts +3 -3
- package/dist/types/jdl/models/list-jdl-application-configuration-option.d.ts +4 -3
- package/dist/types/jdl/models/string-jdl-application-configuration-option.d.ts +2 -2
- package/dist/types/jdl/parsing/jdl-ast-builder-visitor.d.ts +1 -0
- package/dist/types/jdl/parsing/jdl-parser.d.ts +1 -0
- package/dist/types/jdl/parsing/jdl-parsing-types.d.ts +23 -0
- package/dist/types/jdl/parsing/lexer/lexer.d.ts +6 -2
- package/dist/types/jdl/parsing/validator.d.ts +1 -1
- package/dist/types/jdl/utils/array-utils.d.ts +1 -0
- package/dist/types/jdl/utils/set-utils.d.ts +1 -19
- package/dist/types/jdl/validators/deployment-validator.d.ts +2 -1
- package/dist/types/testing/helpers.d.ts +13 -3
- package/package.json +30 -30
- package/dist/generators/languages/templates/src/main/webapp/i18n/al/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/ar-ly/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/az-Latn-az/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/bg/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/bn/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/by/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/ca/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/cs/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/da/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/de/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/el/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/en/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/es/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/et/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/fa/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/fi/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/fr/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/gl/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/hi/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/hr/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/hu/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/hy/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/id/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/it/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/ja/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/ko/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/kr-Latn-kr/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/mr/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/my/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/nl/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/pl/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/pt-br/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/pt-pt/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/ro/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/ru/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/sk/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/sr/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/sv/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/ta/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/th/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/tr/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/ua/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/global.json +0 -148
- package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/vi/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/zh-cn/home.json +0 -19
- package/dist/generators/languages/templates/src/main/webapp/i18n/zh-tw/home.json +0 -19
- package/dist/generators/server/templates/src/main/java/_package_/config/LocaleConfiguration_imperative.java.ejs +0 -43
- package/dist/generators/server/templates/src/main/java/_package_/config/LocaleConfiguration_reactive.java.ejs +0 -184
- package/dist/generators/statistics.js +0 -223
- /package/dist/jdl/converters/{types.js → parsed-jdl-to-jdl-object/types.js} +0 -0
|
@@ -19,14 +19,24 @@
|
|
|
19
19
|
package <%= packageName %>.service.mapper;
|
|
20
20
|
|
|
21
21
|
import <%= user.entityAbsoluteClass %>;
|
|
22
|
+
import <%= packageName %>.security.AuthoritiesConstants;
|
|
22
23
|
import <%= packageName %>.service.dto.<%= user.adminUserDto %>;
|
|
23
24
|
import <%= packageName %>.service.dto.<%= user.dtoClass %>;
|
|
25
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
|
|
26
|
+
import <%= packageName %>.domain.Authority;
|
|
27
|
+
<%_ } else { _%>
|
|
28
|
+
import java.util.stream.Stream;
|
|
29
|
+
import java.util.stream.Collectors;
|
|
30
|
+
<%_ } _%>
|
|
24
31
|
<%_ if (!authenticationTypeOauth2) { _%>
|
|
25
32
|
import org.apache.commons.lang3.RandomStringUtils;
|
|
26
33
|
<%_ } _%>
|
|
27
34
|
import org.junit.jupiter.api.BeforeEach;
|
|
28
35
|
import org.junit.jupiter.api.Test;
|
|
29
36
|
|
|
37
|
+
<%_ if (generateSpringAuditor) { _%>
|
|
38
|
+
import java.time.Instant;
|
|
39
|
+
<%_ } _%>
|
|
30
40
|
import java.util.ArrayList;
|
|
31
41
|
import java.util.HashSet;
|
|
32
42
|
import java.util.List;
|
|
@@ -67,12 +77,74 @@ class UserMapperTest {
|
|
|
67
77
|
user.setLastName("doe");
|
|
68
78
|
<%_ if (!databaseTypeCassandra) { _%>
|
|
69
79
|
user.setImageUrl("image_url");
|
|
80
|
+
<%_ } _%>
|
|
81
|
+
<%_ if (generateSpringAuditor) { _%>
|
|
82
|
+
user.setCreatedBy(DEFAULT_LOGIN);
|
|
83
|
+
user.setCreatedDate(Instant.now());
|
|
84
|
+
user.setLastModifiedBy(DEFAULT_LOGIN);
|
|
85
|
+
user.setLastModifiedDate(Instant.now());
|
|
70
86
|
<%_ } _%>
|
|
71
87
|
user.setLangKey("en");
|
|
72
88
|
|
|
89
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
|
|
90
|
+
Set<Authority> authorities = new HashSet<>();
|
|
91
|
+
Authority authority = new Authority();
|
|
92
|
+
authority.setName(AuthoritiesConstants.USER);
|
|
93
|
+
authorities.add(authority);
|
|
94
|
+
user.setAuthorities(authorities);
|
|
95
|
+
<%_ } else { _%>
|
|
96
|
+
user.setAuthorities(Stream.of(AuthoritiesConstants.USER).collect(Collectors.toSet()));
|
|
97
|
+
<%_ } _%>
|
|
98
|
+
|
|
73
99
|
userDto = new <%= user.adminUserDto %>(user);
|
|
74
100
|
}
|
|
75
101
|
|
|
102
|
+
@Test
|
|
103
|
+
void testUserToUserDTO() {
|
|
104
|
+
<%= user.adminUserDto %> convertedUserDto = userMapper.userToAdminUserDTO(user);
|
|
105
|
+
|
|
106
|
+
assertThat(convertedUserDto.getId()).isEqualTo(user.getId());
|
|
107
|
+
assertThat(convertedUserDto.getLogin()).isEqualTo(user.getLogin());
|
|
108
|
+
assertThat(convertedUserDto.getFirstName()).isEqualTo(user.getFirstName());
|
|
109
|
+
assertThat(convertedUserDto.getLastName()).isEqualTo(user.getLastName());
|
|
110
|
+
assertThat(convertedUserDto.getEmail()).isEqualTo(user.getEmail());
|
|
111
|
+
assertThat(convertedUserDto.isActivated()).isEqualTo(user.isActivated());
|
|
112
|
+
<%_ if (!databaseTypeCassandra) { _%>
|
|
113
|
+
assertThat(convertedUserDto.getImageUrl()).isEqualTo(user.getImageUrl());
|
|
114
|
+
<%_ } _%>
|
|
115
|
+
<%_ if (generateSpringAuditor) { _%>
|
|
116
|
+
assertThat(convertedUserDto.getCreatedBy()).isEqualTo(user.getCreatedBy());
|
|
117
|
+
assertThat(convertedUserDto.getCreatedDate()).isEqualTo(user.getCreatedDate());
|
|
118
|
+
assertThat(convertedUserDto.getLastModifiedBy()).isEqualTo(user.getLastModifiedBy());
|
|
119
|
+
assertThat(convertedUserDto.getLastModifiedDate()).isEqualTo(user.getLastModifiedDate());
|
|
120
|
+
<%_ } _%>
|
|
121
|
+
assertThat(convertedUserDto.getLangKey()).isEqualTo(user.getLangKey());
|
|
122
|
+
assertThat(convertedUserDto.getAuthorities()).containsExactly(AuthoritiesConstants.USER);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
@Test
|
|
126
|
+
void testUserDTOtoUser() {
|
|
127
|
+
<%= user.persistClass %> convertedUser = userMapper.userDTOToUser(userDto);
|
|
128
|
+
|
|
129
|
+
assertThat(convertedUser.getId()).isEqualTo(userDto.getId());
|
|
130
|
+
assertThat(convertedUser.getLogin()).isEqualTo(userDto.getLogin());
|
|
131
|
+
assertThat(convertedUser.getFirstName()).isEqualTo(userDto.getFirstName());
|
|
132
|
+
assertThat(convertedUser.getLastName()).isEqualTo(userDto.getLastName());
|
|
133
|
+
assertThat(convertedUser.getEmail()).isEqualTo(userDto.getEmail());
|
|
134
|
+
assertThat(convertedUser.isActivated()).isEqualTo(userDto.isActivated());
|
|
135
|
+
<%_ if (!databaseTypeCassandra) { _%>
|
|
136
|
+
assertThat(convertedUser.getImageUrl()).isEqualTo(userDto.getImageUrl());
|
|
137
|
+
<%_ } _%>
|
|
138
|
+
assertThat(convertedUser.getLangKey()).isEqualTo(userDto.getLangKey());
|
|
139
|
+
<%_ if (generateSpringAuditor) { _%>
|
|
140
|
+
assertThat(convertedUser.getCreatedBy()).isEqualTo(userDto.getCreatedBy());
|
|
141
|
+
assertThat(convertedUser.getCreatedDate()).isEqualTo(userDto.getCreatedDate());
|
|
142
|
+
assertThat(convertedUser.getLastModifiedBy()).isEqualTo(userDto.getLastModifiedBy());
|
|
143
|
+
assertThat(convertedUser.getLastModifiedDate()).isEqualTo(userDto.getLastModifiedDate());
|
|
144
|
+
<%_ } _%>
|
|
145
|
+
assertThat(convertedUser.getAuthorities())<% if (!databaseTypeCassandra && !databaseTypeCouchbase) { %>.extracting("name")<%_ } _%>.containsExactly(AuthoritiesConstants.USER);
|
|
146
|
+
}
|
|
147
|
+
|
|
76
148
|
@Test
|
|
77
149
|
void usersToUserDTOsShouldMapOnlyNonNullUsers() {
|
|
78
150
|
List<<%= user.persistClass %>> users = new ArrayList<>();
|
|
@@ -141,20 +213,15 @@ class UserMapperTest {
|
|
|
141
213
|
|
|
142
214
|
@Test
|
|
143
215
|
void userDTOToUserMapWithAuthoritiesStringShouldReturnUserWithAuthorities() {
|
|
144
|
-
|
|
145
|
-
authoritiesAsString.add("ADMIN");
|
|
146
|
-
userDto.setAuthorities(authoritiesAsString);
|
|
147
|
-
|
|
148
|
-
<%= user.persistClass %> user = userMapper.userDTOToUser(userDto);
|
|
216
|
+
<%= user.persistClass %> convertedUser = userMapper.userDTOToUser(userDto);
|
|
149
217
|
|
|
150
|
-
assertThat(
|
|
151
|
-
assertThat(
|
|
152
|
-
assertThat(
|
|
153
|
-
<%_ if (databaseTypeSql || databaseTypeMongodb) { _%>
|
|
154
|
-
assertThat(
|
|
155
|
-
<%_ } _%>
|
|
156
|
-
|
|
157
|
-
assertThat(user.getAuthorities().iterator().next()).isEqualTo("ADMIN");
|
|
218
|
+
assertThat(convertedUser).isNotNull();
|
|
219
|
+
assertThat(convertedUser.getAuthorities()).isNotNull();
|
|
220
|
+
assertThat(convertedUser.getAuthorities()).isNotEmpty();
|
|
221
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
|
|
222
|
+
assertThat(convertedUser.getAuthorities().iterator().next().getName()).isEqualTo(AuthoritiesConstants.USER);
|
|
223
|
+
<%_ } else { _%>
|
|
224
|
+
assertThat(convertedUser.getAuthorities().iterator().next()).isEqualTo(AuthoritiesConstants.USER);
|
|
158
225
|
<%_ } _%>
|
|
159
226
|
}
|
|
160
227
|
|
|
@@ -162,11 +229,11 @@ class UserMapperTest {
|
|
|
162
229
|
void userDTOToUserMapWithNullAuthoritiesStringShouldReturnUserWithEmptyAuthorities() {
|
|
163
230
|
userDto.setAuthorities(null);
|
|
164
231
|
|
|
165
|
-
<%= user.persistClass %>
|
|
232
|
+
<%= user.persistClass %> persistUser = userMapper.userDTOToUser(userDto);
|
|
166
233
|
|
|
167
|
-
assertThat(
|
|
168
|
-
assertThat(
|
|
169
|
-
assertThat(
|
|
234
|
+
assertThat(persistUser).isNotNull();
|
|
235
|
+
assertThat(persistUser.getAuthorities()).isNotNull();
|
|
236
|
+
assertThat(persistUser.getAuthorities()).isEmpty();
|
|
170
237
|
}
|
|
171
238
|
|
|
172
239
|
@Test
|
package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs
CHANGED
|
@@ -44,9 +44,8 @@ import <%= packageName %>.web.rest.vm.ManagedUserVM;
|
|
|
44
44
|
|
|
45
45
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
46
46
|
import org.apache.commons.lang3.RandomStringUtils;
|
|
47
|
-
|
|
47
|
+
import org.junit.jupiter.api.AfterEach;
|
|
48
48
|
import org.junit.jupiter.api.BeforeEach;
|
|
49
|
-
<%_ } _%>
|
|
50
49
|
import org.junit.jupiter.api.Test;
|
|
51
50
|
import org.junit.jupiter.params.ParameterizedTest;
|
|
52
51
|
import org.junit.jupiter.params.provider.MethodSource;
|
|
@@ -144,10 +143,12 @@ class AccountResourceIT {
|
|
|
144
143
|
private MockMvc restAccountMockMvc;
|
|
145
144
|
<%_ } _%>
|
|
146
145
|
|
|
147
|
-
<%_ if (
|
|
146
|
+
<%_ if (!databaseTypeCassandra && !requiresDeleteAllUsers) { _%>
|
|
147
|
+
private Long numberOfUsers;
|
|
148
|
+
|
|
148
149
|
@BeforeEach
|
|
149
|
-
public void
|
|
150
|
-
userRepository.
|
|
150
|
+
public void countUsers() {
|
|
151
|
+
numberOfUsers = userRepository.count()<%- reactorBlock %>;
|
|
151
152
|
}
|
|
152
153
|
|
|
153
154
|
<%_ } _%>
|
|
@@ -158,6 +159,16 @@ class AccountResourceIT {
|
|
|
158
159
|
}
|
|
159
160
|
|
|
160
161
|
<%_ } _%>
|
|
162
|
+
@AfterEach
|
|
163
|
+
public void cleanupAndCheck() {
|
|
164
|
+
<%_ if (requiresDeleteAllUsers) { _%>
|
|
165
|
+
userRepository.deleteAll()<%- reactorBlock %>;
|
|
166
|
+
<%_ } else if (!databaseTypeCassandra) { _%>
|
|
167
|
+
assertThat(userRepository.count()<%- reactorBlock %>).isEqualTo(numberOfUsers);
|
|
168
|
+
numberOfUsers = null;
|
|
169
|
+
<%_ } _%>
|
|
170
|
+
}
|
|
171
|
+
|
|
161
172
|
@Test
|
|
162
173
|
@WithUnauthenticatedMockUser
|
|
163
174
|
<%_ if (reactive) { _%>
|
|
@@ -246,6 +257,8 @@ class AccountResourceIT {
|
|
|
246
257
|
.andExpect(jsonPath("$.authorities").value(AuthoritiesConstants.ADMIN));
|
|
247
258
|
|
|
248
259
|
<%_ } _%>
|
|
260
|
+
|
|
261
|
+
userService.deleteUser(TEST_USER_LOGIN)<%- reactorBlock %>;
|
|
249
262
|
}
|
|
250
263
|
|
|
251
264
|
@Test
|
|
@@ -301,6 +314,8 @@ class AccountResourceIT {
|
|
|
301
314
|
<%_ } _%>
|
|
302
315
|
|
|
303
316
|
assertThat(userRepository.findOneByLogin("test-register-valid")<% if (reactive) { %>.blockOptional()<% } %>).isPresent();
|
|
317
|
+
|
|
318
|
+
userService.deleteUser("test-register-valid")<%- reactorBlock %>;
|
|
304
319
|
}
|
|
305
320
|
|
|
306
321
|
@Test
|
|
@@ -484,6 +499,8 @@ class AccountResourceIT {
|
|
|
484
499
|
.with(csrf())<% } %>)
|
|
485
500
|
.andExpect(status().is4xxClientError());
|
|
486
501
|
<%_ } _%>
|
|
502
|
+
|
|
503
|
+
userService.deleteUser("alice")<%- reactorBlock %>;
|
|
487
504
|
}
|
|
488
505
|
|
|
489
506
|
@Test
|
|
@@ -610,6 +627,8 @@ class AccountResourceIT {
|
|
|
610
627
|
.with(csrf())<% } %>)
|
|
611
628
|
.andExpect(status().is4xxClientError());
|
|
612
629
|
<%_ } _%>
|
|
630
|
+
|
|
631
|
+
userService.deleteUser("test-register-duplicate-email-3")<%- reactorBlock %>;
|
|
613
632
|
}
|
|
614
633
|
|
|
615
634
|
@Test
|
|
@@ -649,6 +668,8 @@ class AccountResourceIT {
|
|
|
649
668
|
assertThat(userDup).isPresent();
|
|
650
669
|
assertThat(userDup.orElseThrow().getAuthorities()).hasSize(1)
|
|
651
670
|
.containsExactly(<% if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { %>authorityRepository.findById(AuthoritiesConstants.USER).<% if (reactive) { %>block<% } else { %>orElseThrow<% } %>()<% } %><% if (databaseTypeCassandra || databaseTypeCouchbase) { %>AuthoritiesConstants.USER<% } %>);
|
|
671
|
+
|
|
672
|
+
userService.deleteUser("badguy")<%- reactorBlock %>;
|
|
652
673
|
}
|
|
653
674
|
|
|
654
675
|
@Test
|
|
@@ -683,6 +704,8 @@ class AccountResourceIT {
|
|
|
683
704
|
|
|
684
705
|
user = userRepository.findOneByLogin(user.getLogin())<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
|
|
685
706
|
assertThat(user.isActivated()).isTrue();
|
|
707
|
+
|
|
708
|
+
userService.deleteUser("activate-account")<%- reactorBlock %>;
|
|
686
709
|
}
|
|
687
710
|
|
|
688
711
|
@Test
|
|
@@ -757,6 +780,8 @@ class AccountResourceIT {
|
|
|
757
780
|
<%_ } _%>
|
|
758
781
|
assertThat(updatedUser.isActivated()).isTrue();
|
|
759
782
|
assertThat(updatedUser.getAuthorities()).isEmpty();
|
|
783
|
+
|
|
784
|
+
userService.deleteUser("save-account")<%- reactorBlock %>;
|
|
760
785
|
}
|
|
761
786
|
|
|
762
787
|
@Test
|
|
@@ -810,6 +835,8 @@ class AccountResourceIT {
|
|
|
810
835
|
<%_ } _%>
|
|
811
836
|
|
|
812
837
|
assertThat(userRepository.findOneByEmailIgnoreCase("invalid email")<% if (reactive) { %>.blockOptional()<% } %>).isNotPresent();
|
|
838
|
+
|
|
839
|
+
userService.deleteUser("save-invalid-email")<%- reactorBlock %>;
|
|
813
840
|
}
|
|
814
841
|
|
|
815
842
|
@Test
|
|
@@ -872,8 +899,11 @@ class AccountResourceIT {
|
|
|
872
899
|
.andExpect(status().isBadRequest());
|
|
873
900
|
<%_ } _%>
|
|
874
901
|
|
|
875
|
-
<%= user.persistClass %> updatedUser = userRepository.findOneByLogin("save-existing-email")<%_ if (reactive) { _%>.block()<% } else { %>.
|
|
902
|
+
<%= user.persistClass %> updatedUser = userRepository.findOneByLogin("save-existing-email")<%_ if (reactive) { _%>.block()<% } else { %>.orElseThrow()<% } %>;
|
|
876
903
|
assertThat(updatedUser.getEmail()).isEqualTo("save-existing-email@example.com");
|
|
904
|
+
|
|
905
|
+
userService.deleteUser("save-existing-email")<%- reactorBlock %>;
|
|
906
|
+
userService.deleteUser("save-existing-email2")<%- reactorBlock %>;
|
|
877
907
|
}
|
|
878
908
|
|
|
879
909
|
@Test
|
|
@@ -924,6 +954,8 @@ class AccountResourceIT {
|
|
|
924
954
|
|
|
925
955
|
<%= user.persistClass %> updatedUser = userRepository.findOneByLogin("save-existing-email-and-login")<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
|
|
926
956
|
assertThat(updatedUser.getEmail()).isEqualTo("save-existing-email-and-login@example.com");
|
|
957
|
+
|
|
958
|
+
userService.deleteUser("save-existing-email-and-login")<%- reactorBlock %>;
|
|
927
959
|
}
|
|
928
960
|
|
|
929
961
|
@Test
|
|
@@ -963,6 +995,8 @@ class AccountResourceIT {
|
|
|
963
995
|
<%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password-wrong-existing-password")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
|
|
964
996
|
assertThat(passwordEncoder.matches("new password", updatedUser.getPassword())).isFalse();
|
|
965
997
|
assertThat(passwordEncoder.matches(currentPassword, updatedUser.getPassword())).isTrue();
|
|
998
|
+
|
|
999
|
+
userService.deleteUser("change-password-wrong-existing-password")<%- reactorBlock %>;
|
|
966
1000
|
}
|
|
967
1001
|
|
|
968
1002
|
@Test
|
|
@@ -1001,6 +1035,8 @@ class AccountResourceIT {
|
|
|
1001
1035
|
|
|
1002
1036
|
<%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password")<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
|
|
1003
1037
|
assertThat(passwordEncoder.matches("new password", updatedUser.getPassword())).isTrue();
|
|
1038
|
+
|
|
1039
|
+
userService.deleteUser("change-password")<%- reactorBlock %>;
|
|
1004
1040
|
}
|
|
1005
1041
|
|
|
1006
1042
|
@Test
|
|
@@ -1041,6 +1077,8 @@ class AccountResourceIT {
|
|
|
1041
1077
|
|
|
1042
1078
|
<%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password-too-small")<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
|
|
1043
1079
|
assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
|
|
1080
|
+
|
|
1081
|
+
userService.deleteUser("change-password-too-small")<%- reactorBlock %>;
|
|
1044
1082
|
}
|
|
1045
1083
|
|
|
1046
1084
|
@Test
|
|
@@ -1081,6 +1119,8 @@ class AccountResourceIT {
|
|
|
1081
1119
|
|
|
1082
1120
|
<%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password-too-long")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
|
|
1083
1121
|
assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
|
|
1122
|
+
|
|
1123
|
+
userService.deleteUser("change-password-too-long")<%- reactorBlock %>;
|
|
1084
1124
|
}
|
|
1085
1125
|
|
|
1086
1126
|
@Test
|
|
@@ -1119,6 +1159,8 @@ class AccountResourceIT {
|
|
|
1119
1159
|
|
|
1120
1160
|
<%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password-empty")<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
|
|
1121
1161
|
assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
|
|
1162
|
+
|
|
1163
|
+
userService.deleteUser("change-password-empty")<%- reactorBlock %>;
|
|
1122
1164
|
}
|
|
1123
1165
|
<%_ if (authenticationTypeSession && !reactive) { _%>
|
|
1124
1166
|
|
|
@@ -1165,6 +1207,9 @@ class AccountResourceIT {
|
|
|
1165
1207
|
.andExpect(jsonPath("$.[*].ipAddress").value(hasItem(token.getIpAddress())))
|
|
1166
1208
|
.andExpect(jsonPath("$.[*].userAgent").value(hasItem(token.getUserAgent())))
|
|
1167
1209
|
.andExpect(jsonPath("$.[*].tokenDate").value(hasItem(containsString(<% if (databaseTypeCassandra) { %>"2017-03-28T15:25:57.123Z"<% } else { %>token.getTokenDate().toString()<% } %>))));
|
|
1210
|
+
|
|
1211
|
+
persistentTokenRepository.delete(token);
|
|
1212
|
+
userService.deleteUser("current-sessions")<%- reactorBlock %>;
|
|
1168
1213
|
}
|
|
1169
1214
|
|
|
1170
1215
|
@Test
|
|
@@ -1210,6 +1255,9 @@ class AccountResourceIT {
|
|
|
1210
1255
|
.andExpect(status().isOk());
|
|
1211
1256
|
|
|
1212
1257
|
assertThat(persistentTokenRepository.findByUser(user)).isEmpty();
|
|
1258
|
+
|
|
1259
|
+
persistentTokenRepository.delete(token);
|
|
1260
|
+
userService.deleteUser("invalidate-session")<%- reactorBlock %>;
|
|
1213
1261
|
}
|
|
1214
1262
|
<%_ } _%>
|
|
1215
1263
|
|
|
@@ -1244,6 +1292,8 @@ class AccountResourceIT {
|
|
|
1244
1292
|
.with(csrf())<%_ } _%>)
|
|
1245
1293
|
.andExpect(status().isOk());
|
|
1246
1294
|
<%_ } _%>
|
|
1295
|
+
|
|
1296
|
+
userService.deleteUser("password-reset")<%- reactorBlock %>;
|
|
1247
1297
|
}
|
|
1248
1298
|
|
|
1249
1299
|
@Test
|
|
@@ -1277,6 +1327,8 @@ class AccountResourceIT {
|
|
|
1277
1327
|
.with(csrf())<%_ } _%>)
|
|
1278
1328
|
.andExpect(status().isOk());
|
|
1279
1329
|
<%_ } _%>
|
|
1330
|
+
|
|
1331
|
+
userService.deleteUser("password-reset-upper-case")<%- reactorBlock %>;
|
|
1280
1332
|
}
|
|
1281
1333
|
|
|
1282
1334
|
@Test
|
|
@@ -1336,6 +1388,8 @@ class AccountResourceIT {
|
|
|
1336
1388
|
|
|
1337
1389
|
<%= user.persistClass %> updatedUser = userRepository.findOneByLogin(user.getLogin())<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
|
|
1338
1390
|
assertThat(passwordEncoder.matches(keyAndPassword.getNewPassword(), updatedUser.getPassword())).isTrue();
|
|
1391
|
+
|
|
1392
|
+
userService.deleteUser("finish-password-reset")<%- reactorBlock %>;
|
|
1339
1393
|
}
|
|
1340
1394
|
|
|
1341
1395
|
@Test
|
|
@@ -1378,6 +1432,8 @@ class AccountResourceIT {
|
|
|
1378
1432
|
|
|
1379
1433
|
<%= user.persistClass %> updatedUser = userRepository.findOneByLogin(user.getLogin())<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
|
|
1380
1434
|
assertThat(passwordEncoder.matches(keyAndPassword.getNewPassword(), updatedUser.getPassword())).isFalse();
|
|
1435
|
+
|
|
1436
|
+
userService.deleteUser("finish-password-reset-too-small")<%- reactorBlock %>;
|
|
1381
1437
|
}
|
|
1382
1438
|
|
|
1383
1439
|
@Test
|
|
@@ -34,11 +34,17 @@ import static org.mockito.Mockito.*;
|
|
|
34
34
|
|
|
35
35
|
import <%= packageName %>.IntegrationTest;
|
|
36
36
|
import <%= packageName %>.security.AuthoritiesConstants;
|
|
37
|
+
<%_ if (syncUserWithIdp) { _%>
|
|
38
|
+
import <%= packageName %>.repository.UserRepository;
|
|
39
|
+
<%_ } _%>
|
|
37
40
|
|
|
38
41
|
import org.junit.jupiter.api.Test;
|
|
39
42
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
40
43
|
import org.springframework.http.MediaType;
|
|
41
44
|
import org.springframework.security.test.context.support.WithMockUser;
|
|
45
|
+
<%_ if (authenticationTypeOauth2) { _%>
|
|
46
|
+
import org.junit.jupiter.api.AfterEach;
|
|
47
|
+
<%_ } _%>
|
|
42
48
|
<%_ if (reactive) { _%>
|
|
43
49
|
import org.junit.jupiter.api.BeforeEach;
|
|
44
50
|
import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
|
|
@@ -74,6 +80,11 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
74
80
|
<%_ } _%>
|
|
75
81
|
@IntegrationTest
|
|
76
82
|
class AccountResourceIT {
|
|
83
|
+
<%_ if (syncUserWithIdp) { _%>
|
|
84
|
+
|
|
85
|
+
@Autowired
|
|
86
|
+
private UserRepository userRepository;
|
|
87
|
+
<%_ } _%>
|
|
77
88
|
|
|
78
89
|
<%_ if (reactive) { _%>
|
|
79
90
|
private Map<String, Object> claims;
|
|
@@ -106,6 +117,17 @@ class AccountResourceIT {
|
|
|
106
117
|
claims.put("email", "jane.doe@jhipster.com");
|
|
107
118
|
}
|
|
108
119
|
|
|
120
|
+
<%_ } _%>
|
|
121
|
+
<%_ if (syncUserWithIdp) { _%>
|
|
122
|
+
@AfterEach
|
|
123
|
+
public void cleanup() {
|
|
124
|
+
// Remove syncUserWithIdp users
|
|
125
|
+
<%_ if (databaseTypeSql && reactive) { _%>
|
|
126
|
+
userRepository.deleteAllUserAuthorities()<%- reactorBlock %>;
|
|
127
|
+
<%_ } _%>
|
|
128
|
+
userRepository.deleteAll()<%- reactorBlock %>;
|
|
129
|
+
}
|
|
130
|
+
|
|
109
131
|
<%_ } _%>
|
|
110
132
|
@Test
|
|
111
133
|
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
@@ -132,13 +132,32 @@ spring:
|
|
|
132
132
|
allow-bean-definition-overriding: true
|
|
133
133
|
messages:
|
|
134
134
|
basename: i18n/messages
|
|
135
|
-
<%_ if (generateInMemoryUserCredentials) { _%>
|
|
135
|
+
<%_ if (generateInMemoryUserCredentials || authenticationTypeOauth2 || authenticationTypeJwt) { _%>
|
|
136
136
|
security:
|
|
137
|
+
<%_ if (generateInMemoryUserCredentials) { _%>
|
|
137
138
|
user:
|
|
138
139
|
name: test
|
|
139
140
|
password: test
|
|
140
141
|
roles:
|
|
141
142
|
- USER
|
|
143
|
+
<%_ } _%>
|
|
144
|
+
<%_ if (authenticationTypeOauth2) { _%>
|
|
145
|
+
oauth2:
|
|
146
|
+
client:
|
|
147
|
+
provider:
|
|
148
|
+
oidc:
|
|
149
|
+
issuer-uri: http://DO_NOT_CALL:9080/realms/jhipster
|
|
150
|
+
resourceserver:
|
|
151
|
+
jwt:
|
|
152
|
+
principal-claim-name: preferred_username
|
|
153
|
+
<%_ } _%>
|
|
154
|
+
<%_ if (authenticationTypeJwt) { _%>
|
|
155
|
+
oauth2:
|
|
156
|
+
resourceserver:
|
|
157
|
+
jwt:
|
|
158
|
+
authority-prefix: ''
|
|
159
|
+
authorities-claim-name: auth
|
|
160
|
+
<%_ } _%>
|
|
142
161
|
<%_ } _%>
|
|
143
162
|
task:
|
|
144
163
|
execution:
|
|
@@ -153,15 +172,6 @@ spring:
|
|
|
153
172
|
size: 20
|
|
154
173
|
thymeleaf:
|
|
155
174
|
mode: HTML
|
|
156
|
-
<%_ if (authenticationTypeOauth2) { _%>
|
|
157
|
-
# Allow SecurityConfiguration to initialize w/o specifying an empty issuer-uri is OK
|
|
158
|
-
security:
|
|
159
|
-
oauth2:
|
|
160
|
-
client:
|
|
161
|
-
provider:
|
|
162
|
-
oidc:
|
|
163
|
-
issuer-uri: http://DO_NOT_CALL:9080/realms/jhipster
|
|
164
|
-
<%_ } _%>
|
|
165
175
|
|
|
166
176
|
server:
|
|
167
177
|
port: 10344
|
|
@@ -197,4 +197,7 @@ export default asWritingTask(function cleanupTask(taskParam) {
|
|
|
197
197
|
this.removeFile('gradle/sonar.gradle');
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
|
+
if (this.isJhipsterVersionLessThan('8.4.0')) {
|
|
201
|
+
this.removeFile(`${application.javaPackageSrcDir}config/LocaleConfiguration.java`);
|
|
202
|
+
}
|
|
200
203
|
});
|
|
@@ -1,5 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2024 the original author or authors from the JHipster project.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
* for more information.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
19
|
+
import chalk from 'chalk';
|
|
1
20
|
import { GENERATOR_JAVA, GENERATOR_LIQUIBASE, GENERATOR_SPRING_DATA_RELATIONAL } from '../generator-list.js';
|
|
2
|
-
import {
|
|
21
|
+
import { createBase64Secret, createSecret } from '../base/support/secret.js';
|
|
22
|
+
import { authenticationTypes, applicationTypes } from '../../jdl/index.js';
|
|
23
|
+
const { OAUTH2, SESSION, JWT } = authenticationTypes;
|
|
24
|
+
const { GATEWAY, MICROSERVICE } = applicationTypes;
|
|
3
25
|
const command = {
|
|
4
26
|
options: {
|
|
5
27
|
fakeKeytool: {
|
|
@@ -11,18 +33,92 @@ const command = {
|
|
|
11
33
|
},
|
|
12
34
|
},
|
|
13
35
|
configs: {
|
|
36
|
+
reactive: {
|
|
37
|
+
cli: {
|
|
38
|
+
description: 'Generate a reactive backend',
|
|
39
|
+
type: Boolean,
|
|
40
|
+
},
|
|
41
|
+
prompt: gen => ({
|
|
42
|
+
when: () => ['monolith', 'microservice'].includes(gen.jhipsterConfigWithDefaults.applicationType),
|
|
43
|
+
type: 'confirm',
|
|
44
|
+
message: 'Do you want to make it reactive with Spring WebFlux?',
|
|
45
|
+
}),
|
|
46
|
+
},
|
|
47
|
+
serverPort: {
|
|
48
|
+
prompt: gen => ({
|
|
49
|
+
when: () => ['gateway', 'microservice'].includes(gen.jhipsterConfigWithDefaults.applicationType),
|
|
50
|
+
type: 'input',
|
|
51
|
+
validate: input => (/^([0-9]*)$/.test(input) ? true : 'This is not a valid port number.'),
|
|
52
|
+
message: '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.',
|
|
53
|
+
default: () => gen.jhipsterConfigWithDefaults.serverPort,
|
|
54
|
+
}),
|
|
55
|
+
configure: gen => {
|
|
56
|
+
if (gen.jhipsterConfig.serverPort === undefined && gen.jhipsterConfig.applicationIndex !== undefined) {
|
|
57
|
+
gen.jhipsterConfig.serverPort = 8080 + gen.jhipsterConfig.applicationIndex;
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
serviceDiscoveryType: {
|
|
62
|
+
cli: {
|
|
63
|
+
description: 'Service discovery type',
|
|
64
|
+
type: String,
|
|
65
|
+
},
|
|
66
|
+
prompt: gen => ({
|
|
67
|
+
when: () => ['gateway', 'microservice'].includes(gen.jhipsterConfigWithDefaults.applicationType),
|
|
68
|
+
type: 'list',
|
|
69
|
+
message: 'Which service discovery server do you want to use?',
|
|
70
|
+
default: 'consul',
|
|
71
|
+
}),
|
|
72
|
+
choices: [
|
|
73
|
+
{ value: 'consul', name: 'Consul (recommended)' },
|
|
74
|
+
{ value: 'eureka', name: 'JHipster Registry (legacy, uses Eureka, provides Spring Cloud Config support)' },
|
|
75
|
+
{ value: 'no', name: 'No service discovery' },
|
|
76
|
+
],
|
|
77
|
+
},
|
|
78
|
+
authenticationType: {
|
|
79
|
+
cli: {
|
|
80
|
+
name: 'auth',
|
|
81
|
+
description: 'Provide authentication type for the application when skipping server side generation',
|
|
82
|
+
type: String,
|
|
83
|
+
},
|
|
84
|
+
prompt: (gen, config) => ({
|
|
85
|
+
type: 'list',
|
|
86
|
+
message: `Which ${chalk.yellow('*type*')} of authentication would you like to use?`,
|
|
87
|
+
choices: () => gen.jhipsterConfigWithDefaults.applicationType !== 'monolith'
|
|
88
|
+
? config.choices.filter(({ value }) => value !== 'session')
|
|
89
|
+
: config.choices,
|
|
90
|
+
default: () => gen.jhipsterConfigWithDefaults.authenticationType,
|
|
91
|
+
}),
|
|
92
|
+
choices: [
|
|
93
|
+
{ value: 'jwt', name: 'JWT authentication (stateless, with a token)' },
|
|
94
|
+
{ value: 'oauth2', name: 'OAuth 2.0 / OIDC Authentication (stateful, works with Keycloak and Okta)' },
|
|
95
|
+
{ value: 'session', name: 'HTTP Session Authentication (stateful, default Spring Security mechanism)' },
|
|
96
|
+
],
|
|
97
|
+
configure: gen => {
|
|
98
|
+
const { jwtSecretKey, rememberMeKey, authenticationType, applicationType } = gen.jhipsterConfigWithDefaults;
|
|
99
|
+
if (authenticationType === SESSION && !rememberMeKey) {
|
|
100
|
+
gen.jhipsterConfig.rememberMeKey = createSecret();
|
|
101
|
+
}
|
|
102
|
+
else if (authenticationType === OAUTH2 && gen.jhipsterConfig.skipUserManagement === undefined) {
|
|
103
|
+
gen.jhipsterConfig.skipUserManagement = true;
|
|
104
|
+
}
|
|
105
|
+
else if (jwtSecretKey === undefined &&
|
|
106
|
+
(authenticationType === JWT || applicationType === MICROSERVICE || applicationType === GATEWAY)) {
|
|
107
|
+
gen.jhipsterConfig.jwtSecretKey = createBase64Secret(64, gen.options.reproducibleTests);
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
},
|
|
14
111
|
feignClient: {
|
|
15
112
|
description: 'Generate a feign client',
|
|
16
113
|
cli: {
|
|
17
114
|
type: Boolean,
|
|
18
115
|
},
|
|
19
|
-
prompt: {
|
|
116
|
+
prompt: gen => ({
|
|
20
117
|
type: 'confirm',
|
|
21
118
|
message: 'Do you want to generate a feign client?',
|
|
22
|
-
when:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
},
|
|
119
|
+
when: ({ reactive }) => [MICROSERVICE].includes(gen.jhipsterConfigWithDefaults.applicationType) &&
|
|
120
|
+
(reactive ?? gen.jhipsterConfigWithDefaults.reactive) === false,
|
|
121
|
+
}),
|
|
26
122
|
default: false,
|
|
27
123
|
},
|
|
28
124
|
syncUserWithIdp: {
|
|
@@ -35,7 +131,31 @@ const command = {
|
|
|
35
131
|
message: 'Do you want to allow relationships with User entity?',
|
|
36
132
|
when: ({ authenticationType }) => (authenticationType ?? gen.jhipsterConfigWithDefaults.authenticationType) === 'oauth2',
|
|
37
133
|
}),
|
|
38
|
-
|
|
134
|
+
configure: gen => {
|
|
135
|
+
if (gen.jhipsterConfig.syncUserWithIdp === undefined && gen.jhipsterConfigWithDefaults.authenticationType === 'oauth2') {
|
|
136
|
+
if (gen.isJhipsterVersionLessThan('8.1.1')) {
|
|
137
|
+
gen.jhipsterConfig.syncUserWithIdp = true;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
else if (gen.jhipsterConfig.syncUserWithIdp && gen.jhipsterConfig.authenticationType !== OAUTH2) {
|
|
141
|
+
throw new Error('syncUserWithIdp is only supported with authenticationType oauth2');
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
defaultPackaging: {
|
|
146
|
+
description: 'Default packaging for the application',
|
|
147
|
+
cli: {
|
|
148
|
+
type: String,
|
|
149
|
+
hide: true,
|
|
150
|
+
},
|
|
151
|
+
choices: ['jar', 'war'],
|
|
152
|
+
default: 'jar',
|
|
153
|
+
scope: 'storage',
|
|
154
|
+
configure: gen => {
|
|
155
|
+
if (process.env.JHI_WAR === '1') {
|
|
156
|
+
gen.jhipsterConfig.defaultPackaging = 'war';
|
|
157
|
+
}
|
|
158
|
+
},
|
|
39
159
|
},
|
|
40
160
|
},
|
|
41
161
|
import: [GENERATOR_JAVA, GENERATOR_LIQUIBASE, GENERATOR_SPRING_DATA_RELATIONAL],
|
|
@@ -401,20 +401,10 @@ export const baseServerFiles = {
|
|
|
401
401
|
],
|
|
402
402
|
},
|
|
403
403
|
{
|
|
404
|
-
condition: generator => generator.generateUserManagement ||
|
|
405
|
-
generator.authenticationTypeOauth2 ||
|
|
406
|
-
generator.databaseTypeSql ||
|
|
407
|
-
generator.databaseTypeMongodb ||
|
|
408
|
-
generator.databaseTypeCouchbase,
|
|
409
404
|
path: `${SERVER_MAIN_SRC_DIR}_package_/`,
|
|
410
405
|
renameTo: moveToJavaPackageSrcDir,
|
|
411
406
|
templates: ['config/Constants.java'],
|
|
412
407
|
},
|
|
413
|
-
{
|
|
414
|
-
path: `${SERVER_MAIN_SRC_DIR}_package_/`,
|
|
415
|
-
renameTo: moveToJavaPackageSrcDir,
|
|
416
|
-
templates: [data => `config/LocaleConfiguration_${data.imperativeOrReactive}.java`],
|
|
417
|
-
},
|
|
418
408
|
],
|
|
419
409
|
serverJavaDomain: [
|
|
420
410
|
{
|