generator-jhipster 8.9.0 → 8.11.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/README.md +1 -1
- package/dist/cli/cli.mjs +0 -13
- package/dist/cli/download.mjs +2 -3
- package/dist/cli/environment-builder.mjs +5 -3
- package/dist/generators/angular/generator.d.ts +10 -1
- package/dist/generators/angular/resources/package.json +27 -27
- package/dist/generators/angular/templates/README.md.jhi.client.angular.ejs +1 -1
- package/dist/generators/angular/templates/eslint.config.js.jhi.angular.ejs +4 -6
- package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.html.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.ts.ejs +6 -4
- 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 +1 -1
- 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/register/register.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +1 -1
- 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/account/settings/settings.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +8 -13
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +2 -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/admin/user-management/update/user-management-update.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/app-page-title-strategy.ts.ejs +1 -3
- package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/core/tracker/tracker.service.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/core/util/alert.service.ts.ejs +1 -2
- package/dist/generators/angular/templates/src/main/webapp/app/core/util/data-util.service.spec.ts.ejs +0 -1
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.html.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.spec.ts.ejs +4 -5
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/service/_entityFile_.service.spec.ts.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.html.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +7 -7
- package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.spec.ts.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.html.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +8 -6
- package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +8 -8
- package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/shared/pagination/item-count.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort.service.ts.ejs +3 -3
- package/dist/generators/app/generator.d.ts +4 -1
- package/dist/generators/base/api.d.ts +3 -1
- package/dist/generators/base/shared-data.js +1 -0
- package/dist/generators/base/support/contents.d.ts +10 -1
- package/dist/generators/base/support/contents.js +9 -0
- package/dist/generators/base/support/index.d.ts +1 -0
- package/dist/generators/base/support/index.js +1 -0
- package/dist/generators/base/support/needles.d.ts +14 -5
- package/dist/generators/base/support/needles.js +21 -17
- package/dist/generators/base/support/os.d.ts +1 -0
- package/dist/generators/base/support/os.js +20 -0
- package/dist/generators/base/support/write-files.d.ts +18 -0
- package/dist/generators/base/support/write-files.js +0 -26
- package/dist/generators/base-application/support/prepare-entity.js +14 -26
- package/dist/generators/base-application/support/update-application-entities-transform.js +3 -2
- package/dist/generators/base-application/types.d.ts +5 -0
- package/dist/generators/base-core/generator.js +7 -4
- package/dist/generators/bootstrap/generator.d.ts +6 -1
- package/dist/generators/bootstrap/generator.js +31 -2
- package/dist/generators/bootstrap/support/auto-crlf-transform.js +2 -2
- package/dist/generators/bootstrap/support/eslint-worker.js +5 -2
- package/dist/generators/bootstrap-application/generator.d.ts +4 -1
- package/dist/generators/bootstrap-application-base/generator.d.ts +12 -2
- package/dist/generators/bootstrap-application-base/generator.js +4 -3
- package/dist/generators/bootstrap-application-client/generator.d.ts +3 -1
- package/dist/generators/bootstrap-application-server/generator.d.ts +8 -1
- package/dist/generators/bootstrap-workspaces/generator.d.ts +9 -1
- package/dist/generators/ci-cd/generator.d.ts +6 -1
- package/dist/generators/client/generator.d.ts +13 -1
- package/dist/generators/client/generators/common/generator.d.ts +1 -1
- package/dist/generators/client/resources/package.json +5 -5
- package/dist/generators/client/templates/src/main/webapp/swagger-ui/index.html.ejs +8 -6
- package/dist/generators/common/generator.d.ts +8 -1
- package/dist/generators/common/resources/package.json +2 -2
- package/dist/generators/cucumber/generator.d.ts +2 -1
- package/dist/generators/cypress/generator.d.ts +7 -1
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/logout.cy.ts.ejs +11 -3
- package/dist/generators/cypress/templates/src/test/javascript/cypress/support/oauth2.ts.ejs +4 -4
- package/dist/generators/docker/generator.d.ts +4 -1
- package/dist/generators/docker-compose/generator.d.ts +23 -1
- package/dist/generators/entities/generator.d.ts +4 -1
- package/dist/generators/entity/generator.d.ts +5 -1
- package/dist/generators/export-jdl/generator.d.ts +3 -1
- package/dist/generators/feign-client/generator.d.ts +2 -1
- package/dist/generators/feign-client/templates/src/test/java/_package_/client/AuthorizationHeaderUtilTest.java.ejs +1 -1
- package/dist/generators/gatling/generator.d.ts +3 -1
- package/dist/generators/generate-blueprint/constants.d.ts +1 -1
- package/dist/generators/generate-blueprint/constants.js +1 -1
- package/dist/generators/generate-blueprint/files.js +2 -2
- package/dist/generators/generate-blueprint/generator.d.ts +10 -1
- package/dist/generators/generate-blueprint/generator.js +16 -16
- package/dist/generators/generate-blueprint/resources/package.json +3 -3
- package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/command.mjs.ejs +1 -1
- package/dist/generators/generate-blueprint/templates/generators/generator/generator.mjs.jhi.ejs +1 -0
- package/dist/generators/generator-constants.d.ts +1 -1
- package/dist/generators/generator-constants.js +2 -2
- package/dist/generators/git/generator.d.ts +5 -1
- package/dist/generators/gradle/generator.d.ts +5 -1
- package/dist/generators/gradle/generators/code-quality/generator.d.ts +2 -1
- package/dist/generators/gradle/generators/jib/generator.d.ts +2 -1
- package/dist/generators/gradle/generators/node-gradle/generator.d.ts +2 -1
- package/dist/generators/gradle/templates/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/dist/generators/heroku/generator.d.ts +6 -1
- package/dist/generators/info/generator.d.ts +1 -1
- package/dist/generators/init/generator.d.ts +2 -1
- package/dist/generators/init/resources/.node-version +1 -1
- package/dist/generators/java/generators/bootstrap/generator.d.ts +8 -2
- package/dist/generators/java/generators/bootstrap/generator.js +17 -3
- package/dist/generators/java/generators/build-tool/generator.d.ts +2 -1
- package/dist/generators/java/generators/code-quality/generator.d.ts +2 -1
- package/dist/generators/java/generators/domain/generator.d.ts +6 -1
- package/dist/generators/java/generators/graalvm/generator.d.ts +6 -1
- package/dist/generators/java/generators/graalvm/internal/constants.d.ts +1 -1
- package/dist/generators/java/generators/graalvm/internal/constants.js +2 -2
- package/dist/generators/java/generators/graalvm/resources/gradle/libs.versions.toml +1 -1
- package/dist/generators/java/generators/jib/generator.d.ts +2 -1
- package/dist/generators/java/generators/node/generator.d.ts +4 -1
- package/dist/generators/java/generators/node/generator.js +2 -1
- package/dist/generators/java/generators/openapi-generator/generator.d.ts +2 -1
- package/dist/generators/java/generators/server/generator.d.ts +1 -1
- package/dist/generators/java/support/index.d.ts +2 -0
- package/dist/generators/java/support/index.js +2 -0
- package/dist/generators/java/support/java-enum.d.ts +8 -0
- package/dist/generators/java/support/java-enum.js +20 -0
- package/dist/generators/java/support/java-file-edit.d.ts +18 -0
- package/dist/generators/java/support/java-file-edit.js +94 -0
- package/dist/generators/java/types.d.ts +37 -1
- package/dist/generators/javascript/generators/bootstrap/generator.d.ts +4 -1
- package/dist/generators/javascript/generators/eslint/generator.d.ts +4 -1
- package/dist/generators/javascript/generators/eslint/templates/eslint.config.js.jhi.ejs +8 -0
- package/dist/generators/javascript/generators/husky/generator.d.ts +3 -1
- package/dist/generators/javascript/generators/prettier/generator.d.ts +4 -1
- package/dist/generators/javascript/resources/package.json +3 -3
- package/dist/generators/jdl/generator.d.ts +3 -1
- package/dist/generators/kubernetes/generator.d.ts +25 -19
- package/dist/generators/kubernetes-helm/generator.d.ts +18 -12
- package/dist/generators/kubernetes-knative/generator.d.ts +14 -8
- package/dist/generators/languages/generator.d.ts +9 -1
- package/dist/generators/languages/support/languages.js +1 -0
- package/dist/generators/languages/templates/entity/i18n/entity_he.json.ejs +78 -0
- package/dist/generators/languages/templates/src/main/resources/i18n/messages_he.properties.ejs +41 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/activate.json.ejs +27 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/configuration.json +11 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/error.json +15 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/gateway.json +16 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/global.json.ejs +172 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/health.json.ejs +75 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/home.json.ejs +20 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/login.json +20 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/logs.json +12 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/metrics.json +103 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/password.json +13 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/register.json +25 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/reset.json.ejs +45 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/sessions.json +16 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/settings.json +33 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/tracker.json +13 -0
- package/dist/generators/languages/templates/src/main/webapp/i18n/he/user-management.json +32 -0
- package/dist/generators/languages/templates/src/test/resources/i18n/messages_he.properties.ejs +4 -0
- package/dist/generators/liquibase/generator.d.ts +9 -1
- package/dist/generators/liquibase/generator.js +3 -19
- package/dist/generators/maven/generator.d.ts +6 -1
- package/dist/generators/maven/generators/code-quality/generator.d.ts +1 -1
- package/dist/generators/maven/generators/frontend-plugin/generator.d.ts +1 -1
- package/dist/generators/maven/generators/jib/generator.d.ts +1 -1
- package/dist/generators/project-name/generator.d.ts +3 -1
- package/dist/generators/react/generator.d.ts +15 -1
- package/dist/generators/react/resources/package.json +34 -34
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-delete-dialog.tsx.ejs +2 -1
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.reducer.ts.ejs +4 -4
- package/dist/generators/react/templates/src/main/webapp/app/entities/menu.tsx.ejs +2 -2
- package/dist/generators/react/templates/src/main/webapp/app/entities/routes.tsx.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/modules/administration/administration.reducer.spec.ts.ejs +0 -6
- package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/application-profile.spec.ts.ejs +0 -6
- package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/locale.spec.ts.ejs +0 -47
- package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/shared/util/entity-utils.ts.ejs +1 -1
- package/dist/generators/server/generator.d.ts +7 -1
- package/dist/generators/server/resources/Dockerfile +17 -17
- package/dist/generators/server/resources/gradle/libs.versions.toml +15 -15
- package/dist/generators/server/resources/pom.xml +16 -16
- package/dist/generators/server/types.d.ts +22 -0
- package/dist/generators/spring-boot/generator.d.ts +14 -2
- package/dist/generators/spring-boot/generator.js +35 -4
- package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +158 -148
- package/dist/generators/spring-boot/templates/src/main/java/_package_/Application.java.ejs +11 -0
- package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/_entityClass_QueryService.java.ejs +12 -23
- package/dist/generators/spring-boot/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs +0 -1
- package/dist/generators/spring-boot/templates/src/main/java/_package_/security/DomainUserDetailsService.java.ejs +61 -5
- package/dist/generators/spring-boot/templates/src/main/java/_package_/security/SecurityUtils.java.ejs +29 -1
- package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/AccountResource.java.ejs +7 -6
- package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/AccountResource_oauth2.java.ejs +8 -6
- package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/AccountResource_skipUserManagement.java.ejs +8 -6
- package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/AuthenticateController.java.ejs +17 -11
- package/dist/generators/spring-boot/templates/src/main/java/_package_/web/rest/errors/ExceptionTranslator.java.ejs +8 -3
- package/dist/generators/spring-boot/templates/src/main/resources/config/application.yml.ejs +3 -0
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs +3 -3
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/PublicUserResourceIT.java.ejs +4 -4
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs +4 -4
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +3 -3
- package/dist/generators/spring-boot/templates/src/test/java/_package_/config/JHipsterBlockHoundIntegration.java.ejs +0 -2
- package/dist/generators/spring-boot/templates/src/test/java/_package_/config/WebConfigurerTest.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/management/SecurityMetersServiceTests.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/DomainUserDetailsServiceIT.java.ejs +2 -2
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/SecurityUtilsUnitTest_imperative.java.ejs +35 -11
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/SecurityUtilsUnitTest_reactive.java.ejs +35 -6
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/jwt/JwtAuthenticationTestUtils.java.ejs +3 -2
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/jwt/TestAuthenticationResource.java.ejs +5 -5
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/jwt/TokenAuthenticationIT.java.ejs +2 -2
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/jwt/TokenAuthenticationSecurityMetersIT.java.ejs +1 -4
- package/dist/generators/spring-boot/templates/src/test/java/_package_/security/oauth2/CustomClaimConverterIT.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/service/MailServiceIT.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/service/mapper/UserMapperTest.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/filter/SpaWebFilterIT_imperative.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/filter/SpaWebFilterIT_reactive.java.ejs +1 -2
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs +9 -15
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT_oauth2.java.ejs +8 -17
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/AccountResourceIT_skipUserManagement.java.ejs +6 -15
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/LogoutResourceIT.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorIT_reactive.java.ejs +1 -1
- package/dist/generators/spring-cache/cleanup.d.ts +2 -20
- package/dist/generators/spring-cache/cleanup.js +24 -2
- package/dist/generators/spring-cache/files.js +0 -6
- package/dist/generators/spring-cache/generator.d.ts +5 -1
- package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +1 -1
- package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheConfiguration.java.ejs +0 -14
- package/dist/generators/spring-cloud/generators/gateway/generator.d.ts +5 -1
- package/dist/generators/spring-cloud-stream/generator.d.ts +2 -1
- package/dist/generators/spring-cloud-stream/generators/kafka/generator.d.ts +2 -1
- package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/test/java/_package_/web/rest/KafkaResourceIT_reactive.java.ejs +1 -1
- package/dist/generators/spring-cloud-stream/generators/pulsar/generator.d.ts +2 -1
- package/dist/generators/spring-data-cassandra/generator.d.ts +4 -1
- package/dist/generators/spring-data-couchbase/generator.d.ts +9 -1
- package/dist/generators/spring-data-elasticsearch/generator.d.ts +10 -1
- package/dist/generators/spring-data-mongodb/generator.d.ts +9 -1
- package/dist/generators/spring-data-neo4j/generator.d.ts +11 -1
- package/dist/generators/spring-data-relational/generator.d.ts +11 -1
- package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/timezone/HibernateTimeZoneIT.java.ejs +2 -2
- package/dist/generators/spring-websocket/generator.d.ts +2 -1
- package/dist/generators/upgrade/generator.d.ts +3 -1
- package/dist/generators/vue/cleanup.js +7 -1
- package/dist/generators/vue/files-vue.js +3 -8
- package/dist/generators/vue/generator.d.ts +9 -1
- package/dist/generators/vue/resources/package.json +31 -31
- package/dist/generators/vue/templates/src/main/webapp/app/account/account.service.ts.ejs +9 -9
- package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +21 -7
- package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.component.ts.ejs +23 -9
- package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.service.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/account/activate/activate.vue.ejs +1 -1
- 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.component.spec.ts.ejs +22 -10
- package/dist/generators/vue/templates/src/main/webapp/app/account/login-form/login-form.component.ts.ejs +24 -5
- package/dist/generators/vue/templates/src/main/webapp/app/account/login-modal.ts.ejs +38 -0
- package/dist/generators/vue/templates/src/main/webapp/app/account/login.service.spec.ts.ejs +0 -4
- package/dist/generators/vue/templates/src/main/webapp/app/account/login.service.ts.ejs +3 -25
- package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.component.spec.ts.ejs +24 -8
- package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.component.ts.ejs +23 -9
- package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.service.ts.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.component.spec.ts.ejs +20 -4
- package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/finish/reset-password-finish.component.ts.ejs +23 -13
- 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/settings/settings.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/admin/configuration/configuration.service.ts.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/admin/gateway/gateway.service.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/admin/health/health.service.ts.ejs +10 -10
- package/dist/generators/vue/templates/src/main/webapp/app/admin/logs/logs.service.ts.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/admin/metrics/metrics-modal.vue.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/admin/metrics/metrics.service.ts.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.ts.ejs +5 -5
- package/dist/generators/vue/templates/src/main/webapp/app/admin/user-management/user-management.service.ts.ejs +6 -6
- package/dist/generators/vue/templates/src/main/webapp/app/app.component.ts.ejs +29 -7
- package/dist/generators/vue/templates/src/main/webapp/app/app.vue.ejs +19 -1
- package/dist/generators/vue/templates/src/main/webapp/app/core/error/error.component.spec.ts.ejs +66 -51
- package/dist/generators/vue/templates/src/main/webapp/app/core/error/error.component.ts.ejs +30 -8
- package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.component.spec.ts.ejs +41 -11
- package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.component.ts.ejs +10 -11
- package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.vue.ejs +2 -2
- package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.spec.ts.ejs +43 -16
- package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +14 -9
- package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.service.ts.ejs +7 -7
- package/dist/generators/vue/templates/src/main/webapp/app/entities/user/user.service.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/locale/translation.service.ts.ejs +5 -5
- package/dist/generators/vue/templates/src/main/webapp/app/main.ts.ejs +18 -14
- package/dist/generators/vue/templates/src/main/webapp/app/shared/alert/alert.service.ts.ejs +4 -4
- package/dist/generators/workspaces/generator.d.ts +7 -1
- package/dist/generators/workspaces/support/applications-lookup.js +2 -2
- package/dist/lib/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +1 -1
- package/dist/lib/jdl/core/built-in-options/binary-options.d.ts +12 -1
- package/dist/lib/testing/apply-patch-to-template.d.ts +13 -0
- package/dist/lib/testing/apply-patch-to-template.js +90 -0
- package/dist/lib/testing/github.js +6 -3
- package/dist/lib/testing/helpers.d.ts +1 -0
- package/dist/lib/testing/helpers.js +15 -0
- package/dist/lib/utils/yo-rc.d.ts +3 -219
- package/package.json +36 -37
- package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheFactoryConfiguration.java.ejs +0 -49
|
@@ -91,6 +91,17 @@ public class <%= mainClass %> {
|
|
|
91
91
|
* @param args the command line arguments.
|
|
92
92
|
*/
|
|
93
93
|
public static void main(String[] args) {
|
|
94
|
+
<%_ if (cacheProviderHazelcast) { _%>
|
|
95
|
+
try {
|
|
96
|
+
// Workaround Hazelcast issue: https://github.com/hazelcast/hazelcast/issues/26361#issuecomment-2489778475
|
|
97
|
+
Class.forName("org.springframework.boot.devtools.autoconfigure.DevToolsProperties", false, SpringApplication.class.getClassLoader());
|
|
98
|
+
System.setProperty("spring.devtools.restart.enabled", "false");
|
|
99
|
+
LOG.warn("Spring Boot Developer Tools restart has been disabled using System property in order to prevent issues with Hazelcast");
|
|
100
|
+
} catch (Exception e){
|
|
101
|
+
// Devtools not found, ignore
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
<%_ } _%>
|
|
94
105
|
SpringApplication app = new SpringApplication(<%= mainClass %>.class);
|
|
95
106
|
DefaultProfileUtil.addDefaultProfile(app);
|
|
96
107
|
Environment env = app.run(args).getEnvironment();
|
|
@@ -126,29 +126,18 @@ public class <%= serviceClassName %> extends QueryService<<%= persistClass %>> {
|
|
|
126
126
|
Specification<<%= persistClass %>> specification = Specification.where(null);
|
|
127
127
|
if (criteria != null) {
|
|
128
128
|
// This has to be called first, because the distinct method returns null
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
<%_
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}
|
|
142
|
-
<%_ }
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
relationships.forEach((relationship) => {
|
|
146
|
-
const metamodelFieldName = (relationship.relationshipManyToMany || relationship.relationshipOneToMany) ? relationship.relationshipFieldNamePlural : relationship.relationshipFieldName; _%>
|
|
147
|
-
if (criteria.get<%= relationship.relationshipNameCapitalized %>Id() != null) {
|
|
148
|
-
specification = specification.and(buildSpecification(criteria.get<%= relationship.relationshipNameCapitalized %>Id(),
|
|
149
|
-
root -> root.join(<%= persistClass %>_.<%= metamodelFieldName %>, JoinType.LEFT).get(<%= relationship.otherEntity.persistClass %>_.<%= relationship.otherEntity.primaryKey.name %>)));
|
|
150
|
-
}
|
|
151
|
-
<%_ }); /* forEach */ _%>
|
|
129
|
+
specification = Specification.allOf(
|
|
130
|
+
Boolean.TRUE.equals(criteria.getDistinct()) ? distinct(criteria.getDistinct()) : null
|
|
131
|
+
<%_ for (const field of fields.filter(field => !field.transient && field.filterableField)) { _%>
|
|
132
|
+
,
|
|
133
|
+
<%= field.fieldJavaBuildSpecification %>(criteria.get<%= field.fieldInJavaBeanMethod %>(), <%= persistClass %>_.<%= field.fieldName %>)
|
|
134
|
+
<%_ } _%>
|
|
135
|
+
<%_ for (const relationship of relationships) { _%>
|
|
136
|
+
,
|
|
137
|
+
buildSpecification(criteria.get<%= relationship.relationshipNameCapitalized %>Id(),
|
|
138
|
+
root -> root.join(<%= persistClass %>_.<%= relationship.propertyName %>, JoinType.LEFT).get(<%= relationship.otherEntity.persistClass %>_.<%= relationship.otherEntity.primaryKey.name %>))
|
|
139
|
+
<%_ } _%>
|
|
140
|
+
);
|
|
152
141
|
}
|
|
153
142
|
return specification;
|
|
154
143
|
}
|
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
-%>
|
|
19
19
|
package <%= packageName %>.config;
|
|
20
20
|
|
|
21
|
-
import static <%= packageName %>.security.SecurityUtils.AUTHORITIES_KEY;
|
|
22
21
|
import static <%= packageName %>.security.SecurityUtils.JWT_ALGORITHM;
|
|
23
22
|
|
|
24
23
|
import <%= packageName %>.management.SecurityMetersService;
|
|
@@ -27,6 +27,7 @@ import org.hibernate.validator.internal.constraintvalidators.hv.EmailValidator;
|
|
|
27
27
|
import org.slf4j.Logger;
|
|
28
28
|
import org.slf4j.LoggerFactory;
|
|
29
29
|
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
|
30
|
+
import org.springframework.security.core.GrantedAuthority;
|
|
30
31
|
<%_ if (reactive) { _%>
|
|
31
32
|
import org.springframework.security.core.userdetails.ReactiveUserDetailsService;
|
|
32
33
|
<%_ } _%>
|
|
@@ -42,6 +43,9 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
42
43
|
<%_ if (reactive) { _%>
|
|
43
44
|
import reactor.core.publisher.Mono;
|
|
44
45
|
<%_ } _%>
|
|
46
|
+
<%_ if (user?.primaryKey?.hasUUID) { _%>
|
|
47
|
+
import java.util.UUID;
|
|
48
|
+
<%_ } _%>
|
|
45
49
|
|
|
46
50
|
import java.util.*;
|
|
47
51
|
|
|
@@ -89,10 +93,62 @@ public class DomainUserDetailsService implements <% if (reactive) { %>Reactive<%
|
|
|
89
93
|
if (!user.isActivated()) {
|
|
90
94
|
throw new UserNotActivatedException("User " + lowercaseLogin + " was not activated");
|
|
91
95
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
96
|
+
<%_ if (user) { _%>
|
|
97
|
+
return UserWithId.fromUser(user);
|
|
98
|
+
<%_ } else { _%>
|
|
99
|
+
return org.springframework.security.core.userdetails.User.withUsername(user.getLogin())
|
|
100
|
+
.password(user.getPassword())
|
|
101
|
+
.authorities(
|
|
102
|
+
user.getAuthorities()
|
|
103
|
+
.stream()
|
|
104
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
|
|
105
|
+
.map(Authority::getName)
|
|
106
|
+
<%_ } _%>
|
|
107
|
+
.map(SimpleGrantedAuthority::new)
|
|
108
|
+
.toList()
|
|
109
|
+
)
|
|
110
|
+
.build();
|
|
111
|
+
<%_ } _%>
|
|
112
|
+
}
|
|
113
|
+
<%_ if (user) { _%>
|
|
114
|
+
|
|
115
|
+
public static class UserWithId extends org.springframework.security.core.userdetails.User {
|
|
116
|
+
|
|
117
|
+
private final <%= user.primaryKey.type %> id;
|
|
118
|
+
|
|
119
|
+
public UserWithId(String login, String password, Collection<? extends GrantedAuthority> authorities, <%= user.primaryKey.type %> id) {
|
|
120
|
+
super(login, password, authorities);
|
|
121
|
+
this.id = id;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
public <%= user.primaryKey.type %> getId() {
|
|
125
|
+
return id;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
@Override
|
|
129
|
+
public boolean equals(Object obj) {
|
|
130
|
+
return super.equals(obj);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
@Override
|
|
134
|
+
public int hashCode() {
|
|
135
|
+
return super.hashCode();
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
public static UserWithId fromUser(<%= user.persistClass %> user) {
|
|
139
|
+
return new UserWithId(
|
|
140
|
+
user.getLogin(),
|
|
141
|
+
user.getPassword(),
|
|
142
|
+
user.getAuthorities()
|
|
143
|
+
.stream()
|
|
144
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
|
|
145
|
+
.map(Authority::getName)
|
|
146
|
+
<%_ } _%>
|
|
147
|
+
.map(SimpleGrantedAuthority::new)
|
|
148
|
+
.toList(),
|
|
149
|
+
user.getId()
|
|
150
|
+
);
|
|
151
|
+
}
|
|
97
152
|
}
|
|
153
|
+
<%_ } _%>
|
|
98
154
|
}
|
|
@@ -34,6 +34,7 @@ import org.springframework.security.core.userdetails.UserDetails;
|
|
|
34
34
|
<%_ if (authenticationTypeJwt) { _%>
|
|
35
35
|
import org.springframework.security.oauth2.jose.jws.MacAlgorithm;
|
|
36
36
|
import org.springframework.security.oauth2.jwt.Jwt;
|
|
37
|
+
import org.springframework.security.oauth2.core.ClaimAccessor;
|
|
37
38
|
<%_ } _%>
|
|
38
39
|
<%_ if (authenticationTypeOauth2) { _%>
|
|
39
40
|
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
|
@@ -65,6 +66,9 @@ import java.util.HashMap;
|
|
|
65
66
|
import java.util.Map;
|
|
66
67
|
import java.util.stream.Collectors;
|
|
67
68
|
<%_ } _%>
|
|
69
|
+
<%_ if (user?.primaryKey?.hasUUID) { _%>
|
|
70
|
+
import java.util.UUID;
|
|
71
|
+
<%_ } _%>
|
|
68
72
|
|
|
69
73
|
/**
|
|
70
74
|
* Utility class for Spring Security.
|
|
@@ -76,7 +80,11 @@ public final class SecurityUtils {
|
|
|
76
80
|
|
|
77
81
|
public static final MacAlgorithm JWT_ALGORITHM = MacAlgorithm.HS512;
|
|
78
82
|
|
|
79
|
-
public static final String
|
|
83
|
+
public static final String AUTHORITIES_CLAIM = "auth";
|
|
84
|
+
<%_ if (user) { _%>
|
|
85
|
+
|
|
86
|
+
public static final String USER_ID_CLAIM = "userId";
|
|
87
|
+
<%_ } _%>
|
|
80
88
|
<%_ } _%>
|
|
81
89
|
|
|
82
90
|
private SecurityUtils() {}
|
|
@@ -139,6 +147,26 @@ public final class SecurityUtils {
|
|
|
139
147
|
.filter(authentication -> authentication.getCredentials() instanceof String)
|
|
140
148
|
.map(authentication -> (String) authentication.getCredentials());
|
|
141
149
|
}
|
|
150
|
+
<%_ if (user) { _%>
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Get the Id of the current user.
|
|
154
|
+
*
|
|
155
|
+
* @return the Id of the current user.
|
|
156
|
+
*/
|
|
157
|
+
public static <%- optionalOrMono %><<%= user.primaryKey.type %>> getCurrentUserId() {
|
|
158
|
+
<%_ if (reactive) { _%>
|
|
159
|
+
return ReactiveSecurityContextHolder.getContext()
|
|
160
|
+
.map(SecurityContext::getAuthentication)
|
|
161
|
+
<%_ } else { _%>
|
|
162
|
+
SecurityContext securityContext = SecurityContextHolder.getContext();
|
|
163
|
+
return Optional.ofNullable(securityContext.getAuthentication())
|
|
164
|
+
<%_ } _%>
|
|
165
|
+
.filter(authentication -> authentication.getPrincipal() instanceof ClaimAccessor)
|
|
166
|
+
.map(authentication -> (ClaimAccessor) authentication.getPrincipal())
|
|
167
|
+
.map(principal -> principal.getClaim(USER_ID_CLAIM));
|
|
168
|
+
}
|
|
169
|
+
<%_ } _%>
|
|
142
170
|
<%_ } _%>
|
|
143
171
|
|
|
144
172
|
/**
|
|
@@ -41,6 +41,7 @@ import org.slf4j.Logger;
|
|
|
41
41
|
import org.slf4j.LoggerFactory;
|
|
42
42
|
import org.springframework.http.HttpStatus;
|
|
43
43
|
import org.springframework.http.MediaType;
|
|
44
|
+
import org.springframework.http.ResponseEntity;
|
|
44
45
|
import org.springframework.web.bind.annotation.*;
|
|
45
46
|
<%_ if (reactive) { _%>
|
|
46
47
|
import java.util.Objects;
|
|
@@ -135,15 +136,15 @@ public class AccountResource {
|
|
|
135
136
|
|
|
136
137
|
<%_ if (!authenticationTypeJwt) { _%>
|
|
137
138
|
/**
|
|
138
|
-
* {@code GET /authenticate} : check if the user is authenticated
|
|
139
|
+
* {@code GET /authenticate} : check if the user is authenticated.
|
|
139
140
|
*
|
|
140
|
-
* @
|
|
141
|
-
* @
|
|
141
|
+
* @return the {@link ResponseEntity} with status {@code 204 (No Content)},
|
|
142
|
+
* or with status {@code 401 (Unauthorized)} if not authenticated.
|
|
142
143
|
*/
|
|
143
|
-
@GetMapping(
|
|
144
|
-
public
|
|
144
|
+
@GetMapping("/authenticate")
|
|
145
|
+
public ResponseEntity<Void> isAuthenticated(Principal principal) {
|
|
145
146
|
LOG.debug("REST request to check if the current user is authenticated");
|
|
146
|
-
return principal == null ?
|
|
147
|
+
return ResponseEntity.status(principal == null ? HttpStatus.UNAUTHORIZED : HttpStatus.NO_CONTENT).build();
|
|
147
148
|
}
|
|
148
149
|
|
|
149
150
|
<%_ } _%>
|
|
@@ -24,7 +24,9 @@ import <%= packageName %>.service.dto.<%= user.adminUserDto %>;
|
|
|
24
24
|
import java.security.Principal;
|
|
25
25
|
import org.slf4j.Logger;
|
|
26
26
|
import org.slf4j.LoggerFactory;
|
|
27
|
+
import org.springframework.http.HttpStatus;
|
|
27
28
|
import org.springframework.http.MediaType;
|
|
29
|
+
import org.springframework.http.ResponseEntity;
|
|
28
30
|
import org.springframework.security.authentication.AbstractAuthenticationToken;
|
|
29
31
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
30
32
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
@@ -74,14 +76,14 @@ public class AccountResource {
|
|
|
74
76
|
}
|
|
75
77
|
|
|
76
78
|
/**
|
|
77
|
-
* {@code GET /authenticate} : check if the user is authenticated
|
|
79
|
+
* {@code GET /authenticate} : check if the user is authenticated.
|
|
78
80
|
*
|
|
79
|
-
* @
|
|
80
|
-
* @
|
|
81
|
+
* @return the {@link ResponseEntity} with status {@code 204 (No Content)},
|
|
82
|
+
* or with status {@code 401 (Unauthorized)} if not authenticated.
|
|
81
83
|
*/
|
|
82
|
-
@GetMapping(
|
|
83
|
-
public
|
|
84
|
+
@GetMapping("/authenticate")
|
|
85
|
+
public ResponseEntity<Void> isAuthenticated(Principal principal) {
|
|
84
86
|
LOG.debug("REST request to check if the current user is authenticated");
|
|
85
|
-
return principal == null ?
|
|
87
|
+
return ResponseEntity.status(principal == null ? HttpStatus.UNAUTHORIZED : HttpStatus.NO_CONTENT).build();
|
|
86
88
|
}
|
|
87
89
|
}
|
|
@@ -48,7 +48,9 @@ import org.springframework.security.core.context.SecurityContextHolder;
|
|
|
48
48
|
import com.fasterxml.jackson.annotation.JsonAnyGetter;
|
|
49
49
|
import org.slf4j.Logger;
|
|
50
50
|
import org.slf4j.LoggerFactory;
|
|
51
|
+
import org.springframework.http.HttpStatus;
|
|
51
52
|
import org.springframework.http.MediaType;
|
|
53
|
+
import org.springframework.http.ResponseEntity;
|
|
52
54
|
import org.springframework.security.core.GrantedAuthority;
|
|
53
55
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
54
56
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
@@ -139,15 +141,15 @@ public class AccountResource {
|
|
|
139
141
|
<%_ if (!authenticationTypeJwt) { _%>
|
|
140
142
|
|
|
141
143
|
/**
|
|
142
|
-
* {@code GET /authenticate} : check if the user is authenticated
|
|
144
|
+
* {@code GET /authenticate} : check if the user is authenticated.
|
|
143
145
|
*
|
|
144
|
-
* @
|
|
145
|
-
* @
|
|
146
|
+
* @return the {@link ResponseEntity} with status {@code 204 (No Content)},
|
|
147
|
+
* or with status {@code 401 (Unauthorized)} if not authenticated.
|
|
146
148
|
*/
|
|
147
|
-
@GetMapping(
|
|
148
|
-
public
|
|
149
|
+
@GetMapping("/authenticate")
|
|
150
|
+
public ResponseEntity<Void> isAuthenticated(Principal principal) {
|
|
149
151
|
LOG.debug("REST request to check if the current user is authenticated");
|
|
150
|
-
return principal == null ?
|
|
152
|
+
return ResponseEntity.status(principal == null ? HttpStatus.UNAUTHORIZED : HttpStatus.NO_CONTENT).build();
|
|
151
153
|
}
|
|
152
154
|
<%_ } _%>
|
|
153
155
|
|
|
@@ -18,10 +18,12 @@
|
|
|
18
18
|
-%>
|
|
19
19
|
package <%= packageName %>.web.rest;
|
|
20
20
|
|
|
21
|
-
import static <%= packageName %>.security.SecurityUtils.
|
|
21
|
+
import static <%= packageName %>.security.SecurityUtils.AUTHORITIES_CLAIM;
|
|
22
22
|
import static <%= packageName %>.security.SecurityUtils.JWT_ALGORITHM;
|
|
23
|
+
import static <%= packageName %>.security.SecurityUtils.USER_ID_CLAIM;
|
|
23
24
|
|
|
24
25
|
import <%= packageName %>.web.rest.vm.LoginVM;
|
|
26
|
+
import <%= packageName %>.security.DomainUserDetailsService.UserWithId;
|
|
25
27
|
|
|
26
28
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
27
29
|
|
|
@@ -117,15 +119,15 @@ public class AuthenticateController {
|
|
|
117
119
|
<%_ } _%>
|
|
118
120
|
|
|
119
121
|
/**
|
|
120
|
-
* {@code GET /authenticate} : check if the user is authenticated
|
|
122
|
+
* {@code GET /authenticate} : check if the user is authenticated.
|
|
121
123
|
*
|
|
122
|
-
* @
|
|
123
|
-
* @
|
|
124
|
+
* @return the {@link ResponseEntity} with status {@code 204 (No Content)},
|
|
125
|
+
* or with status {@code 401 (Unauthorized)} if not authenticated.
|
|
124
126
|
*/
|
|
125
|
-
@GetMapping(
|
|
126
|
-
public
|
|
127
|
+
@GetMapping("/authenticate")
|
|
128
|
+
public ResponseEntity<Void> isAuthenticated(Principal principal) {
|
|
127
129
|
LOG.debug("REST request to check if the current user is authenticated");
|
|
128
|
-
return principal == null ?
|
|
130
|
+
return ResponseEntity.status(principal == null ? HttpStatus.UNAUTHORIZED : HttpStatus.NO_CONTENT).build();
|
|
129
131
|
}
|
|
130
132
|
|
|
131
133
|
public String createToken(Authentication authentication, boolean rememberMe) {
|
|
@@ -140,15 +142,19 @@ public class AuthenticateController {
|
|
|
140
142
|
}
|
|
141
143
|
|
|
142
144
|
// @formatter:off
|
|
143
|
-
JwtClaimsSet
|
|
145
|
+
JwtClaimsSet.Builder builder = JwtClaimsSet.builder()
|
|
144
146
|
.issuedAt(now)
|
|
145
147
|
.expiresAt(validity)
|
|
146
148
|
.subject(authentication.getName())
|
|
147
|
-
.claim(
|
|
148
|
-
|
|
149
|
+
.claim(AUTHORITIES_CLAIM, authorities);
|
|
150
|
+
<%_ if (user) { _%>
|
|
151
|
+
if (authentication.getPrincipal() instanceof UserWithId user) {
|
|
152
|
+
builder.claim(USER_ID_CLAIM, user.getId());
|
|
153
|
+
}
|
|
154
|
+
<%_ } _%>
|
|
149
155
|
|
|
150
156
|
JwsHeader jwsHeader = JwsHeader.with(JWT_ALGORITHM).build();
|
|
151
|
-
return this.jwtEncoder.encode(JwtEncoderParameters.from(jwsHeader,
|
|
157
|
+
return this.jwtEncoder.encode(JwtEncoderParameters.from(jwsHeader, builder.build())).getTokenValue();
|
|
152
158
|
}
|
|
153
159
|
|
|
154
160
|
/**
|
|
@@ -24,6 +24,8 @@ import tech.jhipster.config.JHipsterConstants;
|
|
|
24
24
|
import tech.jhipster.web.util.HeaderUtil;
|
|
25
25
|
|
|
26
26
|
import org.apache.commons.lang3.StringUtils;
|
|
27
|
+
import org.slf4j.Logger;
|
|
28
|
+
import org.slf4j.LoggerFactory;
|
|
27
29
|
import org.springframework.beans.factory.annotation.Value;
|
|
28
30
|
<%_ if (!databaseTypeNo && !databaseTypeCassandra) { _%>
|
|
29
31
|
import org.springframework.dao.ConcurrencyFailureException;
|
|
@@ -111,6 +113,8 @@ _%>
|
|
|
111
113
|
private static final String PATH_KEY = "path";
|
|
112
114
|
private static final boolean CASUAL_CHAIN_ENABLED = false;
|
|
113
115
|
|
|
116
|
+
private static final Logger LOG = LoggerFactory.getLogger(ExceptionTranslator.class);
|
|
117
|
+
|
|
114
118
|
@Value("${jhipster.clientApp.name}")
|
|
115
119
|
private String applicationName;
|
|
116
120
|
|
|
@@ -124,6 +128,7 @@ _%>
|
|
|
124
128
|
<%_ if (reactive) { _%>@Override<%_ } _%>
|
|
125
129
|
public <%- returnType %> handleAnyException(Throwable ex, <%= requestClass %> request
|
|
126
130
|
) {
|
|
131
|
+
LOG.debug("Converting Exception to Problem Details:", ex);
|
|
127
132
|
ProblemDetailWithCause pdCause = wrapAndCustomizeProblem(ex, request);
|
|
128
133
|
return handleExceptionInternal((Exception) ex, pdCause, buildHeaders(ex), HttpStatusCode.valueOf(pdCause.getStatus()), request);
|
|
129
134
|
}
|
|
@@ -149,9 +154,9 @@ _%>
|
|
|
149
154
|
|
|
150
155
|
private ProblemDetailWithCause getProblemDetailWithCause(Throwable ex) {
|
|
151
156
|
<%_ if (!skipUserManagement) { _%>
|
|
152
|
-
if(ex instanceof <%= packageName %>.service.UsernameAlreadyUsedException )
|
|
153
|
-
return (ProblemDetailWithCause) new LoginAlreadyUsedException().getBody();
|
|
154
|
-
if(ex instanceof <%= packageName %>.service.EmailAlreadyUsedException )
|
|
157
|
+
if(ex instanceof <%= packageName %>.service.UsernameAlreadyUsedException )
|
|
158
|
+
return (ProblemDetailWithCause) new LoginAlreadyUsedException().getBody();
|
|
159
|
+
if(ex instanceof <%= packageName %>.service.EmailAlreadyUsedException )
|
|
155
160
|
return (ProblemDetailWithCause) new EmailAlreadyUsedException().getBody();
|
|
156
161
|
if(ex instanceof <%= packageName %>.service.InvalidPasswordException )
|
|
157
162
|
return (ProblemDetailWithCause) new InvalidPasswordException().getBody();
|
|
@@ -327,6 +327,7 @@ spring:
|
|
|
327
327
|
hibernate.cache.hazelcast.instance_name: <%= baseName %>
|
|
328
328
|
hibernate.cache.hazelcast.use_lite_member: true
|
|
329
329
|
<%_ } else if (cacheProviderInfinispan) { _%>
|
|
330
|
+
hibernate.cache.region.factory_class: infinispan
|
|
330
331
|
hibernate.cache.infinispan.statistics: false
|
|
331
332
|
hibernate.cache.use_minimal_puts: true
|
|
332
333
|
hibernate.cache.infinispan.entity.expiration.lifespan: 3600000
|
|
@@ -463,6 +464,8 @@ jhipster:
|
|
|
463
464
|
- api://default
|
|
464
465
|
<%_ } _%>
|
|
465
466
|
|
|
467
|
+
# jhipster-needle-add-application-yaml-document
|
|
468
|
+
---
|
|
466
469
|
# ===================================================================
|
|
467
470
|
# Application specific properties
|
|
468
471
|
# Add your own application properties here, see the ApplicationProperties class
|
|
@@ -205,13 +205,13 @@ class UserServiceIT {
|
|
|
205
205
|
private Long numberOfUsers;
|
|
206
206
|
|
|
207
207
|
@BeforeEach
|
|
208
|
-
|
|
208
|
+
void countUsers() {
|
|
209
209
|
numberOfUsers = userRepository.count()<%- reactorBlock %>;
|
|
210
210
|
}
|
|
211
211
|
|
|
212
212
|
<%_ } _%>
|
|
213
213
|
@BeforeEach
|
|
214
|
-
|
|
214
|
+
void init() {
|
|
215
215
|
<%_ if (databaseTypeCouchbase) { _%>
|
|
216
216
|
mockAuthentication();
|
|
217
217
|
<%_ } _%>
|
|
@@ -255,7 +255,7 @@ class UserServiceIT {
|
|
|
255
255
|
}
|
|
256
256
|
|
|
257
257
|
@AfterEach
|
|
258
|
-
|
|
258
|
+
void cleanupAndCheck() {
|
|
259
259
|
<%_ if (cacheProviderAny) { _%>
|
|
260
260
|
cacheManager.getCacheNames().stream()
|
|
261
261
|
.map(cacheName -> this.cacheManager.getCache(cacheName))
|
|
@@ -146,25 +146,25 @@ class PublicUserResourceIT {
|
|
|
146
146
|
private Long numberOfUsers;
|
|
147
147
|
|
|
148
148
|
@BeforeEach
|
|
149
|
-
|
|
149
|
+
void countUsers() {
|
|
150
150
|
numberOfUsers = userRepository.count()<%- reactorBlock %>;
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
<%_ } _%>
|
|
154
154
|
<%_ if (reactive && authenticationUsesCsrf) { _%>
|
|
155
155
|
@BeforeEach
|
|
156
|
-
|
|
156
|
+
void setupCsrf() {
|
|
157
157
|
webTestClient = webTestClient.mutateWith(csrf());
|
|
158
158
|
}
|
|
159
159
|
|
|
160
160
|
<%_ } _%>
|
|
161
161
|
@BeforeEach
|
|
162
|
-
|
|
162
|
+
void initTest() {
|
|
163
163
|
user = UserResourceIT.initTestUser();
|
|
164
164
|
}
|
|
165
165
|
|
|
166
166
|
@AfterEach
|
|
167
|
-
|
|
167
|
+
void cleanupAndCheck() {
|
|
168
168
|
<%_ if (cacheProviderAny) { _%>
|
|
169
169
|
cacheManager.getCacheNames().stream()
|
|
170
170
|
.map(cacheName -> this.cacheManager.getCache(cacheName))
|
|
@@ -207,14 +207,14 @@ class UserResourceIT {
|
|
|
207
207
|
private Long numberOfUsers;
|
|
208
208
|
|
|
209
209
|
@BeforeEach
|
|
210
|
-
|
|
210
|
+
void countUsers() {
|
|
211
211
|
numberOfUsers = userRepository.count()<%- reactorBlock %>;
|
|
212
212
|
}
|
|
213
213
|
|
|
214
214
|
<%_ } _%>
|
|
215
215
|
<%_ if (reactive && authenticationUsesCsrf) { _%>
|
|
216
216
|
@BeforeEach
|
|
217
|
-
|
|
217
|
+
void setupCsrf() {
|
|
218
218
|
webTestClient = webTestClient.mutateWith(csrf());
|
|
219
219
|
}
|
|
220
220
|
|
|
@@ -269,12 +269,12 @@ class UserResourceIT {
|
|
|
269
269
|
}
|
|
270
270
|
|
|
271
271
|
@BeforeEach
|
|
272
|
-
|
|
272
|
+
void initTest() {
|
|
273
273
|
user = initTestUser();
|
|
274
274
|
}
|
|
275
275
|
|
|
276
276
|
@AfterEach
|
|
277
|
-
|
|
277
|
+
void cleanupAndCheck() {
|
|
278
278
|
<%_ if (requiresDeleteAllUsers) { _%>
|
|
279
279
|
<%_ if (databaseTypeSql && reactive) { _%>
|
|
280
280
|
userRepository.deleteAllUserAuthorities()<%- reactorBlock %>;
|
|
@@ -649,18 +649,18 @@ _%>
|
|
|
649
649
|
<%_ } _%>
|
|
650
650
|
<%_ if (reactive && authenticationUsesCsrf) { _%>
|
|
651
651
|
@BeforeEach
|
|
652
|
-
|
|
652
|
+
void setupCsrf() {
|
|
653
653
|
webTestClient = webTestClient.mutateWith(csrf());
|
|
654
654
|
}
|
|
655
655
|
|
|
656
656
|
<%_ } _%>
|
|
657
657
|
@BeforeEach
|
|
658
|
-
|
|
658
|
+
void initTest() {
|
|
659
659
|
<%= persistInstance %> = createEntity(<% if (databaseTypeSql && anyRelationshipIsRequired) { %>em<% } %>);
|
|
660
660
|
}
|
|
661
661
|
|
|
662
662
|
@AfterEach
|
|
663
|
-
|
|
663
|
+
void cleanup() {
|
|
664
664
|
if (inserted<%= persistClass %> != null) {
|
|
665
665
|
<%= entityInstance %>Repository.delete(inserted<%= persistClass %>)<%= reactorBlock %>;
|
|
666
666
|
<%_ if (searchEngineElasticsearch) { _%>
|
|
@@ -56,8 +56,6 @@ public class JHipsterBlockHoundIntegration implements BlockHoundIntegration {
|
|
|
56
56
|
builder.allowBlockingCallsInside("com.scurrilous.circe.utils.NativeUtils", "loadLibraryFromJar");
|
|
57
57
|
<%_ } _%>
|
|
58
58
|
builder.allowBlockingCallsInside("org.springframework.web.reactive.result.method.InvocableHandlerMethod", "invoke");
|
|
59
|
-
builder.allowBlockingCallsInside("org.springdoc.core.service.OpenAPIService", "build");
|
|
60
|
-
builder.allowBlockingCallsInside("org.springdoc.core.service.AbstractRequestService", "build");
|
|
61
59
|
// jhipster-needle-blockhound-integration - JHipster will add additional gradle plugins here
|
|
62
60
|
}
|
|
63
61
|
}
|
|
@@ -61,7 +61,7 @@ class WebConfigurerTest {
|
|
|
61
61
|
private JHipsterProperties props;
|
|
62
62
|
|
|
63
63
|
@BeforeEach
|
|
64
|
-
|
|
64
|
+
void setup() {
|
|
65
65
|
servletContext = spy(new MockServletContext());
|
|
66
66
|
doReturn(mock(FilterRegistration.Dynamic.class)).when(servletContext).addFilter(anyString(), any(Filter.class));
|
|
67
67
|
doReturn(mock(ServletRegistration.Dynamic.class)).when(servletContext).addServlet(anyString(), any(Servlet.class));
|
|
@@ -34,7 +34,7 @@ class SecurityMetersServiceTests {
|
|
|
34
34
|
private SecurityMetersService securityMetersService;
|
|
35
35
|
|
|
36
36
|
@BeforeEach
|
|
37
|
-
|
|
37
|
+
void setup() {
|
|
38
38
|
meterRegistry = new SimpleMeterRegistry();
|
|
39
39
|
|
|
40
40
|
securityMetersService = new SecurityMetersService(meterRegistry);
|
|
@@ -142,14 +142,14 @@ class DomainUserDetailsServiceIT {
|
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
@BeforeEach
|
|
145
|
-
|
|
145
|
+
void init() {
|
|
146
146
|
userRepository.save(getUserOne())<%- callBlock %>;
|
|
147
147
|
userRepository.save(getUserTwo())<%- callBlock %>;
|
|
148
148
|
userRepository.save(getUserThree())<%- callBlock %>;
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
@AfterEach
|
|
152
|
-
|
|
152
|
+
void cleanup () {
|
|
153
153
|
userService.deleteUser(USER_ONE_LOGIN)<%- callBlock %>;
|
|
154
154
|
userService.deleteUser(USER_TWO_LOGIN)<%- callBlock %>;
|
|
155
155
|
userService.deleteUser(USER_THREE_LOGIN)<%- callBlock %>;
|