generator-jhipster 7.1.0 → 7.4.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/cli/commands.js +21 -0
- package/cli/environment-builder.js +10 -2
- package/cli/import-jdl.js +7 -10
- package/cli/jdl.js +1 -0
- package/cli/jhipster-command.js +14 -28
- package/cli/program.js +37 -29
- package/generators/add/index.cjs +78 -0
- package/generators/app/esm.mjs +21 -0
- package/generators/app/generator.spec.mjs +47 -0
- package/generators/app/index.js +38 -34
- package/generators/app/prompts.js +1 -1
- package/generators/aws/esm.mjs +21 -0
- package/generators/aws/generator.spec.mjs +47 -0
- package/generators/aws/index.js +8 -8
- package/generators/aws/lib/eb.js +1 -1
- package/generators/azure-app-service/esm.mjs +21 -0
- package/generators/azure-app-service/generator.spec.mjs +47 -0
- package/generators/azure-app-service/index.js +30 -19
- package/generators/azure-app-service/templates/github/workflows/azure-app-service.yml.ejs +3 -3
- package/generators/azure-spring-cloud/esm.mjs +21 -0
- package/generators/azure-spring-cloud/generator.spec.mjs +47 -0
- package/generators/azure-spring-cloud/index.js +68 -46
- package/generators/azure-spring-cloud/templates/application-azure.yml.ejs +4 -4
- package/generators/azure-spring-cloud/templates/github/workflows/azure-spring-cloud.yml.ejs +3 -3
- package/generators/base/esm.mjs +21 -0
- package/generators/base/generator.spec.mjs +44 -0
- package/generators/bootstrap/esm.mjs +21 -0
- package/generators/bootstrap/generator.spec.mjs +44 -0
- package/generators/bootstrap/index.js +55 -58
- package/generators/ci-cd/esm.mjs +21 -0
- package/generators/ci-cd/generator.spec.mjs +47 -0
- package/generators/ci-cd/index.js +30 -47
- package/generators/ci-cd/templates/github-actions.yml.ejs +5 -2
- package/generators/ci-cd/templates/travis.yml.ejs +9 -4
- package/generators/cleanup.js +5 -0
- package/generators/client/__workflow/devserver-angular.json +13 -0
- package/generators/client/__workflow/devserver-react.json +13 -0
- package/generators/client/__workflow/devserver-vue.json +13 -0
- package/generators/client/esm.mjs +21 -0
- package/generators/client/files-angular.js +8 -9
- package/generators/client/files-common.js +7 -3
- package/generators/client/files-react.js +11 -1
- package/generators/client/files-vue.js +56 -6
- package/generators/client/generator.spec.mjs +47 -0
- package/generators/client/index.js +127 -51
- package/generators/client/needle-api/needle-client-vue.js +5 -5
- package/generators/client/templates/angular/.eslintrc.json.ejs +1 -0
- package/generators/client/templates/angular/README.md.jhi.client.angular.ejs +48 -0
- package/generators/client/templates/angular/angular.json.ejs +0 -1
- package/generators/client/templates/angular/package.json +28 -25
- package/generators/client/templates/angular/package.json.ejs +18 -18
- package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +52 -54
- package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.service.spec.ts.ejs +65 -0
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.spec.ts.ejs +35 -37
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.spec.ts.ejs +78 -80
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password.service.spec.ts.ejs +41 -0
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +73 -75
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.service.spec.ts.ejs +62 -0
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +44 -46
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.service.spec.ts.ejs +61 -0
- package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.spec.ts.ejs +116 -118
- package/generators/client/templates/angular/src/main/webapp/app/account/register/register.service.spec.ts.ejs +66 -0
- package/generators/client/templates/angular/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +75 -77
- package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +74 -76
- package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +48 -50
- package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.service.spec.ts.ejs +50 -52
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +45 -47
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.ts.ejs +1 -2
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.service.spec.ts.ejs +66 -0
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.spec.ts.ejs +99 -101
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.ts.ejs +3 -5
- package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +61 -63
- package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.service.spec.ts.ejs +19 -21
- package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.service.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +2 -2
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.spec.ts.ejs +28 -30
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.service.spec.ts.ejs +62 -64
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +35 -37
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.spec.ts.ejs +40 -42
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +87 -89
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +3 -3
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/service/user-management.service.spec.ts.ejs +41 -43
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +81 -83
- package/generators/client/templates/angular/src/main/webapp/app/app.constants.ts.ejs +0 -4
- package/generators/client/templates/angular/src/main/webapp/app/app.module.ts.ejs +3 -1
- package/generators/client/templates/angular/src/main/webapp/app/config/error.constants.ts.ejs +2 -2
- package/generators/client/templates/angular/src/main/webapp/app/config/translation.config.ts.ejs +1 -2
- package/generators/client/templates/angular/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +179 -172
- package/generators/client/templates/angular/src/main/webapp/app/core/auth/account.service.ts.ejs +9 -9
- package/generators/client/templates/angular/src/main/webapp/app/core/config/application-config.service.ts.ejs +9 -0
- package/generators/client/templates/angular/src/main/webapp/app/core/util/data-util.service.spec.ts.ejs +2 -1
- package/generators/client/templates/angular/src/main/webapp/app/core/util/data-util.service.ts.ejs +14 -22
- package/generators/client/templates/angular/src/main/webapp/app/entities/user/user.service.spec.ts.ejs +87 -89
- package/generators/client/templates/angular/src/main/webapp/app/home/home.component.spec.ts.ejs +93 -95
- package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +166 -168
- package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.ts.ejs +2 -2
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +66 -68
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +27 -29
- package/generators/client/templates/angular/src/main/webapp/app/login/login.component.spec.ts.ejs +112 -114
- package/generators/client/templates/angular/src/main/webapp/app/login/login.service.ts.ejs +1 -11
- package/generators/client/templates/angular/src/main/webapp/app/login/logout.model.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +132 -134
- package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert.component.spec.ts.ejs +29 -31
- package/generators/client/templates/angular/src/main/webapp/app/shared/sort/sort-by.directive.spec.ts.ejs +24 -37
- package/generators/client/templates/angular/src/main/webapp/app/shared/sort/sort-by.directive.ts.ejs +5 -3
- package/generators/client/templates/angular/src/main/webapp/app/shared/sort/sort.directive.spec.ts.ejs +7 -5
- package/generators/client/templates/angular/src/main/webapp/app/shared/sort/sort.directive.ts.ejs +7 -10
- package/generators/client/templates/angular/src/main/webapp/declarations.d.ts.ejs +8 -1
- package/generators/client/templates/angular/webpack/environment.js.ejs +2 -2
- package/generators/client/templates/angular/webpack/logo-jhipster.png +0 -0
- package/generators/client/templates/angular/webpack/proxy.conf.js.ejs +2 -3
- package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +23 -7
- package/generators/client/templates/angular/webpack/webpack.microfrontend.js.ejs +3 -3
- package/generators/client/templates/common/README.md.jhi.client.ejs +224 -0
- package/generators/client/templates/common/package.json +9 -10
- package/generators/client/templates/common/webpack/webpack.microfrontend.js.jhi.ejs +56 -0
- package/generators/client/templates/react/.eslintrc.json.ejs +1 -0
- package/generators/client/templates/react/jest.conf.js.ejs +7 -1
- package/generators/client/templates/react/package.json +61 -64
- package/generators/client/templates/react/package.json.ejs +22 -31
- package/generators/client/templates/react/src/main/webapp/app/app.scss.ejs +0 -3
- package/generators/client/templates/react/src/main/webapp/app/app.tsx.ejs +1 -2
- package/generators/client/templates/react/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +0 -3
- package/generators/client/templates/react/src/main/webapp/app/config/axios-interceptor.ts.ejs +0 -2
- package/generators/client/templates/react/src/main/webapp/app/config/constants.ts.ejs +0 -9
- package/generators/client/templates/react/src/main/webapp/app/config/error-middleware.ts.ejs +2 -2
- package/generators/client/templates/react/src/main/webapp/app/config/logger-middleware.ts.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/config/notification-middleware.ts.ejs +1 -3
- package/generators/client/templates/react/src/main/webapp/app/config/store.ts.ejs +1 -3
- package/generators/client/templates/react/src/main/webapp/app/modules/account/password/password.tsx.ejs +2 -2
- package/generators/client/templates/react/src/main/webapp/app/modules/account/settings/settings.reducer.spec.ts.ejs +0 -4
- package/generators/client/templates/react/src/main/webapp/app/modules/account/settings/settings.reducer.ts.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/administration.reducer.spec.ts.ejs +1 -2
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/configuration/configuration.tsx.ejs +4 -4
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/gateway/gateway.tsx.ejs +2 -2
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/health/health-modal.tsx.ejs +1 -2
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/health/health.tsx.ejs +3 -1
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/metrics/metrics.tsx.ejs +6 -6
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +8 -8
- package/generators/client/templates/react/src/main/webapp/app/modules/home/home.tsx.ejs +5 -1
- package/generators/client/templates/react/src/main/webapp/app/modules/login/logout.tsx.ejs +1 -6
- package/generators/client/templates/react/src/main/webapp/app/shared/auth/private-route.spec.tsx.ejs +0 -3
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary-route.spec.tsx.ejs +0 -3
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary.spec.tsx.ejs +0 -3
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary.tsx.ejs +1 -2
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/footer/footer.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header-components.tsx.ejs +3 -5
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.spec.tsx.ejs +0 -3
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/account.spec.tsx.ejs +0 -3
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/account.tsx.ejs +3 -3
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/admin.tsx.ejs +7 -7
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/menu-components.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/authentication.spec.ts.ejs +1 -5
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/authentication.ts.ejs +0 -2
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/index.ts.ejs +12 -12
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/locale.ts.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +0 -1
- package/generators/client/templates/react/src/main/webapp/app/shared/util/date-utils.ts.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/typings.d.ts.ejs +6 -0
- package/generators/client/templates/react/webpack/environment.js.ejs +35 -0
- package/generators/client/templates/react/webpack/webpack.common.js.ejs +31 -37
- package/generators/client/templates/react/webpack/webpack.dev.js.ejs +21 -7
- package/generators/client/templates/react/webpack/webpack.prod.js.ejs +14 -7
- package/generators/client/templates/vue/.eslintrc.js.ejs +8 -5
- package/generators/client/templates/vue/package.json +47 -55
- package/generators/client/templates/vue/package.json.ejs +33 -40
- package/generators/client/templates/vue/src/main/webapp/app/account/account.service.ts.ejs +4 -5
- package/generators/client/templates/vue/src/main/webapp/app/account/activate/activate.component.ts.ejs +2 -2
- package/generators/client/templates/vue/src/main/webapp/app/account/change-password/change-password.component.ts.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/account/reset-password/finish/reset-password-finish.component.ts.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/account/reset-password/init/reset-password-init.component.ts.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/account/settings/settings.component.ts.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/account/settings/settings.vue.ejs +7 -1
- package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.component.ts.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.service.ts.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.vue.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/admin/health/health-modal.component.ts.ejs +2 -4
- package/generators/client/templates/vue/src/main/webapp/app/admin/health/health.component.ts.ejs +1 -2
- package/generators/client/templates/vue/src/main/webapp/app/admin/health/health.service.ts.ejs +5 -9
- package/generators/client/templates/vue/src/main/webapp/app/admin/logs/logs.component.ts.ejs +2 -2
- package/generators/client/templates/vue/src/main/webapp/app/admin/logs/logs.service.ts.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/admin/metrics/metrics.component.ts.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/admin/metrics/metrics.service.ts.ejs +1 -6
- package/generators/client/templates/vue/src/main/webapp/app/admin/tracker/tracker.service.ts.ejs +5 -4
- package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management-edit.component.ts.ejs +9 -0
- package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management-view.component.ts.ejs +5 -0
- package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management.component.ts.ejs +6 -1
- package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management.service.ts.ejs +3 -2
- package/generators/client/templates/vue/src/main/webapp/app/constants.ts.ejs +18 -9
- package/generators/client/templates/vue/src/main/webapp/app/core/home/home.component.ts.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +16 -16
- package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +6 -0
- package/generators/client/templates/vue/src/main/webapp/app/declarations.d.ts.ejs +41 -0
- package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.component.ts.ejs +34 -0
- package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.vue.ejs +13 -0
- package/generators/client/templates/vue/src/main/webapp/app/entities/entities.component.ts.ejs +12 -0
- package/generators/client/templates/vue/src/main/webapp/app/entities/entities.vue.ejs +5 -0
- package/generators/{common/templates/.huskyrc.ejs → client/templates/vue/src/main/webapp/app/index.ts.ejs} +1 -5
- package/generators/client/templates/vue/src/main/webapp/app/locale/translation.service.ts.ejs +26 -10
- package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +12 -5
- package/generators/client/templates/vue/src/main/webapp/app/router/admin.ts.ejs +4 -4
- package/generators/client/templates/vue/src/main/webapp/app/router/entities.ts.ejs +44 -1
- package/generators/client/templates/vue/src/main/webapp/app/router/index.ts.ejs +11 -0
- package/generators/client/templates/vue/src/main/webapp/app/shared/alert/alert.service.ts.ejs +61 -0
- package/generators/client/templates/vue/src/main/webapp/app/shared/config/axios-interceptor.ts.ejs +5 -3
- package/generators/client/templates/vue/src/main/webapp/app/shared/config/config.ts.ejs +3 -1
- package/generators/client/templates/vue/src/main/webapp/app/shared/data/data-utils.service.ts.ejs +13 -18
- package/generators/client/templates/vue/src/main/webapp/app/shims-vue.d.ts.ejs +18 -0
- package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +28 -8
- package/generators/client/templates/vue/src/test/javascript/spec/app/account/account.service.spec.ts.ejs +2 -2
- package/generators/client/templates/vue/src/test/javascript/spec/app/account/login-form/login-form.component.spec.ts.ejs +1 -1
- package/generators/client/templates/vue/src/test/javascript/spec/app/admin/tracker/tracker.component.spec.ts.ejs +12 -12
- package/generators/client/templates/vue/src/test/javascript/spec/app/admin/tracker/tracker.service.spec.ts.ejs +2 -1
- package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-edit.component.spec.ts.ejs +3 -1
- package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-view.component.spec.ts.ejs +2 -1
- package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management.component.spec.ts.ejs +3 -1
- package/generators/client/templates/vue/src/test/javascript/spec/app/entities/entities-menu.spec.ts.ejs +52 -0
- package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.component.ts.ejs +4 -0
- package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.vue.ejs +7 -0
- package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-router.ts.ejs +1 -0
- package/generators/client/templates/vue/src/test/javascript/spec/app/shared/alert/alert.service.spec.ts.ejs +124 -0
- package/generators/client/templates/vue/src/test/javascript/spec/app/shared/config/axios-interceptor.spec.ts.ejs +33 -1
- package/generators/client/templates/vue/src/test/javascript/spec/app/shared/data/data-utils.service.spec.ts.ejs +6 -6
- package/generators/client/templates/vue/tsconfig.json.ejs +5 -9
- package/generators/{server/templates/src/main/java/package/repository/search/SearchCouchbaseRepository.java.ejs → client/templates/vue/tsconfig.spec.json.ejs} +17 -21
- package/generators/client/templates/vue/webpack/config.js.ejs +50 -0
- package/generators/client/templates/vue/webpack/vue.utils.js.ejs +33 -32
- package/generators/client/templates/vue/webpack/webpack.common.js.ejs +164 -119
- package/generators/client/templates/vue/webpack/webpack.dev.js.ejs +19 -80
- package/generators/client/templates/vue/webpack/webpack.microfrontend.js.jhi.vue.ejs +77 -0
- package/generators/client/templates/vue/webpack/webpack.prod.js.ejs +5 -46
- package/generators/cloudfoundry/esm.mjs +21 -0
- package/generators/cloudfoundry/generator.spec.mjs +47 -0
- package/generators/cloudfoundry/index.js +38 -24
- package/generators/common/esm.mjs +21 -0
- package/generators/common/files.js +9 -2
- package/generators/common/generator.spec.mjs +47 -0
- package/generators/common/index.js +66 -11
- package/generators/common/templates/.husky/pre-commit +4 -0
- package/generators/common/templates/.prettierrc.ejs +1 -1
- package/generators/common/templates/{README.md.ejs → README.md.jhi.ejs} +85 -171
- package/generators/common/templates/package.json +5 -5
- package/generators/cypress/esm.mjs +21 -0
- package/generators/cypress/generator.spec.mjs +47 -0
- package/generators/cypress/index.js +17 -14
- package/generators/cypress/templates/cypress.json.ejs +8 -1
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/login-page.spec.ts.ejs +4 -4
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/password-page.spec.ts.ejs +2 -2
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/register-page.spec.ts.ejs +1 -1
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/reset-password-page.spec.ts.ejs +1 -1
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/settings-page.spec.ts.ejs +4 -4
- package/generators/cypress/templates/src/test/javascript/cypress/integration/administration/administration.spec.ts.ejs +1 -3
- package/generators/cypress/templates/src/test/javascript/cypress/integration/lighthouse.audits.ts.ejs +3 -3
- package/generators/cypress/templates/src/test/javascript/cypress/plugins/index.ts.ejs +6 -44
- package/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs +30 -2
- package/generators/cypress/templates/src/test/javascript/cypress/support/entity.ts.ejs +4 -4
- package/generators/cypress/templates/src/test/javascript/cypress/support/index.ts.ejs +1 -1
- package/generators/cypress/templates/src/test/javascript/cypress/support/management.ts.ejs +1 -1
- package/generators/cypress/templates/src/test/javascript/cypress/support/navbar.ts.ejs +1 -1
- package/generators/cypress/templates/src/test/javascript/cypress/support/oauth2.ts.ejs +104 -79
- package/generators/database-changelog/esm.mjs +21 -0
- package/generators/database-changelog/generator.spec.mjs +47 -0
- package/generators/database-changelog/index.js +35 -24
- package/generators/database-changelog-liquibase/esm.mjs +21 -0
- package/generators/database-changelog-liquibase/generator.spec.mjs +47 -0
- package/generators/database-changelog-liquibase/index.js +17 -11
- package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/added_entity.xml.ejs +2 -1
- package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity.xml.ejs +3 -3
- package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +4 -4
- package/generators/docker-base.js +3 -3
- package/generators/docker-compose/esm.mjs +21 -0
- package/generators/docker-compose/generator.spec.mjs +44 -0
- package/generators/docker-compose/index.js +23 -11
- package/generators/docker-compose/templates/README-DOCKER-COMPOSE.md.ejs +1 -1
- package/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +113 -39
- package/generators/docker-prompts.js +3 -3
- package/generators/entities/esm.mjs +21 -0
- package/generators/entities/generator.spec.mjs +47 -0
- package/generators/entities/index.js +37 -28
- package/generators/entities-client/esm.mjs +21 -0
- package/generators/entities-client/generator.spec.mjs +47 -0
- package/generators/entities-client/index.js +12 -9
- package/generators/entity/esm.mjs +21 -0
- package/generators/entity/generator.spec.mjs +47 -0
- package/generators/entity/index.js +54 -36
- package/generators/entity-client/esm.mjs +21 -0
- package/generators/entity-client/files.js +6 -11
- package/generators/entity-client/generator.spec.mjs +47 -0
- package/generators/entity-client/index.js +77 -10
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.spec.ts.ejs +42 -44
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.spec.ts.ejs +57 -54
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity-management.module.ts.ejs +2 -2
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +2 -2
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.spec.ts.ejs +105 -107
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +17 -4
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/infinite-scroll-template.ejs +3 -4
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/pagination-template.ejs +6 -0
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.spec.ts.ejs +52 -54
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing.module.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.spec.ts.ejs +173 -175
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.html.ejs +2 -4
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.spec.ts.ejs +193 -195
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +7 -0
- package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +262 -110
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-delete-dialog.tsx.ejs +5 -2
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +26 -23
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.tsx.ejs +7 -7
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-details.component.ts.ejs +5 -0
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.component.ts.ejs +22 -3
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.vue.ejs +6 -9
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.component.ts.ejs +9 -1
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.model.ts.ejs +1 -1
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.service.ts.ejs +2 -6
- package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-details.component.spec.ts.ejs +2 -1
- package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-update.component.spec.ts.ejs +2 -0
- package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.component.spec.ts.ejs +3 -1
- package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.service.spec.ts.ejs +1 -1
- package/generators/entity-i18n/esm.mjs +21 -0
- package/generators/entity-i18n/files.js +61 -26
- package/generators/entity-i18n/generator.spec.mjs +47 -0
- package/generators/entity-i18n/index.js +12 -9
- package/generators/entity-i18n/templates/i18n/entity_hr.json.ejs +0 -0
- package/generators/entity-i18n/templates/i18n/entity_pa.json.ejs +69 -0
- package/generators/entity-server/esm.mjs +21 -0
- package/generators/entity-server/files-couchbase.js +73 -0
- package/generators/entity-server/files.js +102 -31
- package/generators/entity-server/generator.spec.mjs +47 -0
- package/generators/entity-server/index.js +29 -13
- package/generators/entity-server/templates/couchbase/src/main/java/package/domain/Entity.java.jhi.spring_data_couchbase.ejs +212 -0
- package/generators/entity-server/templates/couchbase/src/main/java/package/repository/EntityRepository.java.ejs +138 -0
- package/generators/entity-server/templates/{src → couchbase/src}/main/resources/config/couchmove/changelog/entity.fts.ejs +6 -3
- package/generators/entity-server/templates/partials/save_template.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/common/search_stream_template.ejs +3 -3
- package/generators/entity-server/templates/src/main/java/package/common/search_template.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +375 -0
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.elastic_search.ejs +25 -0
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.hibernate_cache.ejs +41 -0
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.javax_persistence.ejs +130 -0
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.javax_validation.ejs +51 -0
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_cassandra.ejs +48 -0
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_mongodb.ejs +82 -0
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_neo4j.ejs +97 -0
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_reactive.ejs +114 -0
- package/generators/entity-server/templates/src/main/java/package/domain/enumeration/Enum.java.ejs +11 -4
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository.java.ejs +10 -15
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +17 -30
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +6 -9
- package/generators/entity-server/templates/src/main/java/package/repository/EntitySqlHelper_reactive.java.ejs +46 -0
- package/generators/entity-server/templates/src/main/java/package/repository/rowmapper/EntityRowMapper.java.ejs +3 -3
- package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +61 -10
- package/generators/entity-server/templates/src/main/java/package/service/EntityQueryService.java.ejs +12 -8
- package/generators/entity-server/templates/src/main/java/package/service/EntityService.java.ejs +4 -4
- package/generators/entity-server/templates/src/main/java/package/service/criteria/EntityCriteria.java.ejs +18 -13
- package/generators/entity-server/templates/src/main/java/package/service/dto/EntityDTO.java.ejs +8 -4
- package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +9 -9
- package/generators/entity-server/templates/src/main/java/package/service/mapper/BaseEntityMapper.java.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +7 -3
- package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +52 -54
- package/generators/entity-server/templates/src/test/java/package/domain/EntityTest.java.ejs +1 -1
- package/generators/entity-server/templates/src/test/java/package/repository/search/EntitySearchRepositoryMockConfiguration.java.ejs +1 -1
- package/generators/entity-server/templates/src/test/java/package/service/dto/EntityDTOTest.java.ejs +1 -1
- package/generators/entity-server/templates/src/test/java/package/service/mapper/EntityMapperTest.java.ejs +1 -1
- package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +36 -22
- package/generators/export-jdl/esm.mjs +21 -0
- package/generators/export-jdl/generator.spec.mjs +44 -0
- package/generators/export-jdl/index.js +2 -2
- package/generators/gae/esm.mjs +21 -0
- package/generators/gae/generator.spec.mjs +47 -0
- package/generators/gae/index.js +60 -41
- package/generators/gae/templates/dispatch.yaml.ejs +2 -2
- package/generators/generator-base-blueprint.js +35 -37
- package/generators/generator-base-docker.js +4 -24
- package/generators/generator-base-private.js +59 -116
- package/generators/generator-base.js +544 -91
- package/generators/generator-constants.js +43 -29
- package/generators/generator-defaults.js +1 -0
- package/generators/generator-list.js +27 -2
- package/generators/generator-transforms.js +31 -24
- package/generators/gradle/__snapshots__/generator.spec.cjs.snap +59 -0
- package/generators/gradle/constants.cjs +29 -0
- package/generators/gradle/files.cjs +37 -0
- package/generators/gradle/generator.spec.cjs +71 -0
- package/generators/gradle/index.cjs +136 -0
- package/generators/gradle/templates/.eslintignore.jhi.gradle.ejs +19 -0
- package/generators/gradle/templates/.gitignore.jhi.gradle.ejs +28 -0
- package/generators/gradle/templates/.prettierignore.jhi.gradle.ejs +22 -0
- package/generators/gradle/templates/build.gradle.jhi.ejs +48 -0
- package/generators/gradle/templates/gradle.properties.jhi.ejs +57 -0
- package/generators/gradle/templates/settings.gradle.jhi.ejs +20 -0
- package/generators/heroku/esm.mjs +21 -0
- package/generators/heroku/generator.spec.mjs +47 -0
- package/generators/heroku/index.js +92 -80
- package/generators/heroku/templates/Procfile.ejs +1 -1
- package/generators/heroku/templates/application-heroku.yml.ejs +9 -9
- package/generators/heroku/templates/bootstrap-heroku.yml.ejs +2 -2
- package/generators/heroku/templates/pom-profile.xml.ejs +1 -1
- package/generators/info/esm.mjs +21 -0
- package/generators/info/generator.spec.mjs +44 -0
- package/generators/info/index.js +4 -2
- package/generators/init/__snapshots__/generator.spec.cjs.snap +65 -0
- package/generators/init/config.cjs +36 -0
- package/generators/init/constants.cjs +35 -0
- package/generators/init/files.cjs +51 -0
- package/generators/init/generator.spec.cjs +112 -0
- package/generators/init/index.cjs +283 -0
- package/generators/init/mixin.cjs +76 -0
- package/generators/init/options.cjs +27 -0
- package/generators/init/templates/.editorconfig.jhi.ejs +40 -0
- package/generators/init/templates/.eslintignore.jhi.ejs +21 -0
- package/generators/init/templates/.gitattributes.jhi.ejs +170 -0
- package/generators/init/templates/.gitignore.jhi.ejs +128 -0
- package/generators/init/templates/.husky/pre-commit +4 -0
- package/generators/{client/templates/vue/webpack/utils.js.ejs → init/templates/.lintstagedrc.js.ejs} +1 -10
- package/generators/init/templates/.prettierignore.jhi.ejs +23 -0
- package/generators/init/templates/.prettierrc.yml.jhi.ejs +29 -0
- package/generators/init/templates/README.md.ejs +19 -0
- package/generators/init/templates/package.json +6 -0
- package/generators/init/templates/package.json.ejs +41 -0
- package/generators/java/__snapshots__/generator.spec.cjs.snap +118 -0
- package/generators/java/config.cjs +43 -0
- package/generators/java/constants.cjs +69 -0
- package/generators/java/files.cjs +26 -0
- package/generators/java/generator.spec.cjs +87 -0
- package/generators/java/index.cjs +226 -0
- package/generators/java/mixin.cjs +120 -0
- package/generators/java/options.cjs +32 -0
- package/generators/java/templates/.editorconfig.jhi.java.ejs +23 -0
- package/generators/java/templates/.gitignore.jhi.java.ejs +34 -0
- package/generators/java/templates/.prettierrc.yml.jhi.java.ejs +25 -0
- package/generators/kubernetes/esm.mjs +21 -0
- package/generators/kubernetes/files.js +20 -8
- package/generators/kubernetes/generator.spec.mjs +44 -0
- package/generators/kubernetes/index.js +126 -64
- package/generators/kubernetes/kubernetes-constants.js +50 -0
- package/generators/kubernetes/prompts.js +25 -16
- package/generators/kubernetes/templates/README-KUBERNETES.md.ejs +12 -13
- package/generators/kubernetes/templates/db/couchbase.yml.ejs +3 -3
- package/generators/kubernetes/templates/db/elasticsearch.yml.ejs +5 -5
- package/generators/kubernetes/templates/db/mariadb.yml.ejs +5 -5
- package/generators/kubernetes/templates/db/mongodb.yml.ejs +2 -2
- package/generators/kubernetes/templates/db/mssql.yml.ejs +5 -5
- package/generators/kubernetes/templates/db/mysql.yml.ejs +5 -5
- package/generators/kubernetes/templates/db/neo4j.yml.ejs +5 -5
- package/generators/kubernetes/templates/db/postgresql.yml.ejs +5 -5
- package/generators/kubernetes/templates/deployment.yml.ejs +61 -56
- package/generators/kubernetes/templates/ingress.yml.ejs +2 -2
- package/generators/kubernetes/templates/istio/destination-rule.yml.ejs +1 -1
- package/generators/kubernetes/templates/istio/gateway/grafana-gateway.yml.ejs +5 -2
- package/generators/kubernetes/templates/istio/gateway/jhipster-grafana-gateway.yml.ejs +5 -2
- package/generators/kubernetes/templates/istio/gateway/kiali-gateway.yml.ejs +10 -8
- package/generators/kubernetes/templates/istio/gateway/zipkin-gateway.yml.ejs +5 -2
- package/generators/kubernetes/templates/istio/gateway.yml.ejs +11 -9
- package/generators/kubernetes/templates/kubectl-apply.sh.ejs +24 -23
- package/generators/kubernetes/templates/kustomize/kustomization.yml.ejs +27 -27
- package/generators/kubernetes/templates/messagebroker/kafka.yml.ejs +4 -4
- package/generators/kubernetes/templates/monitoring/jhipster-grafana-dashboard.yml.ejs +2 -2
- package/generators/kubernetes/templates/monitoring/jhipster-grafana.yml.ejs +6 -6
- package/generators/kubernetes/templates/monitoring/jhipster-prometheus-crd.yml.ejs +2 -2
- package/generators/kubernetes/templates/registry/application-configmap.yml.ejs +6 -6
- package/generators/kubernetes/templates/registry/consul.yml.ejs +2 -2
- package/generators/kubernetes/templates/registry/jhipster-registry.yml.ejs +4 -4
- package/generators/kubernetes/templates/secret/couchbase-secret.yml.ejs +9 -0
- package/generators/kubernetes/templates/service.yml.ejs +8 -8
- package/generators/kubernetes-base.js +44 -18
- package/generators/kubernetes-helm/esm.mjs +21 -0
- package/generators/kubernetes-helm/files.js +20 -21
- package/generators/kubernetes-helm/generator.spec.mjs +44 -0
- package/generators/kubernetes-helm/index.js +106 -46
- package/generators/kubernetes-helm/templates/README-KUBERNETES-HELM.md.ejs +2 -3
- package/generators/kubernetes-helm/templates/app/Chart.yml.ejs +27 -0
- package/generators/kubernetes-helm/templates/app/helpers.tpl.ejs +4 -15
- package/generators/kubernetes-helm/templates/app/requirements.yml.ejs +11 -6
- package/generators/kubernetes-helm/templates/app/values.yml.ejs +73 -10
- package/generators/kubernetes-helm/templates/csvc/Chart.yml.ejs +17 -0
- package/generators/kubernetes-helm/templates/csvc/helpers.tpl.ejs +1 -1
- package/generators/kubernetes-helm/templates/csvc/requirements.yml.ejs +3 -3
- package/generators/kubernetes-helm/templates/csvc/values.yml.ejs +6 -6
- package/generators/kubernetes-helm/templates/helm-apply.sh.ejs +2 -2
- package/generators/kubernetes-helm/templates/helm-upgrade.sh.ejs +1 -1
- package/generators/kubernetes-knative/esm.mjs +21 -0
- package/generators/kubernetes-knative/files.js +30 -19
- package/generators/kubernetes-knative/generator.spec.mjs +44 -0
- package/generators/kubernetes-knative/index.js +134 -72
- package/generators/kubernetes-knative/prompts.js +7 -3
- package/generators/kubernetes-knative/templates/README-KUBERNETES-KNATIVE.md.ejs +5 -5
- package/generators/kubernetes-knative/templates/helm-apply.sh.ejs +1 -1
- package/generators/kubernetes-knative/templates/istio/gateway.yml.ejs +10 -8
- package/generators/kubernetes-knative/templates/kubectl-apply.sh.ejs +24 -19
- package/generators/kubernetes-knative/templates/service.yml.ejs +32 -32
- package/generators/languages/esm.mjs +21 -0
- package/generators/languages/files.js +73 -0
- package/generators/languages/generator.spec.mjs +47 -0
- package/generators/languages/index.js +45 -22
- package/generators/languages/prompts.js +1 -1
- package/generators/languages/templates/src/main/resources/i18n/messages_hr.properties.ejs +0 -0
- package/generators/languages/templates/src/main/resources/i18n/messages_pa.properties.ejs +41 -0
- package/generators/languages/templates/src/main/webapp/i18n/al/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/al/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/ar-ly/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/ar-ly/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/bg/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/bg/health.json.ejs +19 -16
- package/generators/languages/templates/src/main/webapp/i18n/bn/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/bn/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/by/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/by/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/ca/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/ca/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/cs/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/cs/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/da/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/da/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/de/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/de/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/el/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/el/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/en/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/en/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/es/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/es/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/et/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/et/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/fa/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/fa/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/fi/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/fi/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/fr/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/fr/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/gl/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/gl/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/hi/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/hi/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/hr/activate.json.ejs +0 -0
- package/generators/languages/templates/src/main/webapp/i18n/hr/configuration.json +0 -0
- package/generators/languages/templates/src/main/webapp/i18n/hr/error.json +0 -0
- package/generators/languages/templates/src/main/webapp/i18n/hr/gateway.json +0 -0
- package/generators/languages/templates/src/main/webapp/i18n/hr/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/hr/health.json.ejs +15 -13
- package/generators/languages/templates/src/main/webapp/i18n/hr/home.json +0 -0
- package/generators/languages/templates/src/main/webapp/i18n/hr/login.json +0 -0
- package/generators/languages/templates/src/main/webapp/i18n/hr/logs.json +0 -0
- package/generators/languages/templates/src/main/webapp/i18n/hr/metrics.json +0 -0
- package/generators/languages/templates/src/main/webapp/i18n/hr/password.json +0 -0
- package/generators/languages/templates/src/main/webapp/i18n/hr/register.json +0 -0
- package/generators/languages/templates/src/main/webapp/i18n/hr/reset.json.ejs +1 -2
- package/generators/languages/templates/src/main/webapp/i18n/hr/sessions.json +0 -0
- package/generators/languages/templates/src/main/webapp/i18n/hr/settings.json +0 -0
- package/generators/languages/templates/src/main/webapp/i18n/hr/tracker.json +0 -0
- package/generators/languages/templates/src/main/webapp/i18n/hr/user-management.json +0 -0
- package/generators/languages/templates/src/main/webapp/i18n/hu/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/hu/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/hy/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/hy/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/in/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/in/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/it/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/it/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/ja/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/ja/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/ko/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/ko/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/mr/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/mr/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/my/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/my/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/nl/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/nl/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/pa/activate.json.ejs +27 -0
- package/generators/languages/templates/src/main/webapp/i18n/pa/configuration.json +10 -0
- package/generators/languages/templates/src/main/webapp/i18n/pa/error.json +14 -0
- package/generators/languages/templates/src/main/webapp/i18n/pa/gateway.json +15 -0
- package/generators/languages/templates/src/main/webapp/i18n/pa/global.json.ejs +162 -0
- package/generators/languages/templates/src/main/webapp/i18n/pa/health.json.ejs +71 -0
- package/generators/languages/templates/src/main/webapp/i18n/pa/home.json +19 -0
- package/generators/languages/templates/src/main/webapp/i18n/pa/login.json +19 -0
- package/generators/languages/templates/src/main/webapp/i18n/pa/logs.json +11 -0
- package/generators/languages/templates/src/main/webapp/i18n/pa/metrics.json +102 -0
- package/generators/languages/templates/src/main/webapp/i18n/pa/password.json +12 -0
- package/generators/languages/templates/src/main/webapp/i18n/pa/register.json +24 -0
- package/generators/languages/templates/src/main/webapp/i18n/pa/reset.json.ejs +44 -0
- package/generators/languages/templates/src/main/webapp/i18n/pa/sessions.json +15 -0
- package/generators/languages/templates/src/main/webapp/i18n/pa/settings.json +32 -0
- package/generators/languages/templates/src/main/webapp/i18n/pa/tracker.json +12 -0
- package/generators/languages/templates/src/main/webapp/i18n/pa/user-management.json +31 -0
- package/generators/languages/templates/src/main/webapp/i18n/pl/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/pl/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/pt-br/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/pt-br/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/pt-pt/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/pt-pt/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/ro/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/ro/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/ru/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/ru/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/si/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/si/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/sk/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/sk/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/sr/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/sr/health.json.ejs +16 -14
- package/generators/languages/templates/src/main/webapp/i18n/sv/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/sv/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/ta/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/ta/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/te/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/te/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/th/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/th/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/tr/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/tr/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/ua/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/ua/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/health.json.ejs +16 -14
- package/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/vi/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/vi/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/zh-cn/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/zh-cn/health.json.ejs +17 -15
- package/generators/languages/templates/src/main/webapp/i18n/zh-tw/global.json.ejs +2 -2
- package/generators/languages/templates/src/main/webapp/i18n/zh-tw/health.json.ejs +17 -15
- package/generators/languages/templates/src/test/resources/i18n/messages_hr.properties.ejs +0 -0
- package/generators/languages/templates/src/test/resources/i18n/messages_pa.properties.ejs +4 -0
- package/generators/maven/__snapshots__/generator.spec.cjs.snap +53 -0
- package/generators/maven/constants.cjs +27 -0
- package/generators/maven/files.cjs +36 -0
- package/generators/maven/generator.spec.cjs +78 -0
- package/generators/maven/index.cjs +131 -0
- package/generators/maven/templates/.eslintignore.jhi.maven.ejs +19 -0
- package/generators/maven/templates/.gitignore.jhi.maven.ejs +9 -0
- package/generators/maven/templates/.mvn/wrapper/MavenWrapperDownloader.java +117 -0
- package/generators/maven/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
- package/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +2 -0
- package/generators/maven/templates/.prettierignore.jhi.maven.ejs +3 -0
- package/generators/maven/templates/mvnw +310 -0
- package/generators/maven/templates/mvnw.cmd +182 -0
- package/generators/maven/templates/pom.xml.jhi.ejs +98 -0
- package/generators/openapi-client/esm.mjs +21 -0
- package/generators/openapi-client/files.js +21 -15
- package/generators/openapi-client/generator.spec.mjs +47 -0
- package/generators/openapi-client/index.js +80 -28
- package/generators/openapi-client/prompts.js +6 -2
- package/generators/openshift/esm.mjs +21 -0
- package/generators/openshift/files.js +12 -5
- package/generators/openshift/generator.spec.mjs +44 -0
- package/generators/openshift/index.js +136 -64
- package/generators/openshift/prompts.js +12 -4
- package/generators/openshift/templates/apply.sh.ejs +6 -6
- package/generators/openshift/templates/db/cassandra.yml.ejs +8 -9
- package/generators/openshift/templates/db/couchbase.yml.ejs +8 -9
- package/generators/openshift/templates/db/elasticsearch.yml.ejs +8 -9
- package/generators/openshift/templates/db/mariadb.yml.ejs +8 -9
- package/generators/openshift/templates/db/mongodb.yml.ejs +8 -9
- package/generators/openshift/templates/db/mysql.yml.ejs +8 -9
- package/generators/openshift/templates/db/postgresql.yml.ejs +8 -9
- package/generators/openshift/templates/deployment.yml.ejs +46 -46
- package/generators/openshift/templates/messagebroker/kafka.yml.ejs +13 -14
- package/generators/openshift/templates/monitoring/jhipster-metrics.yml.ejs +17 -17
- package/generators/openshift/templates/registry/application-configmap.yml.ejs +6 -6
- package/generators/options.js +63 -0
- package/generators/page/esm.mjs +21 -0
- package/generators/page/generator.spec.mjs +47 -0
- package/generators/page/index.js +17 -13
- package/generators/project-name/config.cjs +40 -0
- package/generators/project-name/constants.cjs +37 -0
- package/generators/project-name/generator.spec.cjs +43 -0
- package/generators/project-name/index.cjs +194 -0
- package/generators/project-name/mixin.cjs +82 -0
- package/generators/project-name/options.cjs +33 -0
- package/generators/server/__snapshots__/generator.spec.mjs.snap +1848 -0
- package/generators/server/esm.mjs +21 -0
- package/generators/server/files-couchbase.js +155 -0
- package/generators/server/files-sql.js +52 -0
- package/generators/server/files.js +302 -286
- package/generators/server/generator.spec.mjs +52 -0
- package/generators/server/index.js +193 -97
- package/generators/server/needle-api/needle-server-cache.js +7 -8
- package/generators/server/prompts.js +104 -62
- package/generators/server/templates/.mvn/wrapper/MavenWrapperDownloader.java +1 -1
- package/generators/server/templates/.mvn/wrapper/maven-wrapper.properties +1 -1
- package/generators/server/templates/build.gradle.ejs +43 -9
- package/generators/server/templates/checkstyle.xml.ejs +2 -2
- package/generators/server/templates/{src → couchbase/src}/main/docker/couchbase/Couchbase.Dockerfile.ejs +0 -0
- package/generators/server/templates/{src → couchbase/src}/main/docker/couchbase/scripts/configure-node.sh.ejs +4 -4
- package/generators/server/templates/{src → couchbase/src}/main/docker/couchbase-cluster.yml.ejs +0 -0
- package/generators/server/templates/{src → couchbase/src}/main/docker/couchbase.yml.ejs +0 -0
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryFactory.java.ejs +83 -0
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryFactoryBean.java.ejs +40 -0
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryQuery.java.ejs +44 -0
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomN1qlQueryCreator.java.ejs +162 -0
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomN1qlRepositoryQueryExecutor.java.ejs +104 -0
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/package-info.java.ejs +25 -0
- package/generators/server/templates/couchbase/src/main/java/package/repository/JHipsterCouchbaseRepository.java.ejs +114 -0
- package/generators/server/templates/couchbase/src/main/java/package/repository/PersistentTokenRepository_couchbase.java.ejs +49 -0
- package/generators/server/templates/{src → couchbase/src}/main/resources/config/couchmove/changelog/V0.1__initial_setup/ROLE_ADMIN.json.ejs +0 -0
- package/generators/server/templates/{src → couchbase/src}/main/resources/config/couchmove/changelog/V0.1__initial_setup/ROLE_USER.json.ejs +0 -0
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/user__admin.json.ejs +18 -0
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/user__user.json.ejs +17 -0
- package/generators/server/templates/{src → couchbase/src}/main/resources/config/couchmove/changelog/V0__create_indexes.n1ql.ejs +3 -6
- package/generators/server/templates/couchbase/src/test/java/package/CouchbaseTestContainerExtension.java.ejs +55 -0
- package/generators/server/templates/{src/test/java/package/repository/CustomN1qlCouchbaseRepositoryTest.java.ejs → couchbase/src/test/java/package/repository/JHipsterCouchbaseRepositoryTest.java.ejs} +3 -4
- package/generators/server/templates/gradle/docker.gradle.ejs +3 -3
- package/generators/server/templates/gradle/profile_dev.gradle.ejs +36 -12
- package/generators/server/templates/gradle/profile_prod.gradle.ejs +7 -7
- package/generators/server/templates/gradle/war.gradle.ejs +4 -4
- package/generators/server/templates/gradle.properties.ejs +21 -17
- package/generators/server/templates/mvnw +1 -1
- package/generators/server/templates/mvnw.cmd +1 -1
- package/generators/server/templates/npmw +1 -1
- package/generators/server/templates/npmw.cmd +1 -1
- package/generators/server/templates/package.json.ejs +4 -8
- package/generators/server/templates/pom.xml.ejs +352 -160
- package/generators/server/templates/settings.gradle.ejs +38 -9
- package/generators/server/templates/sql/reactive/src/main/java/package/repository/UserSqlHelper.java.ejs +48 -0
- package/generators/server/templates/src/main/docker/app.yml.ejs +80 -75
- package/generators/server/templates/src/main/docker/config/README.md.ejs +2 -2
- package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +117 -41
- package/generators/server/templates/src/main/docker/elasticsearch.yml.ejs +12 -1
- package/generators/server/templates/src/main/docker/jhipster-control-center.yml.ejs +8 -8
- package/generators/server/templates/src/main/docker/jhipster-registry.yml.ejs +3 -3
- package/generators/server/templates/src/main/docker/prometheus/prometheus.yml.ejs +1 -1
- package/generators/server/templates/src/main/java/package/Application.java.ejs +6 -5
- package/generators/server/templates/src/main/java/package/aop/logging/LoggingAspect.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/client/OAuth2InterceptedFeignConfiguration.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/config/CacheConfiguration.java.ejs +94 -96
- package/generators/server/templates/src/main/java/package/config/Constants.java.ejs +8 -8
- package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_cassandra.java.ejs +2 -8
- package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_couchbase.java.ejs +116 -33
- package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_mongodb.java.ejs +4 -6
- package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_neo4j.java.ejs +4 -6
- package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_sql.java.ejs +13 -13
- package/generators/server/templates/src/main/java/package/config/ElasticsearchConfiguration.java.ejs +5 -4
- package/generators/server/templates/src/main/java/package/config/FeignConfiguration.java.ejs +6 -1
- package/generators/server/templates/src/main/java/package/config/JacksonConfiguration.java.ejs +3 -3
- package/generators/server/templates/src/main/java/package/config/LiquibaseConfiguration.java.ejs +5 -5
- package/generators/server/templates/src/main/java/package/config/LocaleConfiguration.java.ejs +1 -4
- package/generators/server/templates/src/main/java/package/config/LoggingConfiguration.java.ejs +13 -13
- package/generators/server/templates/src/main/java/package/config/OAuth2Configuration.java.ejs +38 -0
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +99 -102
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +114 -66
- package/generators/server/templates/src/main/java/package/config/WebConfigurer.java.ejs +31 -32
- package/generators/server/templates/src/main/java/package/config/WebsocketSecurityConfiguration.java.ejs +4 -2
- package/generators/server/templates/src/main/java/package/config/apidocs/GatewaySwaggerResourcesProvider.java.ejs +5 -5
- package/generators/server/templates/src/main/java/package/config/dbmigrations/InitialSetupMigration.java.ejs +2 -6
- package/generators/server/templates/src/main/java/package/domain/AbstractAuditingEntity.java.ejs +48 -36
- package/generators/server/templates/src/main/java/package/domain/Authority.java.ejs +20 -20
- package/generators/server/templates/src/main/java/package/domain/PersistentToken.java.ejs +55 -55
- package/generators/server/templates/src/main/java/package/domain/User.java.ejs +185 -160
- package/generators/server/templates/src/main/java/package/management/SecurityMetersService.java.ejs +68 -0
- package/generators/server/templates/src/main/java/package/repository/AuthorityRepository.java.ejs +40 -15
- package/generators/server/templates/src/main/java/package/repository/PersistentTokenRepository.java.ejs +14 -36
- package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +209 -163
- package/generators/server/templates/src/main/java/package/repository/rowmapper/UserRowMapper.java.ejs +4 -4
- package/generators/server/templates/src/main/java/package/repository/search/UserSearchRepository.java.ejs +33 -7
- package/generators/server/templates/src/main/java/package/repository/search/package-info.java.ejs +2 -2
- package/generators/server/templates/src/main/java/package/security/DomainUserDetailsService.java.ejs +11 -11
- package/generators/server/templates/src/main/java/package/security/PersistentTokenRememberMeServices.java.ejs +43 -45
- package/generators/server/templates/src/main/java/package/security/SecurityUtils.java.ejs +62 -29
- package/generators/server/templates/src/main/java/package/security/jwt/JWTFilter.java.ejs +10 -10
- package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +31 -6
- package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +29 -4
- package/generators/server/templates/src/main/java/package/service/MailService.java.ejs +2 -2
- package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +326 -304
- package/generators/server/templates/src/main/java/package/service/dto/AdminUserDTO.java.ejs +24 -24
- package/generators/server/templates/src/main/java/package/service/dto/UserDTO.java.ejs +7 -7
- package/generators/server/templates/src/main/java/package/service/mapper/UserMapper.java.ejs +11 -11
- package/generators/server/templates/src/main/java/package/web/filter/OAuth2ReactiveRefreshTokensWebFilter.java.ejs +71 -0
- package/generators/server/templates/src/main/java/package/web/filter/OAuth2RefreshTokensWebFilter.java.ejs +103 -0
- package/generators/server/templates/src/main/java/package/web/filter/SpaWebFilter.java.ejs +3 -3
- package/generators/server/templates/src/main/java/package/web/rest/AccountResource.java.ejs +77 -76
- package/generators/server/templates/src/main/java/package/web/rest/ClientForwardController.java.ejs +3 -3
- package/generators/server/templates/src/main/java/package/web/rest/KafkaResource.java.ejs +12 -12
- package/generators/server/templates/src/main/java/package/web/rest/LogoutResource.java.ejs +58 -22
- package/generators/server/templates/src/main/java/package/web/rest/PublicUserResource.java.ejs +62 -39
- package/generators/server/templates/src/main/java/package/web/rest/UserJWTController.java.ejs +3 -3
- package/generators/server/templates/src/main/java/package/web/rest/UserResource.java.ejs +51 -51
- package/generators/server/templates/src/main/java/package/web/rest/errors/ErrorConstants.java.ejs +4 -4
- package/generators/server/templates/src/main/java/package/web/rest/errors/ExceptionTranslator.java.ejs +19 -19
- package/generators/server/templates/src/main/java/package/web/rest/vm/ManagedUserVM.java.ejs +4 -4
- package/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +105 -102
- package/generators/server/templates/src/main/resources/config/application-prod.yml.ejs +78 -78
- package/generators/server/templates/src/main/resources/config/application-tls.yml.ejs +1 -1
- package/generators/server/templates/src/main/resources/config/application.yml.ejs +42 -55
- package/generators/server/templates/src/main/resources/config/bootstrap-prod.yml.ejs +7 -7
- package/generators/server/templates/src/main/resources/config/bootstrap.yml.ejs +6 -6
- package/generators/server/templates/src/main/resources/config/cql/changelog/create-tables.cql.ejs +1 -1
- package/generators/server/templates/src/main/resources/config/liquibase/changelog/initial_schema.xml.ejs +26 -34
- package/generators/server/templates/src/main/resources/config/liquibase/data/user.csv.ejs +2 -2
- package/generators/server/templates/src/main/resources/config/liquibase/data/user_authority.csv.ejs +1 -1
- package/generators/server/templates/src/main/resources/config/liquibase/master.xml.ejs +14 -14
- package/generators/server/templates/src/main/resources/config/{couchmove/changelog/V0.1__initial_setup → neo4j/migrations}/user__admin.json.ejs +2 -2
- package/generators/server/templates/src/main/resources/config/{couchmove/changelog/V0.1__initial_setup → neo4j/migrations}/user__user.json.ejs +2 -2
- package/generators/server/templates/src/main/resources/h2.server.properties.ejs +2 -2
- package/generators/server/templates/src/main/resources/logback-spring.xml.ejs +55 -55
- package/generators/server/templates/src/main/resources/static/microservices_index.html.ejs +1 -1
- package/generators/server/templates/src/main/resources/swagger/api.yml.ejs +6 -6
- package/generators/server/templates/src/test/java/package/IntegrationTest.java.ejs +13 -7
- package/generators/server/templates/src/test/java/package/ReactiveSqlTestContainerExtension.java.ejs +9 -9
- package/generators/server/templates/src/test/java/package/config/JHipsterBlockHoundIntegration.java.ejs +3 -0
- package/generators/server/templates/src/test/java/package/config/TestSecurityConfiguration.java.ejs +27 -28
- package/generators/server/templates/src/test/java/package/config/WebConfigurerTest.java.ejs +5 -7
- package/generators/server/templates/src/test/java/package/cucumber/CucumberIT.java.ejs +6 -4
- package/generators/server/templates/src/test/java/package/management/SecurityMetersServiceTests.java.ejs +113 -0
- package/generators/server/templates/src/test/java/package/repository/timezone/DateTimeWrapper.java.ejs +3 -3
- package/generators/server/templates/src/test/java/package/security/DomainUserDetailsServiceIT.java.ejs +24 -24
- package/generators/server/templates/src/test/java/package/security/SecurityUtilsUnitTest.java.ejs +97 -10
- package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs +23 -18
- package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderSecurityMetersTests.java.ejs +198 -0
- package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderTest.java.ejs +13 -3
- package/generators/server/templates/src/test/java/package/security/oauth2/AuthorizationHeaderUtilTest.java.ejs +16 -2
- package/generators/server/templates/src/test/java/package/security/oauth2/CustomClaimConverterIT.java.ejs +108 -4
- package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +4 -4
- package/generators/server/templates/src/test/java/package/service/UserServiceIT.java.ejs +133 -133
- package/generators/server/templates/src/test/java/package/service/mapper/UserMapperTest.java.ejs +17 -17
- package/generators/server/templates/src/test/java/package/test/util/OAuth2TestUtil.java.ejs +104 -0
- package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +397 -338
- package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_oauth2.java.ejs +67 -70
- package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_skipUserManagement.java.ejs +20 -20
- package/generators/server/templates/src/test/java/package/web/rest/ClientForwardControllerTest.java.ejs +2 -2
- package/generators/server/templates/src/test/java/package/web/rest/KafkaResourceIT.java.ejs +14 -14
- package/generators/server/templates/src/test/java/package/web/rest/LogoutResourceIT.java.ejs +41 -34
- package/generators/server/templates/src/test/java/package/web/rest/PublicUserResourceIT.java.ejs +59 -59
- package/generators/server/templates/src/test/java/package/web/rest/TestUtil.java.ejs +25 -55
- package/generators/server/templates/src/test/java/package/web/rest/UserJWTControllerIT.java.ejs +35 -35
- package/generators/server/templates/src/test/java/package/web/rest/UserResourceIT.java.ejs +263 -261
- package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT.java.ejs +13 -13
- package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorTestController.java.ejs +3 -3
- package/generators/server/templates/src/test/resources/config/application-testcontainers.yml.ejs +17 -17
- package/generators/server/templates/src/test/resources/config/application.yml.ejs +34 -36
- package/generators/server/templates/src/test/resources/config/bootstrap.yml.ejs +4 -4
- package/generators/server/templates/src/test/resources/logback.xml.ejs +54 -52
- package/generators/spring-boot/__snapshots__/generator.spec.cjs.snap +80 -0
- package/generators/spring-boot/config.cjs +30 -0
- package/generators/spring-boot/constants.cjs +28 -0
- package/generators/spring-boot/files.cjs +46 -0
- package/generators/spring-boot/generator.spec.cjs +64 -0
- package/generators/spring-boot/index.cjs +162 -0
- package/generators/spring-boot/mixin.cjs +82 -0
- package/generators/spring-boot/options.cjs +19 -0
- package/generators/spring-boot/templates/build.gradle.jhi.spring-boot.ejs +29 -0
- package/generators/spring-boot/templates/pom.xml.jhi.spring-boot.ejs +45 -0
- package/generators/spring-boot/templates/src/main/java/package/Application.java.jhi.ejs +31 -0
- package/generators/spring-boot/templates/src/main/resources/application.properties.jhi.ejs +19 -0
- package/generators/spring-boot/templates/src/test/java/package/ApplicationTests.java.jhi.ejs +31 -0
- package/generators/spring-controller/esm.mjs +21 -0
- package/generators/spring-controller/generator.spec.mjs +47 -0
- package/generators/spring-controller/index.js +39 -19
- package/generators/spring-controller/templates/src/main/java/package/web/rest/Resource.java.ejs +5 -5
- package/generators/spring-controller/templates/src/test/java/package/web/rest/ResourceIT.java.ejs +2 -2
- package/generators/spring-service/esm.mjs +21 -0
- package/generators/spring-service/generator.spec.mjs +47 -0
- package/generators/spring-service/index.js +33 -13
- package/generators/spring-service/templates/src/main/java/package/service/Service.java.ejs +16 -8
- package/generators/spring-service/templates/src/main/java/package/service/impl/ServiceImpl.java.ejs +9 -5
- package/generators/statistics.js +3 -1
- package/generators/upgrade/esm.mjs +21 -0
- package/generators/upgrade/generator.spec.mjs +44 -0
- package/generators/upgrade/index.js +5 -6
- package/generators/upgrade-config/esm.mjs +21 -0
- package/generators/upgrade-config/generator.spec.mjs +44 -0
- package/generators/upgrade-config/index.js +2 -2
- package/generators/utils.js +78 -11
- package/generators/workspaces/esm.mjs +21 -0
- package/generators/workspaces/generator.spec.mjs +47 -0
- package/generators/workspaces/index.js +20 -12
- package/jdl/converters/jdl-to-json/jdl-to-json-field-converter.js +8 -0
- package/jdl/converters/json-to-jdl-entity-converter.js +1 -0
- package/jdl/jhipster/application-options.js +18 -3
- package/jdl/jhipster/default-application-options.js +13 -7
- package/jdl/jhipster/deployment-options.js +25 -12
- package/jdl/jhipster/kubernetes-platform-types.js +40 -0
- package/jdl/jhipster/message-broker-types.js +1 -0
- package/jdl/jhipster/openapi-options.js +21 -0
- package/jdl/jhipster/openshift-platform-types.js +27 -0
- package/jdl/models/jdl-enum-value.js +2 -1
- package/jdl/models/jdl-enum.js +11 -1
- package/jdl/parsing/jdl-ast-builder-visitor.js +10 -2
- package/jdl/parsing/jdl-parser.js +3 -0
- package/jdl/parsing/lexer/application-tokens.js +4 -0
- package/jdl/parsing/validator.js +7 -1
- package/jdl/validators/application-validator.js +1 -0
- package/lib/constants/generators.mjs +20 -0
- package/lib/constants/priorities.cjs +131 -0
- package/lib/constants/priorities.mjs +19 -0
- package/lib/support/index.cjs +21 -0
- package/lib/support/mixin.cjs +199 -0
- package/lib/support/shared-data.cjs +74 -0
- package/package.json +55 -36
- package/utils/entity.js +21 -4
- package/utils/field.js +27 -3
- package/utils/liquibase.js +31 -20
- package/utils/multi-step-transform/index.js +52 -0
- package/utils/multi-step-transform/template-data.js +60 -0
- package/utils/multi-step-transform/template-file-fs.js +43 -0
- package/utils/multi-step-transform/template-file.js +84 -0
- package/NOTICE +0 -4
- package/generators/client/templates/angular/.npmrc.ejs +0 -1
- package/generators/client/templates/vue/webpack/dev.env.js.ejs +0 -18
- package/generators/client/templates/vue/webpack/env.js.ejs +0 -67
- package/generators/client/templates/vue/webpack/loader.conf.js.ejs +0 -20
- package/generators/client/templates/vue/webpack/prod.env.js.ejs +0 -16
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.ejs +0 -769
- package/generators/server/templates/src/main/java/package/config/OAuth2SsoConfiguration.java.ejs +0 -94
- package/generators/server/templates/src/main/java/package/config/OAuth2TokenServicesConfiguration.java.ejs +0 -68
- package/generators/server/templates/src/main/java/package/repository/CustomN1qlCouchbaseRepository.java.ejs +0 -135
- package/generators/server/templates/src/main/java/package/repository/CustomReactiveN1qlCouchbaseRepository.java.ejs +0 -157
- package/generators/server/templates/src/main/java/package/repository/N1qlCouchbaseRepository.java.ejs +0 -46
- package/generators/server/templates/src/main/java/package/repository/ReactiveN1qlCouchbaseRepository.java.ejs +0 -47
- package/generators/server/templates/src/test/java/package/config/DatabaseConfigurationIT.java.ejs +0 -112
package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs
CHANGED
|
@@ -18,8 +18,10 @@
|
|
|
18
18
|
-%>
|
|
19
19
|
package <%= packageName %>.security.jwt;
|
|
20
20
|
|
|
21
|
+
import <%= packageName %>.management.SecurityMetersService;
|
|
21
22
|
import <%= packageName %>.security.AuthoritiesConstants;
|
|
22
23
|
import tech.jhipster.config.JHipsterProperties;
|
|
24
|
+
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
|
|
23
25
|
import io.jsonwebtoken.io.Decoders;
|
|
24
26
|
import io.jsonwebtoken.security.Keys;
|
|
25
27
|
|
|
@@ -63,14 +65,17 @@ class JWTFilterTest {
|
|
|
63
65
|
JHipsterProperties jHipsterProperties = new JHipsterProperties();
|
|
64
66
|
String base64Secret = "fd54a45s65fds737b9aafcb3412e07ed99b267f33413274720ddbb7f6c5e64e9f14075f2d7ed041592f0b7657baf8";
|
|
65
67
|
jHipsterProperties.getSecurity().getAuthentication().getJwt().setBase64Secret(base64Secret);
|
|
66
|
-
|
|
68
|
+
|
|
69
|
+
SecurityMetersService securityMetersService = new SecurityMetersService(new SimpleMeterRegistry());
|
|
70
|
+
|
|
71
|
+
tokenProvider = new TokenProvider(jHipsterProperties, securityMetersService);
|
|
67
72
|
ReflectionTestUtils.setField(tokenProvider, "key", Keys.hmacShaKeyFor(Decoders.BASE64.decode(base64Secret)));
|
|
68
73
|
|
|
69
74
|
ReflectionTestUtils.setField(tokenProvider, "tokenValidityInMilliseconds", 60000);
|
|
70
75
|
jwtFilter = new JWTFilter(tokenProvider);
|
|
71
|
-
|
|
76
|
+
<%_ if (!reactive) { _%>
|
|
72
77
|
SecurityContextHolder.getContext().setAuthentication(null);
|
|
73
|
-
|
|
78
|
+
<%_ } _%>
|
|
74
79
|
}
|
|
75
80
|
|
|
76
81
|
@Test
|
|
@@ -81,7 +86,7 @@ class JWTFilterTest {
|
|
|
81
86
|
Collections.singletonList(new SimpleGrantedAuthority(AuthoritiesConstants.USER))
|
|
82
87
|
);
|
|
83
88
|
String jwt = tokenProvider.createToken(authentication, false);
|
|
84
|
-
|
|
89
|
+
<%_ if (!reactive) { _%>
|
|
85
90
|
MockHttpServletRequest request = new MockHttpServletRequest();
|
|
86
91
|
request.addHeader(JWTFilter.AUTHORIZATION_HEADER, "Bearer " + jwt);
|
|
87
92
|
request.setRequestURI("/api/test");
|
|
@@ -91,7 +96,7 @@ class JWTFilterTest {
|
|
|
91
96
|
assertThat(response.getStatus()).isEqualTo(HttpStatus.OK.value());
|
|
92
97
|
assertThat(SecurityContextHolder.getContext().getAuthentication().getName()).isEqualTo("test-user");
|
|
93
98
|
assertThat(SecurityContextHolder.getContext().getAuthentication().getCredentials()).hasToString(jwt);
|
|
94
|
-
|
|
99
|
+
<%_ } else { _%>
|
|
95
100
|
MockServerHttpRequest.BaseBuilder request = MockServerHttpRequest
|
|
96
101
|
.get("/api/test")
|
|
97
102
|
.header(JWTFilter.AUTHORIZATION_HEADER, "Bearer " + jwt);
|
|
@@ -105,13 +110,13 @@ class JWTFilterTest {
|
|
|
105
110
|
.doOnSuccess(auth -> assertThat(auth.getCredentials().toString()).hasToString(jwt))
|
|
106
111
|
.then()
|
|
107
112
|
).block();
|
|
108
|
-
|
|
113
|
+
<%_ } _%>
|
|
109
114
|
}
|
|
110
115
|
|
|
111
116
|
@Test
|
|
112
117
|
void testJWTFilterInvalidToken()<% if (!reactive) { %> throws Exception<% } %> {
|
|
113
118
|
String jwt = "wrong_jwt";
|
|
114
|
-
|
|
119
|
+
<%_ if (!reactive) { _%>
|
|
115
120
|
MockHttpServletRequest request = new MockHttpServletRequest();
|
|
116
121
|
request.addHeader(JWTFilter.AUTHORIZATION_HEADER, "Bearer " + jwt);
|
|
117
122
|
request.setRequestURI("/api/test");
|
|
@@ -120,7 +125,7 @@ class JWTFilterTest {
|
|
|
120
125
|
jwtFilter.doFilter(request, response, filterChain);
|
|
121
126
|
assertThat(response.getStatus()).isEqualTo(HttpStatus.OK.value());
|
|
122
127
|
assertThat(SecurityContextHolder.getContext().getAuthentication()).isNull();
|
|
123
|
-
|
|
128
|
+
<%_ } else { _%>
|
|
124
129
|
MockServerHttpRequest.BaseBuilder request = MockServerHttpRequest
|
|
125
130
|
.get("/api/test")
|
|
126
131
|
.header(JWTFilter.AUTHORIZATION_HEADER, "Bearer " + jwt);
|
|
@@ -133,12 +138,12 @@ class JWTFilterTest {
|
|
|
133
138
|
.doOnSuccess(auth -> assertThat(auth).isNull())
|
|
134
139
|
.then()
|
|
135
140
|
).block();
|
|
136
|
-
|
|
141
|
+
<%_ } _%>
|
|
137
142
|
}
|
|
138
143
|
|
|
139
144
|
@Test
|
|
140
145
|
void testJWTFilterMissingAuthorization()<% if (!reactive) { %> throws Exception<% } %> {
|
|
141
|
-
|
|
146
|
+
<%_ if (!reactive) { _%>
|
|
142
147
|
MockHttpServletRequest request = new MockHttpServletRequest();
|
|
143
148
|
request.setRequestURI("/api/test");
|
|
144
149
|
MockHttpServletResponse response = new MockHttpServletResponse();
|
|
@@ -146,7 +151,7 @@ class JWTFilterTest {
|
|
|
146
151
|
jwtFilter.doFilter(request, response, filterChain);
|
|
147
152
|
assertThat(response.getStatus()).isEqualTo(HttpStatus.OK.value());
|
|
148
153
|
assertThat(SecurityContextHolder.getContext().getAuthentication()).isNull();
|
|
149
|
-
|
|
154
|
+
<%_ } else { _%>
|
|
150
155
|
MockServerHttpRequest.BaseBuilder request = MockServerHttpRequest
|
|
151
156
|
.get("/api/test");
|
|
152
157
|
MockServerWebExchange exchange = MockServerWebExchange.from(request);
|
|
@@ -158,12 +163,12 @@ class JWTFilterTest {
|
|
|
158
163
|
.doOnSuccess(auth -> assertThat(auth).isNull())
|
|
159
164
|
.then()
|
|
160
165
|
).block();
|
|
161
|
-
|
|
166
|
+
<%_ } _%>
|
|
162
167
|
}
|
|
163
168
|
|
|
164
169
|
@Test
|
|
165
170
|
void testJWTFilterMissingToken()<% if (!reactive) { %> throws Exception<% } %> {
|
|
166
|
-
|
|
171
|
+
<%_ if (!reactive) { _%>
|
|
167
172
|
MockHttpServletRequest request = new MockHttpServletRequest();
|
|
168
173
|
request.addHeader(JWTFilter.AUTHORIZATION_HEADER, "Bearer ");
|
|
169
174
|
request.setRequestURI("/api/test");
|
|
@@ -172,7 +177,7 @@ class JWTFilterTest {
|
|
|
172
177
|
jwtFilter.doFilter(request, response, filterChain);
|
|
173
178
|
assertThat(response.getStatus()).isEqualTo(HttpStatus.OK.value());
|
|
174
179
|
assertThat(SecurityContextHolder.getContext().getAuthentication()).isNull();
|
|
175
|
-
|
|
180
|
+
<%_ } else { _%>
|
|
176
181
|
MockServerHttpRequest.BaseBuilder request = MockServerHttpRequest
|
|
177
182
|
.get("/api/test")
|
|
178
183
|
.header(JWTFilter.AUTHORIZATION_HEADER, "Bearer ");
|
|
@@ -185,7 +190,7 @@ class JWTFilterTest {
|
|
|
185
190
|
.doOnSuccess(auth -> assertThat(auth).isNull())
|
|
186
191
|
.then()
|
|
187
192
|
).block();
|
|
188
|
-
|
|
193
|
+
<%_ } _%>
|
|
189
194
|
}
|
|
190
195
|
|
|
191
196
|
@Test
|
|
@@ -196,7 +201,7 @@ class JWTFilterTest {
|
|
|
196
201
|
Collections.singletonList(new SimpleGrantedAuthority(AuthoritiesConstants.USER))
|
|
197
202
|
);
|
|
198
203
|
String jwt = tokenProvider.createToken(authentication, false);
|
|
199
|
-
|
|
204
|
+
<%_ if (!reactive) { _%>
|
|
200
205
|
MockHttpServletRequest request = new MockHttpServletRequest();
|
|
201
206
|
request.addHeader(JWTFilter.AUTHORIZATION_HEADER, "Basic " + jwt);
|
|
202
207
|
request.setRequestURI("/api/test");
|
|
@@ -205,7 +210,7 @@ class JWTFilterTest {
|
|
|
205
210
|
jwtFilter.doFilter(request, response, filterChain);
|
|
206
211
|
assertThat(response.getStatus()).isEqualTo(HttpStatus.OK.value());
|
|
207
212
|
assertThat(SecurityContextHolder.getContext().getAuthentication()).isNull();
|
|
208
|
-
|
|
213
|
+
<%_ } else { _%>
|
|
209
214
|
MockServerHttpRequest.BaseBuilder request = MockServerHttpRequest
|
|
210
215
|
.get("/api/test")
|
|
211
216
|
.header(JWTFilter.AUTHORIZATION_HEADER, "Basic " + jwt);
|
|
@@ -218,7 +223,7 @@ class JWTFilterTest {
|
|
|
218
223
|
.doOnSuccess(auth -> assertThat(auth).isNull())
|
|
219
224
|
.then()
|
|
220
225
|
).block();
|
|
221
|
-
|
|
226
|
+
<%_ } _%>
|
|
222
227
|
}
|
|
223
228
|
|
|
224
229
|
}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2021 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
|
+
package <%= packageName %>.security.jwt;
|
|
20
|
+
|
|
21
|
+
import <%= packageName %>.security.AuthoritiesConstants;
|
|
22
|
+
import <%= packageName %>.management.SecurityMetersService;
|
|
23
|
+
|
|
24
|
+
import io.jsonwebtoken.Jwts;
|
|
25
|
+
import io.jsonwebtoken.SignatureAlgorithm;
|
|
26
|
+
import io.jsonwebtoken.io.Decoders;
|
|
27
|
+
import io.jsonwebtoken.security.Keys;
|
|
28
|
+
|
|
29
|
+
import io.micrometer.core.instrument.Counter;
|
|
30
|
+
import io.micrometer.core.instrument.MeterRegistry;
|
|
31
|
+
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
|
|
32
|
+
|
|
33
|
+
import org.junit.jupiter.api.BeforeEach;
|
|
34
|
+
import org.junit.jupiter.api.Test;
|
|
35
|
+
|
|
36
|
+
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
|
37
|
+
import org.springframework.security.core.Authentication;
|
|
38
|
+
import org.springframework.security.core.GrantedAuthority;
|
|
39
|
+
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
|
40
|
+
import org.springframework.test.util.ReflectionTestUtils;
|
|
41
|
+
import tech.jhipster.config.JHipsterProperties;
|
|
42
|
+
|
|
43
|
+
import java.security.Key;
|
|
44
|
+
import java.util.ArrayList;
|
|
45
|
+
import java.util.Collection;
|
|
46
|
+
import java.util.Date;
|
|
47
|
+
|
|
48
|
+
import static org.assertj.core.api.Assertions.assertThat;
|
|
49
|
+
|
|
50
|
+
class TokenProviderSecurityMetersTests {
|
|
51
|
+
|
|
52
|
+
private static final long ONE_MINUTE = 60000;
|
|
53
|
+
private static final String INVALID_TOKENS_METER_EXPECTED_NAME = "security.authentication.invalid-tokens";
|
|
54
|
+
|
|
55
|
+
private MeterRegistry meterRegistry;
|
|
56
|
+
|
|
57
|
+
private TokenProvider tokenProvider;
|
|
58
|
+
|
|
59
|
+
@BeforeEach
|
|
60
|
+
public void setup() {
|
|
61
|
+
JHipsterProperties jHipsterProperties = new JHipsterProperties();
|
|
62
|
+
String base64Secret = "fd54a45s65fds737b9aafcb3412e07ed99b267f33413274720ddbb7f6c5e64e9f14075f2d7ed041592f0b7657baf8";
|
|
63
|
+
jHipsterProperties.getSecurity().getAuthentication().getJwt().setBase64Secret(base64Secret);
|
|
64
|
+
|
|
65
|
+
meterRegistry = new SimpleMeterRegistry();
|
|
66
|
+
|
|
67
|
+
SecurityMetersService securityMetersService = new SecurityMetersService(meterRegistry);
|
|
68
|
+
|
|
69
|
+
tokenProvider = new TokenProvider(jHipsterProperties, securityMetersService);
|
|
70
|
+
Key key = Keys.hmacShaKeyFor(Decoders.BASE64.decode(base64Secret));
|
|
71
|
+
|
|
72
|
+
ReflectionTestUtils.setField(tokenProvider, "key", key);
|
|
73
|
+
ReflectionTestUtils.setField(tokenProvider, "tokenValidityInMilliseconds", ONE_MINUTE);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@Test
|
|
77
|
+
public void testValidTokenShouldNotCountAnything() {
|
|
78
|
+
Collection<Counter> counters = meterRegistry.find(INVALID_TOKENS_METER_EXPECTED_NAME).counters();
|
|
79
|
+
|
|
80
|
+
assertThat(aggregate(counters)).isEqualTo(0);
|
|
81
|
+
|
|
82
|
+
String validToken = createValidToken();
|
|
83
|
+
|
|
84
|
+
tokenProvider.validateToken(validToken);
|
|
85
|
+
|
|
86
|
+
assertThat(aggregate(counters)).isEqualTo(0);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
@Test
|
|
90
|
+
public void testTokenExpiredCount() {
|
|
91
|
+
assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
|
|
92
|
+
.tag("cause", "expired")
|
|
93
|
+
.counter().count()).isEqualTo(0);
|
|
94
|
+
|
|
95
|
+
String expiredToken = createExpiredToken();
|
|
96
|
+
|
|
97
|
+
tokenProvider.validateToken(expiredToken);
|
|
98
|
+
|
|
99
|
+
assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
|
|
100
|
+
.tag("cause", "expired")
|
|
101
|
+
.counter().count()).isEqualTo(1);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
@Test
|
|
105
|
+
void testTokenUnsupportedCount() {
|
|
106
|
+
assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
|
|
107
|
+
.tag("cause", "unsupported")
|
|
108
|
+
.counter().count()).isEqualTo(0);
|
|
109
|
+
|
|
110
|
+
String unsupportedToken = createUnsupportedToken();
|
|
111
|
+
|
|
112
|
+
tokenProvider.validateToken(unsupportedToken);
|
|
113
|
+
|
|
114
|
+
assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
|
|
115
|
+
.tag("cause", "unsupported")
|
|
116
|
+
.counter().count()).isEqualTo(1);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
@Test
|
|
120
|
+
public void testTokenSignatureInvalidCount() {
|
|
121
|
+
assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
|
|
122
|
+
.tag("cause", "invalid-signature")
|
|
123
|
+
.counter().count()).isEqualTo(0);
|
|
124
|
+
|
|
125
|
+
String tokenWithDifferentSignature = createTokenWithDifferentSignature();
|
|
126
|
+
|
|
127
|
+
tokenProvider.validateToken(tokenWithDifferentSignature);
|
|
128
|
+
|
|
129
|
+
assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
|
|
130
|
+
.tag("cause", "invalid-signature")
|
|
131
|
+
.counter().count()).isEqualTo(1);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
@Test
|
|
135
|
+
public void testTokenMalformedCount() {
|
|
136
|
+
assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
|
|
137
|
+
.tag("cause", "malformed")
|
|
138
|
+
.counter().count()).isEqualTo(0);
|
|
139
|
+
|
|
140
|
+
String malformedToken = createMalformedToken();
|
|
141
|
+
|
|
142
|
+
tokenProvider.validateToken(malformedToken);
|
|
143
|
+
|
|
144
|
+
assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME)
|
|
145
|
+
.tag("cause", "malformed")
|
|
146
|
+
.counter().count()).isEqualTo(1);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
private String createValidToken() {
|
|
150
|
+
Authentication authentication = createAuthentication();
|
|
151
|
+
|
|
152
|
+
return tokenProvider.createToken(authentication, false);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
private String createExpiredToken() {
|
|
156
|
+
ReflectionTestUtils.setField(tokenProvider, "tokenValidityInMilliseconds", -ONE_MINUTE);
|
|
157
|
+
|
|
158
|
+
Authentication authentication = createAuthentication();
|
|
159
|
+
|
|
160
|
+
return tokenProvider.createToken(authentication, false);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
private Authentication createAuthentication() {
|
|
164
|
+
Collection<GrantedAuthority> authorities = new ArrayList<>();
|
|
165
|
+
authorities.add(new SimpleGrantedAuthority(AuthoritiesConstants.ANONYMOUS));
|
|
166
|
+
return new UsernamePasswordAuthenticationToken("anonymous", "anonymous", authorities);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
private String createUnsupportedToken() {
|
|
170
|
+
Key key = (Key) ReflectionTestUtils.getField(tokenProvider, "key");
|
|
171
|
+
|
|
172
|
+
return Jwts.builder().setPayload("payload").signWith(key, SignatureAlgorithm.HS256).compact();
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
private String createMalformedToken() {
|
|
176
|
+
String validToken = createValidToken();
|
|
177
|
+
|
|
178
|
+
return "X" + validToken;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
private String createTokenWithDifferentSignature() {
|
|
182
|
+
Key otherKey = Keys.hmacShaKeyFor(
|
|
183
|
+
Decoders.BASE64.decode("Xfd54a45s65fds737b9aafcb3412e07ed99b267f33413274720ddbb7f6c5e64e9f14075f2d7ed041592f0b7657baf8")
|
|
184
|
+
);
|
|
185
|
+
|
|
186
|
+
return Jwts
|
|
187
|
+
.builder()
|
|
188
|
+
.setSubject("anonymous")
|
|
189
|
+
.signWith(otherKey, SignatureAlgorithm.HS512)
|
|
190
|
+
.setExpiration(new Date(new Date().getTime() + ONE_MINUTE))
|
|
191
|
+
.compact();
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
private double aggregate(Collection<Counter> counters) {
|
|
195
|
+
return counters.stream().mapToDouble(Counter::count).sum();
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
}
|
package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderTest.java.ejs
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
package <%= packageName %>.security.jwt;
|
|
20
20
|
|
|
21
21
|
import <%= packageName %>.security.AuthoritiesConstants;
|
|
22
|
+
import <%= packageName %>.management.SecurityMetersService;
|
|
22
23
|
|
|
23
24
|
import java.security.Key;
|
|
24
25
|
import java.util.*;
|
|
@@ -31,6 +32,8 @@ import org.springframework.security.core.GrantedAuthority;
|
|
|
31
32
|
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
|
32
33
|
import org.springframework.test.util.ReflectionTestUtils;
|
|
33
34
|
|
|
35
|
+
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
|
|
36
|
+
|
|
34
37
|
import tech.jhipster.config.JHipsterProperties;
|
|
35
38
|
import io.jsonwebtoken.Jwts;
|
|
36
39
|
import io.jsonwebtoken.SignatureAlgorithm;
|
|
@@ -53,7 +56,10 @@ class TokenProviderTest {
|
|
|
53
56
|
JHipsterProperties jHipsterProperties = new JHipsterProperties();
|
|
54
57
|
String base64Secret = "fd54a45s65fds737b9aafcb3412e07ed99b267f33413274720ddbb7f6c5e64e9f14075f2d7ed041592f0b7657baf8";
|
|
55
58
|
jHipsterProperties.getSecurity().getAuthentication().getJwt().setBase64Secret(base64Secret);
|
|
56
|
-
|
|
59
|
+
|
|
60
|
+
SecurityMetersService securityMetersService = new SecurityMetersService(new SimpleMeterRegistry());
|
|
61
|
+
|
|
62
|
+
tokenProvider = new TokenProvider(jHipsterProperties, securityMetersService);
|
|
57
63
|
key = Keys.hmacShaKeyFor(Decoders.BASE64.decode(base64Secret));
|
|
58
64
|
|
|
59
65
|
ReflectionTestUtils.setField(tokenProvider, "key", key);
|
|
@@ -111,7 +117,9 @@ class TokenProviderTest {
|
|
|
111
117
|
JHipsterProperties jHipsterProperties = new JHipsterProperties();
|
|
112
118
|
jHipsterProperties.getSecurity().getAuthentication().getJwt().setSecret(secret);
|
|
113
119
|
|
|
114
|
-
|
|
120
|
+
SecurityMetersService securityMetersService = new SecurityMetersService(new SimpleMeterRegistry());
|
|
121
|
+
|
|
122
|
+
TokenProvider tokenProvider = new TokenProvider(jHipsterProperties, securityMetersService);
|
|
115
123
|
|
|
116
124
|
Key key = (Key) ReflectionTestUtils.getField(tokenProvider, "key");
|
|
117
125
|
assertThat(key).isNotNull().isEqualTo(Keys.hmacShaKeyFor(secret.getBytes(StandardCharsets.UTF_8)));
|
|
@@ -123,7 +131,9 @@ class TokenProviderTest {
|
|
|
123
131
|
JHipsterProperties jHipsterProperties = new JHipsterProperties();
|
|
124
132
|
jHipsterProperties.getSecurity().getAuthentication().getJwt().setBase64Secret(base64Secret);
|
|
125
133
|
|
|
126
|
-
|
|
134
|
+
SecurityMetersService securityMetersService = new SecurityMetersService(new SimpleMeterRegistry());
|
|
135
|
+
|
|
136
|
+
TokenProvider tokenProvider = new TokenProvider(jHipsterProperties, securityMetersService);
|
|
127
137
|
|
|
128
138
|
Key key = (Key) ReflectionTestUtils.getField(tokenProvider, "key");
|
|
129
139
|
assertThat(key).isNotNull().isEqualTo(Keys.hmacShaKeyFor(Decoders.BASE64.decode(base64Secret)));
|
|
@@ -50,6 +50,7 @@ import java.util.List;
|
|
|
50
50
|
import java.util.Map;
|
|
51
51
|
import java.util.Optional;
|
|
52
52
|
|
|
53
|
+
import static org.junit.jupiter.api.Assertions.fail;
|
|
53
54
|
import static org.mockito.ArgumentMatchers.*;
|
|
54
55
|
import static org.mockito.Mockito.*;
|
|
55
56
|
|
|
@@ -179,6 +180,20 @@ class AuthorizationHeaderUtilTest {
|
|
|
179
180
|
}
|
|
180
181
|
|
|
181
182
|
private OAuth2AuthorizedClient getTestOAuth2AuthorizedClient(boolean accessTokenExpired) {
|
|
183
|
+
Instant issuedAt = Instant.now();
|
|
184
|
+
Instant expiresAt;
|
|
185
|
+
if (accessTokenExpired) {
|
|
186
|
+
expiresAt = issuedAt.plus(Duration.ofNanos(1));
|
|
187
|
+
try {
|
|
188
|
+
Thread.sleep(1);
|
|
189
|
+
} catch (Exception e) {
|
|
190
|
+
fail("Error in Thread.sleep(1) : " + e.getMessage());
|
|
191
|
+
}
|
|
192
|
+
} else {
|
|
193
|
+
expiresAt = issuedAt.plus(Duration.ofMinutes(3));
|
|
194
|
+
}
|
|
195
|
+
OAuth2AccessToken token = new OAuth2AccessToken(OAuth2AccessToken.TokenType.BEARER, "tokenVal", issuedAt, expiresAt);
|
|
196
|
+
|
|
182
197
|
return new OAuth2AuthorizedClient(
|
|
183
198
|
ClientRegistration.withRegistrationId(VALID_REGISTRATION_ID)
|
|
184
199
|
.authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
|
|
@@ -189,8 +204,7 @@ class AuthorizationHeaderUtilTest {
|
|
|
189
204
|
.tokenUri("https://localhost:8080/auth/realms/master/protocol/openid-connect/token")
|
|
190
205
|
.build(),
|
|
191
206
|
"sub",
|
|
192
|
-
|
|
193
|
-
accessTokenExpired ? Instant.now() : Instant.now().plus(Duration.ofMinutes(3))),
|
|
207
|
+
token,
|
|
194
208
|
new OAuth2RefreshToken("refreshVal", Instant.now()));
|
|
195
209
|
}
|
|
196
210
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
you may not use this file except in compliance with the License.
|
|
9
9
|
You may obtain a copy of the License at
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
12
|
|
|
13
13
|
Unless required by applicable law or agreed to in writing, software
|
|
14
14
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
@@ -20,9 +20,8 @@ package <%= packageName %>.security.oauth2;
|
|
|
20
20
|
|
|
21
21
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
22
22
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
23
|
-
import <%= packageName %>.<%= mainClass %>;
|
|
24
|
-
import <%= packageName %>.config.TestSecurityConfiguration;
|
|
25
23
|
import <%= packageName %>.security.AuthoritiesConstants;
|
|
24
|
+
import <%= packageName %>.security.SecurityUtils;
|
|
26
25
|
import <%= packageName %>.IntegrationTest;
|
|
27
26
|
import org.junit.jupiter.api.BeforeEach;
|
|
28
27
|
import org.junit.jupiter.api.Test;
|
|
@@ -37,7 +36,6 @@ import org.springframework.web.client.RestTemplate;
|
|
|
37
36
|
|
|
38
37
|
import java.util.Arrays;
|
|
39
38
|
import java.util.HashMap;
|
|
40
|
-
import java.util.List;
|
|
41
39
|
import java.util.Map;
|
|
42
40
|
|
|
43
41
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
@@ -52,6 +50,9 @@ class CustomClaimConverterIT {
|
|
|
52
50
|
private static final String USERNAME = "admin";
|
|
53
51
|
private static final String NAME = "John";
|
|
54
52
|
private static final String FAMILY_NAME = "Doe";
|
|
53
|
+
private static final String FULL_NAME = NAME + " " + FAMILY_NAME;
|
|
54
|
+
private static final String NAME_SUFFIX = "Sr.";
|
|
55
|
+
private static final String EMAIL = "john.doe@gmail.com";
|
|
55
56
|
|
|
56
57
|
private final ObjectMapper mapper = new ObjectMapper();
|
|
57
58
|
|
|
@@ -120,4 +121,107 @@ class CustomClaimConverterIT {
|
|
|
120
121
|
// WHEN
|
|
121
122
|
assertThatCode(() -> customClaimConverter.convert(claims)).doesNotThrowAnyException();
|
|
122
123
|
}
|
|
124
|
+
|
|
125
|
+
@Test
|
|
126
|
+
void testConvert_withNamespacedRoles() {
|
|
127
|
+
// GIVEN
|
|
128
|
+
Map<String, Object> claims = new HashMap<>();
|
|
129
|
+
claims.put("sub", "123");
|
|
130
|
+
// AND
|
|
131
|
+
ObjectNode user = mapper.createObjectNode();
|
|
132
|
+
user.put("preferred_username", USERNAME);
|
|
133
|
+
user.put("given_name", NAME);
|
|
134
|
+
user.put("family_name", FAMILY_NAME);
|
|
135
|
+
user.putArray(SecurityUtils.CLAIMS_NAMESPACE + "roles").add(AuthoritiesConstants.ADMIN).add(AuthoritiesConstants.USER);
|
|
136
|
+
mockHttpGetUserInfo(user);
|
|
137
|
+
|
|
138
|
+
// WHEN
|
|
139
|
+
Map<String, Object> convertedClaims = customClaimConverter.convert(claims);
|
|
140
|
+
|
|
141
|
+
// THEN
|
|
142
|
+
assertThat(convertedClaims)
|
|
143
|
+
.containsEntry("sub", "123")
|
|
144
|
+
.containsEntry("preferred_username", USERNAME)
|
|
145
|
+
.containsEntry("given_name", NAME)
|
|
146
|
+
.containsEntry("family_name", FAMILY_NAME)
|
|
147
|
+
.containsEntry("roles", Arrays.asList(AuthoritiesConstants.ADMIN, AuthoritiesConstants.USER));
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
@Test
|
|
151
|
+
void testConvert_withoutFirstAndLastName() {
|
|
152
|
+
// GIVEN
|
|
153
|
+
Map<String, Object> claims = new HashMap<>();
|
|
154
|
+
claims.put("sub", "123");
|
|
155
|
+
// AND
|
|
156
|
+
ObjectNode user = mapper.createObjectNode();
|
|
157
|
+
user.put("preferred_username", USERNAME);
|
|
158
|
+
mockHttpGetUserInfo(user);
|
|
159
|
+
|
|
160
|
+
assertThatCode(() -> {
|
|
161
|
+
Map<String, Object> convertedClaims = customClaimConverter.convert(claims);
|
|
162
|
+
assertThat(convertedClaims)
|
|
163
|
+
.containsEntry("preferred_username", USERNAME)
|
|
164
|
+
.doesNotContainKeys("given_name", "family_name");
|
|
165
|
+
}).doesNotThrowAnyException();
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
@Test
|
|
169
|
+
void testConvert_withName() {
|
|
170
|
+
// GIVEN
|
|
171
|
+
Map<String, Object> claims = new HashMap<>();
|
|
172
|
+
claims.put("sub", "123");
|
|
173
|
+
// AND
|
|
174
|
+
ObjectNode user = mapper.createObjectNode();
|
|
175
|
+
user.put("preferred_username", USERNAME);
|
|
176
|
+
user.put("name", FULL_NAME);
|
|
177
|
+
mockHttpGetUserInfo(user);
|
|
178
|
+
|
|
179
|
+
assertThatCode(() -> {
|
|
180
|
+
Map<String, Object> convertedClaims = customClaimConverter.convert(claims);
|
|
181
|
+
assertThat(convertedClaims)
|
|
182
|
+
.containsEntry("preferred_username", USERNAME)
|
|
183
|
+
.containsEntry("given_name", NAME)
|
|
184
|
+
.containsEntry("family_name", FAMILY_NAME);
|
|
185
|
+
}).doesNotThrowAnyException();
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
@Test
|
|
189
|
+
void testConvert_withLastNameMultipleWords() {
|
|
190
|
+
// GIVEN
|
|
191
|
+
Map<String, Object> claims = new HashMap<>();
|
|
192
|
+
claims.put("sub", "123");
|
|
193
|
+
// AND
|
|
194
|
+
ObjectNode user = mapper.createObjectNode();
|
|
195
|
+
user.put("preferred_username", USERNAME);
|
|
196
|
+
user.put("name", FULL_NAME + " " + NAME_SUFFIX);
|
|
197
|
+
mockHttpGetUserInfo(user);
|
|
198
|
+
|
|
199
|
+
assertThatCode(() -> {
|
|
200
|
+
Map<String, Object> convertedClaims = customClaimConverter.convert(claims);
|
|
201
|
+
System.out.println(convertedClaims);
|
|
202
|
+
assertThat(convertedClaims)
|
|
203
|
+
.containsEntry("preferred_username", USERNAME)
|
|
204
|
+
.containsEntry("given_name", NAME)
|
|
205
|
+
.containsEntry("family_name", FAMILY_NAME + " " + NAME_SUFFIX);
|
|
206
|
+
}).doesNotThrowAnyException();
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
@Test
|
|
210
|
+
void testConvert_withEmail() {
|
|
211
|
+
// GIVEN
|
|
212
|
+
Map<String, Object> claims = new HashMap<>();
|
|
213
|
+
claims.put("sub", "123");
|
|
214
|
+
// AND
|
|
215
|
+
ObjectNode user = mapper.createObjectNode();
|
|
216
|
+
user.put("preferred_username", USERNAME);
|
|
217
|
+
user.put("email", EMAIL);
|
|
218
|
+
mockHttpGetUserInfo(user);
|
|
219
|
+
|
|
220
|
+
assertThatCode(() -> {
|
|
221
|
+
Map<String, Object> convertedClaims = customClaimConverter.convert(claims);
|
|
222
|
+
assertThat(convertedClaims)
|
|
223
|
+
.containsEntry("preferred_username", USERNAME)
|
|
224
|
+
.containsEntry("email", EMAIL);
|
|
225
|
+
}).doesNotThrowAnyException();
|
|
226
|
+
}
|
|
123
227
|
}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
package <%= packageName %>.service;
|
|
20
20
|
|
|
21
21
|
import <%= packageName %>.config.Constants;
|
|
22
|
-
<% if (
|
|
22
|
+
<% if (databaseTypeCassandra) { %>
|
|
23
23
|
import <%= packageName %>.AbstractCassandraTest;<% } %>
|
|
24
24
|
import <%= packageName %>.IntegrationTest;
|
|
25
25
|
import <%= packageName %>.domain.<%= asEntity('User') %>;
|
|
@@ -59,7 +59,7 @@ import static org.mockito.Mockito.*;
|
|
|
59
59
|
* Integration tests for {@link MailService}.
|
|
60
60
|
*/
|
|
61
61
|
@IntegrationTest
|
|
62
|
-
class MailServiceIT <% if (
|
|
62
|
+
class MailServiceIT <% if (databaseTypeCassandra) { %>extends AbstractCassandraTest <% } %>{
|
|
63
63
|
|
|
64
64
|
private static final String[] languages = {
|
|
65
65
|
// jhipster-needle-i18n-language-constant - JHipster will add/remove languages in this array
|
|
@@ -166,7 +166,7 @@ class MailServiceIT <% if (databaseType === 'cassandra') { %>extends AbstractCas
|
|
|
166
166
|
assertThat(message.getContent().toString()).isEqualToNormalizingNewlines("<html>test title, http://127.0.0.1:8080, john</html>\n");
|
|
167
167
|
assertThat(message.getDataHandler().getContentType()).isEqualTo("text/html;charset=UTF-8");
|
|
168
168
|
}
|
|
169
|
-
|
|
169
|
+
<%_ if (!authenticationTypeOauth2) { _%>
|
|
170
170
|
|
|
171
171
|
@Test
|
|
172
172
|
void testSendActivationEmail() throws Exception {
|
|
@@ -212,7 +212,7 @@ class MailServiceIT <% if (databaseType === 'cassandra') { %>extends AbstractCas
|
|
|
212
212
|
assertThat(message.getContent().toString()).isNotEmpty();
|
|
213
213
|
assertThat(message.getDataHandler().getContentType()).isEqualTo("text/html;charset=UTF-8");
|
|
214
214
|
}
|
|
215
|
-
|
|
215
|
+
<%_ } _%>
|
|
216
216
|
|
|
217
217
|
@Test
|
|
218
218
|
void testSendEmailWithException() {
|