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/web/rest/AccountResourceIT.java.ejs
CHANGED
|
@@ -18,23 +18,25 @@
|
|
|
18
18
|
-%>
|
|
19
19
|
package <%= packageName %>.web.rest;
|
|
20
20
|
|
|
21
|
-
<%_ if (
|
|
21
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
22
22
|
import <%= packageName %>.AbstractCassandraTest;
|
|
23
|
+
<%_ } else if (databaseTypeCouchbase) { _%>
|
|
24
|
+
import <%= packageName %>.CouchbaseTestContainerExtension;
|
|
23
25
|
<%_ } _%>
|
|
24
26
|
import <%= packageName %>.IntegrationTest;
|
|
25
27
|
import <%= packageName %>.config.Constants;
|
|
26
|
-
<%_ if (
|
|
28
|
+
<%_ if (authenticationTypeSession && !reactive) { _%>
|
|
27
29
|
import <%= packageName %>.domain.PersistentToken;
|
|
28
30
|
<%_ } _%>
|
|
29
31
|
import <%= packageName %>.domain.<%= asEntity('User') %>;
|
|
30
|
-
<%_ if (
|
|
32
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) { _%>
|
|
31
33
|
import <%= packageName %>.repository.AuthorityRepository;
|
|
32
34
|
<%_ } _%>
|
|
33
|
-
<%_ if (
|
|
35
|
+
<%_ if (authenticationTypeSession && !reactive) { _%>
|
|
34
36
|
import <%= packageName %>.repository.PersistentTokenRepository;
|
|
35
37
|
<%_ } _%>
|
|
36
38
|
import <%= packageName %>.repository.UserRepository;
|
|
37
|
-
<%_ if (reactive &&
|
|
39
|
+
<%_ if (reactive && searchEngineElasticsearch) { _%>
|
|
38
40
|
import <%= packageName %>.repository.search.UserSearchRepository;
|
|
39
41
|
<%_ } _%>
|
|
40
42
|
import <%= packageName %>.security.AuthoritiesConstants;
|
|
@@ -45,10 +47,13 @@ import <%= packageName %>.service.dto.<%= asDto('User') %>;
|
|
|
45
47
|
import <%= packageName %>.web.rest.vm.KeyAndPasswordVM;
|
|
46
48
|
import <%= packageName %>.web.rest.vm.ManagedUserVM;
|
|
47
49
|
import org.apache.commons.lang3.RandomStringUtils;
|
|
48
|
-
<%_ if (reactive && testsNeedCsrf ||
|
|
50
|
+
<%_ if (reactive && testsNeedCsrf || databaseTypeMongodb || databaseTypeNeo4j) { _%>
|
|
49
51
|
import org.junit.jupiter.api.BeforeEach;
|
|
50
52
|
<%_ } _%>
|
|
51
53
|
import org.junit.jupiter.api.Test;
|
|
54
|
+
<%_ if (databaseTypeCouchbase) { _%>
|
|
55
|
+
import org.junit.jupiter.api.extension.ExtendWith;
|
|
56
|
+
<%_ } _%>
|
|
52
57
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
53
58
|
<%_ if (!reactive) { _%>
|
|
54
59
|
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
|
|
@@ -67,32 +72,32 @@ import org.springframework.test.web.reactive.server.WebTestClient;
|
|
|
67
72
|
<%_ if (!reactive) { _%>
|
|
68
73
|
import org.springframework.test.web.servlet.MockMvc;
|
|
69
74
|
<%_ } _%>
|
|
70
|
-
<%_ if (
|
|
75
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
71
76
|
import org.springframework.transaction.annotation.Transactional;
|
|
72
77
|
<%_ } _%>
|
|
73
|
-
<%_ if (reactive &&
|
|
78
|
+
<%_ if (reactive && searchEngineElasticsearch) { _%>
|
|
74
79
|
import reactor.core.publisher.Mono;
|
|
75
80
|
<%_ } _%>
|
|
76
81
|
|
|
77
82
|
import java.time.Instant;
|
|
78
|
-
<%_ if (
|
|
83
|
+
<%_ if (authenticationTypeSession && !reactive && (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase)) { _%>
|
|
79
84
|
import java.time.LocalDate;
|
|
80
85
|
<%_ } _%>
|
|
81
86
|
import java.util.*;
|
|
82
87
|
|
|
83
88
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
84
|
-
<%_ if (reactive &&
|
|
89
|
+
<%_ if (reactive && searchEngineElasticsearch) { _%>
|
|
85
90
|
import static org.mockito.Mockito.*;
|
|
86
91
|
<%_ } _%>
|
|
87
|
-
<%_ if (
|
|
92
|
+
<%_ if (authenticationTypeSession && !reactive) { _%>
|
|
88
93
|
import static org.hamcrest.Matchers.containsString;
|
|
89
94
|
import static org.hamcrest.Matchers.hasItem;
|
|
90
95
|
<%_ } _%>
|
|
91
96
|
import static <%= packageName %>.web.rest.AccountResourceIT.TEST_USER_LOGIN;
|
|
92
97
|
<%_ if (!reactive) { _%>
|
|
93
|
-
|
|
98
|
+
<%_ if (testsNeedCsrf) { _%>
|
|
94
99
|
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf;
|
|
95
|
-
|
|
100
|
+
<%_ } _%>
|
|
96
101
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
|
|
97
102
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
|
|
98
103
|
<%_ } else if (testsNeedCsrf) { _%>
|
|
@@ -109,12 +114,12 @@ import static org.springframework.security.test.web.reactive.server.SecurityMock
|
|
|
109
114
|
<%_ } _%>
|
|
110
115
|
@WithMockUser(value = TEST_USER_LOGIN)
|
|
111
116
|
@IntegrationTest
|
|
112
|
-
class AccountResourceIT <% if (
|
|
117
|
+
class AccountResourceIT <% if (databaseTypeCassandra) { %>extends AbstractCassandraTest <% } %>{
|
|
113
118
|
static final String TEST_USER_LOGIN = "test";
|
|
114
119
|
|
|
115
120
|
@Autowired
|
|
116
121
|
private UserRepository userRepository;
|
|
117
|
-
<%_ if (
|
|
122
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
|
|
118
123
|
|
|
119
124
|
@Autowired
|
|
120
125
|
private AuthorityRepository authorityRepository;
|
|
@@ -122,16 +127,16 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
122
127
|
|
|
123
128
|
@Autowired
|
|
124
129
|
private UserService userService;
|
|
125
|
-
<%_ if (
|
|
130
|
+
<%_ if (authenticationTypeSession && !reactive) { _%>
|
|
126
131
|
|
|
127
132
|
@Autowired
|
|
128
133
|
private PersistentTokenRepository persistentTokenRepository;
|
|
129
134
|
<%_ } _%>
|
|
130
|
-
|
|
135
|
+
<%_ if (searchEngineElasticsearch && reactive) { _%>
|
|
131
136
|
|
|
132
137
|
@Autowired
|
|
133
138
|
private UserSearchRepository mockUserSearchRepository;
|
|
134
|
-
|
|
139
|
+
<%_ } _%>
|
|
135
140
|
|
|
136
141
|
@Autowired
|
|
137
142
|
private PasswordEncoder passwordEncoder;
|
|
@@ -143,40 +148,40 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
143
148
|
private WebTestClient accountWebTestClient;
|
|
144
149
|
<%_ } _%>
|
|
145
150
|
|
|
146
|
-
|
|
151
|
+
<%_ if (databaseTypeMongodb || databaseTypeNeo4j) { _%>
|
|
147
152
|
@BeforeEach
|
|
148
153
|
public void setup() {
|
|
149
154
|
userRepository.deleteAll()<% if (reactive) { %>.block()<% } %>;
|
|
150
155
|
}
|
|
151
156
|
|
|
152
|
-
|
|
153
|
-
|
|
157
|
+
<%_ } _%>
|
|
158
|
+
<%_ if (reactive && testsNeedCsrf) { _%>
|
|
154
159
|
@BeforeEach
|
|
155
160
|
public void setupCsrf() {
|
|
156
161
|
accountWebTestClient = accountWebTestClient.mutateWith(csrf());
|
|
157
162
|
}
|
|
158
163
|
|
|
159
|
-
|
|
164
|
+
<%_ } _%>
|
|
160
165
|
@Test
|
|
161
166
|
@WithUnauthenticatedMockUser
|
|
162
|
-
|
|
167
|
+
<%_ if (!reactive) { _%>
|
|
163
168
|
void testNonAuthenticatedUser() <% if (!reactive) { %>throws Exception <% } %>{
|
|
164
169
|
restAccountMockMvc.perform(get("/api/authenticate")
|
|
165
170
|
.accept(MediaType.APPLICATION_JSON))
|
|
166
171
|
.andExpect(status().isOk())
|
|
167
172
|
.andExpect(content().string(""));
|
|
168
|
-
|
|
173
|
+
<%_ } else { _%>
|
|
169
174
|
void testNonAuthenticatedUser() {
|
|
170
175
|
accountWebTestClient.get().uri("/api/authenticate")
|
|
171
176
|
.accept(MediaType.APPLICATION_JSON)
|
|
172
177
|
.exchange()
|
|
173
178
|
.expectStatus().isOk()
|
|
174
179
|
.expectBody().isEmpty();
|
|
175
|
-
|
|
180
|
+
<%_ } _%>
|
|
176
181
|
}
|
|
177
182
|
|
|
178
183
|
@Test
|
|
179
|
-
|
|
184
|
+
<%_ if (!reactive) { _%>
|
|
180
185
|
void testAuthenticatedUser() <% if (!reactive) { %>throws Exception <% } %>{
|
|
181
186
|
restAccountMockMvc.perform(get("/api/authenticate")
|
|
182
187
|
.with(request -> {
|
|
@@ -186,7 +191,7 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
186
191
|
.accept(MediaType.APPLICATION_JSON))
|
|
187
192
|
.andExpect(status().isOk())
|
|
188
193
|
.andExpect(content().string(TEST_USER_LOGIN));
|
|
189
|
-
|
|
194
|
+
<%_ } else { _%>
|
|
190
195
|
void testAuthenticatedUser() {
|
|
191
196
|
accountWebTestClient
|
|
192
197
|
.get().uri("/api/authenticate")
|
|
@@ -194,17 +199,17 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
194
199
|
.exchange()
|
|
195
200
|
.expectStatus().isOk()
|
|
196
201
|
.expectBody(String.class).isEqualTo(TEST_USER_LOGIN);
|
|
197
|
-
|
|
202
|
+
<%_ } _%>
|
|
198
203
|
}
|
|
199
204
|
|
|
200
205
|
@Test
|
|
201
206
|
void testGetExistingAccount()<% if (!reactive) { %> throws Exception<% } %> {
|
|
202
|
-
|
|
207
|
+
<%_ if (searchEngineElasticsearch && reactive) { _%>
|
|
203
208
|
// Configure the mock search repository
|
|
204
209
|
when(mockUserSearchRepository.save(any()))
|
|
205
210
|
.thenAnswer(invocation -> Mono.just(invocation.getArgument(0)));
|
|
206
211
|
|
|
207
|
-
|
|
212
|
+
<%_ } _%>
|
|
208
213
|
Set<String> authorities = new HashSet<>();
|
|
209
214
|
authorities.add(AuthoritiesConstants.ADMIN);
|
|
210
215
|
|
|
@@ -213,14 +218,14 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
213
218
|
user.setFirstName("john");
|
|
214
219
|
user.setLastName("doe");
|
|
215
220
|
user.setEmail("john.doe@jhipster.com");
|
|
216
|
-
|
|
221
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
217
222
|
user.setImageUrl("http://placehold.it/50x50");
|
|
218
|
-
|
|
223
|
+
<%_ } _%>
|
|
219
224
|
user.setLangKey("en");
|
|
220
225
|
user.setAuthorities(authorities);
|
|
221
226
|
userService.createUser(user)<% if (reactive) { %>.block()<% } %>;
|
|
222
227
|
|
|
223
|
-
|
|
228
|
+
<%_ if (!reactive) { _%>
|
|
224
229
|
restAccountMockMvc.perform(get("/api/account")
|
|
225
230
|
.accept(MediaType.APPLICATION_JSON))
|
|
226
231
|
.andExpect(status().isOk())
|
|
@@ -229,12 +234,12 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
229
234
|
.andExpect(jsonPath("$.firstName").value("john"))
|
|
230
235
|
.andExpect(jsonPath("$.lastName").value("doe"))
|
|
231
236
|
.andExpect(jsonPath("$.email").value("john.doe@jhipster.com"))
|
|
232
|
-
|
|
237
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
233
238
|
.andExpect(jsonPath("$.imageUrl").value("http://placehold.it/50x50"))
|
|
234
|
-
|
|
239
|
+
<%_ } _%>
|
|
235
240
|
.andExpect(jsonPath("$.langKey").value("en"))
|
|
236
241
|
.andExpect(jsonPath("$.authorities").value(AuthoritiesConstants.ADMIN));
|
|
237
|
-
|
|
242
|
+
<%_ } else { _%>
|
|
238
243
|
accountWebTestClient.get().uri("/api/account")
|
|
239
244
|
.accept(MediaType.APPLICATION_JSON)
|
|
240
245
|
.exchange()
|
|
@@ -245,71 +250,75 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
245
250
|
.jsonPath("$.firstName").isEqualTo("john")
|
|
246
251
|
.jsonPath("$.lastName").isEqualTo("doe")
|
|
247
252
|
.jsonPath("$.email").isEqualTo("john.doe@jhipster.com")
|
|
248
|
-
|
|
253
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
249
254
|
.jsonPath("$.imageUrl").isEqualTo("http://placehold.it/50x50")
|
|
250
|
-
|
|
255
|
+
<%_ } _%>
|
|
251
256
|
.jsonPath("$.langKey").isEqualTo("en")
|
|
252
257
|
.jsonPath("$.authorities").isEqualTo(AuthoritiesConstants.ADMIN);
|
|
253
|
-
|
|
258
|
+
<%_ } _%>
|
|
254
259
|
}
|
|
255
260
|
|
|
256
261
|
@Test
|
|
257
|
-
|
|
262
|
+
<%_ if (!reactive) { _%>
|
|
258
263
|
void testGetUnknownAccount() throws Exception {
|
|
259
264
|
restAccountMockMvc.perform(get("/api/account")
|
|
260
265
|
.accept(MediaType.APPLICATION_PROBLEM_JSON))
|
|
261
266
|
.andExpect(status().isInternalServerError());
|
|
262
|
-
|
|
267
|
+
<%_ } else { _%>
|
|
263
268
|
void testGetUnknownAccount() {
|
|
264
269
|
accountWebTestClient.get().uri("/api/account")
|
|
265
270
|
.accept(MediaType.APPLICATION_JSON)
|
|
266
271
|
.exchange()
|
|
267
272
|
.expectStatus().isEqualTo(HttpStatus.INTERNAL_SERVER_ERROR);
|
|
268
|
-
|
|
273
|
+
<%_ } _%>
|
|
269
274
|
}
|
|
270
275
|
|
|
271
|
-
@Test
|
|
272
|
-
|
|
276
|
+
@Test
|
|
277
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
278
|
+
@Transactional
|
|
279
|
+
<%_ } _%>
|
|
273
280
|
void testRegisterValid() throws Exception {
|
|
274
|
-
|
|
281
|
+
<%_ if (searchEngineElasticsearch && reactive) { _%>
|
|
275
282
|
// Configure the mock search repository
|
|
276
283
|
when(mockUserSearchRepository.save(any()))
|
|
277
284
|
.thenAnswer(invocation -> Mono.just(invocation.getArgument(0)));
|
|
278
285
|
|
|
279
|
-
|
|
286
|
+
<%_ } _%>
|
|
280
287
|
ManagedUserVM validUser = new ManagedUserVM();
|
|
281
288
|
validUser.setLogin("test-register-valid");
|
|
282
289
|
validUser.setPassword("password");
|
|
283
290
|
validUser.setFirstName("Alice");
|
|
284
291
|
validUser.setLastName("Test");
|
|
285
292
|
validUser.setEmail("test-register-valid@example.com");
|
|
286
|
-
|
|
293
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
287
294
|
validUser.setImageUrl("http://placehold.it/50x50");
|
|
288
|
-
|
|
295
|
+
<%_ } _%>
|
|
289
296
|
validUser.setLangKey(Constants.DEFAULT_LANGUAGE);
|
|
290
297
|
validUser.setAuthorities(Collections.singleton(AuthoritiesConstants.USER));
|
|
291
298
|
assertThat(userRepository.findOneByLogin("test-register-valid")<% if (reactive) { %>.blockOptional()<% } %>).isEmpty();
|
|
292
299
|
|
|
293
|
-
|
|
300
|
+
<%_ if (!reactive) { _%>
|
|
294
301
|
restAccountMockMvc.perform(
|
|
295
302
|
post("/api/register")
|
|
296
303
|
.contentType(MediaType.APPLICATION_JSON)
|
|
297
304
|
.content(TestUtil.convertObjectToJsonBytes(validUser))<% if (testsNeedCsrf) { %>
|
|
298
305
|
.with(csrf())<% } %>)
|
|
299
306
|
.andExpect(status().isCreated());
|
|
300
|
-
|
|
307
|
+
<%_ } else { _%>
|
|
301
308
|
accountWebTestClient.post().uri("/api/register")
|
|
302
309
|
.contentType(MediaType.APPLICATION_JSON)
|
|
303
310
|
.bodyValue(TestUtil.convertObjectToJsonBytes(validUser))
|
|
304
311
|
.exchange()
|
|
305
312
|
.expectStatus().isCreated();
|
|
306
|
-
|
|
313
|
+
<%_ } _%>
|
|
307
314
|
|
|
308
315
|
assertThat(userRepository.findOneByLogin("test-register-valid")<% if (reactive) { %>.blockOptional()<% } %>).isPresent();
|
|
309
316
|
}
|
|
310
317
|
|
|
311
|
-
@Test
|
|
312
|
-
|
|
318
|
+
@Test
|
|
319
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
320
|
+
@Transactional
|
|
321
|
+
<%_ } _%>
|
|
313
322
|
void testRegisterInvalidLogin() throws Exception {
|
|
314
323
|
ManagedUserVM invalidUser = new ManagedUserVM();
|
|
315
324
|
invalidUser.setLogin("funky-log(n");// <-- invalid
|
|
@@ -318,33 +327,35 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
318
327
|
invalidUser.setLastName("One");
|
|
319
328
|
invalidUser.setEmail("funky@example.com");
|
|
320
329
|
invalidUser.setActivated(true);
|
|
321
|
-
|
|
330
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
322
331
|
invalidUser.setImageUrl("http://placehold.it/50x50");
|
|
323
|
-
|
|
332
|
+
<%_ } _%>
|
|
324
333
|
invalidUser.setLangKey(Constants.DEFAULT_LANGUAGE);
|
|
325
334
|
invalidUser.setAuthorities(Collections.singleton(AuthoritiesConstants.USER));
|
|
326
335
|
|
|
327
|
-
|
|
336
|
+
<%_ if (!reactive) { _%>
|
|
328
337
|
restAccountMockMvc.perform(
|
|
329
338
|
post("/api/register")
|
|
330
339
|
.contentType(MediaType.APPLICATION_JSON)
|
|
331
340
|
.content(TestUtil.convertObjectToJsonBytes(invalidUser))<% if (testsNeedCsrf) { %>
|
|
332
341
|
.with(csrf())<% } %>)
|
|
333
342
|
.andExpect(status().isBadRequest());
|
|
334
|
-
|
|
343
|
+
<%_ } else { _%>
|
|
335
344
|
accountWebTestClient.post().uri("/api/register")
|
|
336
345
|
.contentType(MediaType.APPLICATION_JSON)
|
|
337
346
|
.bodyValue(TestUtil.convertObjectToJsonBytes(invalidUser))
|
|
338
347
|
.exchange()
|
|
339
348
|
.expectStatus().isBadRequest();
|
|
340
|
-
|
|
349
|
+
<%_ } _%>
|
|
341
350
|
|
|
342
351
|
Optional<<%= asEntity('User') %>> user = userRepository.findOneByEmailIgnoreCase("funky@example.com")<% if (reactive) { %>.blockOptional()<% } %>;
|
|
343
352
|
assertThat(user).isEmpty();
|
|
344
353
|
}
|
|
345
354
|
|
|
346
|
-
@Test
|
|
347
|
-
|
|
355
|
+
@Test
|
|
356
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
357
|
+
@Transactional
|
|
358
|
+
<%_ } _%>
|
|
348
359
|
void testRegisterInvalidEmail() throws Exception {
|
|
349
360
|
ManagedUserVM invalidUser = new ManagedUserVM();
|
|
350
361
|
invalidUser.setLogin("bob");
|
|
@@ -353,33 +364,35 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
353
364
|
invalidUser.setLastName("Green");
|
|
354
365
|
invalidUser.setEmail("invalid");// <-- invalid
|
|
355
366
|
invalidUser.setActivated(true);
|
|
356
|
-
|
|
367
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
357
368
|
invalidUser.setImageUrl("http://placehold.it/50x50");
|
|
358
|
-
|
|
369
|
+
<%_ } _%>
|
|
359
370
|
invalidUser.setLangKey(Constants.DEFAULT_LANGUAGE);
|
|
360
371
|
invalidUser.setAuthorities(Collections.singleton(AuthoritiesConstants.USER));
|
|
361
372
|
|
|
362
|
-
|
|
373
|
+
<%_ if (!reactive) { _%>
|
|
363
374
|
restAccountMockMvc.perform(
|
|
364
375
|
post("/api/register")
|
|
365
376
|
.contentType(MediaType.APPLICATION_JSON)
|
|
366
377
|
.content(TestUtil.convertObjectToJsonBytes(invalidUser))<% if (testsNeedCsrf) { %>
|
|
367
378
|
.with(csrf())<% } %>)
|
|
368
379
|
.andExpect(status().isBadRequest());
|
|
369
|
-
|
|
380
|
+
<%_ } else { _%>
|
|
370
381
|
accountWebTestClient.post().uri("/api/register")
|
|
371
382
|
.contentType(MediaType.APPLICATION_JSON)
|
|
372
383
|
.bodyValue(TestUtil.convertObjectToJsonBytes(invalidUser))
|
|
373
384
|
.exchange()
|
|
374
385
|
.expectStatus().isBadRequest();
|
|
375
|
-
|
|
386
|
+
<%_ } _%>
|
|
376
387
|
|
|
377
388
|
Optional<<%= asEntity('User') %>> user = userRepository.findOneByLogin("bob")<% if (reactive) { %>.blockOptional()<% } %>;
|
|
378
389
|
assertThat(user).isEmpty();
|
|
379
390
|
}
|
|
380
391
|
|
|
381
|
-
@Test
|
|
382
|
-
|
|
392
|
+
@Test
|
|
393
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
394
|
+
@Transactional
|
|
395
|
+
<%_ } _%>
|
|
383
396
|
void testRegisterInvalidPassword() throws Exception {
|
|
384
397
|
ManagedUserVM invalidUser = new ManagedUserVM();
|
|
385
398
|
invalidUser.setLogin("bob");
|
|
@@ -388,33 +401,35 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
388
401
|
invalidUser.setLastName("Green");
|
|
389
402
|
invalidUser.setEmail("bob@example.com");
|
|
390
403
|
invalidUser.setActivated(true);
|
|
391
|
-
|
|
404
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
392
405
|
invalidUser.setImageUrl("http://placehold.it/50x50");
|
|
393
|
-
|
|
406
|
+
<%_ } _%>
|
|
394
407
|
invalidUser.setLangKey(Constants.DEFAULT_LANGUAGE);
|
|
395
408
|
invalidUser.setAuthorities(Collections.singleton(AuthoritiesConstants.USER));
|
|
396
409
|
|
|
397
|
-
|
|
410
|
+
<%_ if (!reactive) { _%>
|
|
398
411
|
restAccountMockMvc.perform(
|
|
399
412
|
post("/api/register")
|
|
400
413
|
.contentType(MediaType.APPLICATION_JSON)
|
|
401
414
|
.content(TestUtil.convertObjectToJsonBytes(invalidUser))<% if (testsNeedCsrf) { %>
|
|
402
415
|
.with(csrf())<% } %>)
|
|
403
416
|
.andExpect(status().isBadRequest());
|
|
404
|
-
|
|
417
|
+
<%_ } else { _%>
|
|
405
418
|
accountWebTestClient.post().uri("/api/register")
|
|
406
419
|
.contentType(MediaType.APPLICATION_JSON)
|
|
407
420
|
.bodyValue(TestUtil.convertObjectToJsonBytes(invalidUser))
|
|
408
421
|
.exchange()
|
|
409
422
|
.expectStatus().isBadRequest();
|
|
410
|
-
|
|
423
|
+
<%_ } _%>
|
|
411
424
|
|
|
412
425
|
Optional<<%= asEntity('User') %>> user = userRepository.findOneByLogin("bob")<% if (reactive) { %>.blockOptional()<% } %>;
|
|
413
426
|
assertThat(user).isEmpty();
|
|
414
427
|
}
|
|
415
428
|
|
|
416
|
-
@Test
|
|
417
|
-
|
|
429
|
+
@Test
|
|
430
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
431
|
+
@Transactional
|
|
432
|
+
<%_ } _%>
|
|
418
433
|
void testRegisterNullPassword() throws Exception {
|
|
419
434
|
ManagedUserVM invalidUser = new ManagedUserVM();
|
|
420
435
|
invalidUser.setLogin("bob");
|
|
@@ -423,40 +438,42 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
423
438
|
invalidUser.setLastName("Green");
|
|
424
439
|
invalidUser.setEmail("bob@example.com");
|
|
425
440
|
invalidUser.setActivated(true);
|
|
426
|
-
|
|
441
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
427
442
|
invalidUser.setImageUrl("http://placehold.it/50x50");
|
|
428
|
-
|
|
443
|
+
<%_ } _%>
|
|
429
444
|
invalidUser.setLangKey(Constants.DEFAULT_LANGUAGE);
|
|
430
445
|
invalidUser.setAuthorities(Collections.singleton(AuthoritiesConstants.USER));
|
|
431
446
|
|
|
432
|
-
|
|
447
|
+
<%_ if (!reactive) { _%>
|
|
433
448
|
restAccountMockMvc.perform(
|
|
434
449
|
post("/api/register")
|
|
435
450
|
.contentType(MediaType.APPLICATION_JSON)
|
|
436
451
|
.content(TestUtil.convertObjectToJsonBytes(invalidUser))<% if (testsNeedCsrf) { %>
|
|
437
452
|
.with(csrf())<% } %>)
|
|
438
453
|
.andExpect(status().isBadRequest());
|
|
439
|
-
|
|
454
|
+
<%_ } else { _%>
|
|
440
455
|
accountWebTestClient.post().uri("/api/register")
|
|
441
456
|
.contentType(MediaType.APPLICATION_JSON)
|
|
442
457
|
.bodyValue(TestUtil.convertObjectToJsonBytes(invalidUser))
|
|
443
458
|
.exchange()
|
|
444
459
|
.expectStatus().isBadRequest();
|
|
445
|
-
|
|
460
|
+
<%_ } _%>
|
|
446
461
|
|
|
447
462
|
Optional<<%= asEntity('User') %>> user = userRepository.findOneByLogin("bob")<% if (reactive) { %>.blockOptional()<% } %>;
|
|
448
463
|
assertThat(user).isEmpty();
|
|
449
464
|
}
|
|
450
465
|
|
|
451
|
-
@Test
|
|
452
|
-
|
|
466
|
+
@Test
|
|
467
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
468
|
+
@Transactional
|
|
469
|
+
<%_ } _%>
|
|
453
470
|
void testRegisterDuplicateLogin() throws Exception {
|
|
454
|
-
|
|
471
|
+
<%_ if (searchEngineElasticsearch && reactive) { _%>
|
|
455
472
|
// Configure the mock search repository
|
|
456
473
|
when(mockUserSearchRepository.save(any()))
|
|
457
474
|
.thenAnswer(invocation -> Mono.just(invocation.getArgument(0)));
|
|
458
475
|
|
|
459
|
-
|
|
476
|
+
<%_ } _%>
|
|
460
477
|
// First registration
|
|
461
478
|
ManagedUserVM firstUser = new ManagedUserVM();
|
|
462
479
|
firstUser.setLogin("alice");
|
|
@@ -464,9 +481,9 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
464
481
|
firstUser.setFirstName("Alice");
|
|
465
482
|
firstUser.setLastName("Something");
|
|
466
483
|
firstUser.setEmail("alice@example.com");
|
|
467
|
-
|
|
484
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
468
485
|
firstUser.setImageUrl("http://placehold.it/50x50");
|
|
469
|
-
|
|
486
|
+
<%_ } _%>
|
|
470
487
|
firstUser.setLangKey(Constants.DEFAULT_LANGUAGE);
|
|
471
488
|
firstUser.setAuthorities(Collections.singleton(AuthoritiesConstants.USER));
|
|
472
489
|
|
|
@@ -477,49 +494,49 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
477
494
|
secondUser.setFirstName(firstUser.getFirstName());
|
|
478
495
|
secondUser.setLastName(firstUser.getLastName());
|
|
479
496
|
secondUser.setEmail("alice2@example.com");
|
|
480
|
-
|
|
497
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
481
498
|
secondUser.setImageUrl(firstUser.getImageUrl());
|
|
482
|
-
|
|
499
|
+
<%_ } _%>
|
|
483
500
|
secondUser.setLangKey(firstUser.getLangKey());
|
|
484
|
-
|
|
501
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
485
502
|
secondUser.setCreatedBy(firstUser.getCreatedBy());
|
|
486
503
|
secondUser.setCreatedDate(firstUser.getCreatedDate());
|
|
487
504
|
secondUser.setLastModifiedBy(firstUser.getLastModifiedBy());
|
|
488
505
|
secondUser.setLastModifiedDate(firstUser.getLastModifiedDate());
|
|
489
|
-
|
|
506
|
+
<%_ } _%>
|
|
490
507
|
secondUser.setAuthorities(new HashSet<>(firstUser.getAuthorities()));
|
|
491
508
|
|
|
492
509
|
// First user
|
|
493
|
-
|
|
510
|
+
<%_ if (!reactive) { _%>
|
|
494
511
|
restAccountMockMvc.perform(
|
|
495
512
|
post("/api/register")
|
|
496
513
|
.contentType(MediaType.APPLICATION_JSON)
|
|
497
514
|
.content(TestUtil.convertObjectToJsonBytes(firstUser))<% if (testsNeedCsrf) { %>
|
|
498
515
|
.with(csrf())<% } %>)
|
|
499
516
|
.andExpect(status().isCreated());
|
|
500
|
-
|
|
517
|
+
<%_ } else { _%>
|
|
501
518
|
accountWebTestClient.post().uri("/api/register")
|
|
502
519
|
.contentType(MediaType.APPLICATION_JSON)
|
|
503
520
|
.bodyValue(TestUtil.convertObjectToJsonBytes(firstUser))
|
|
504
521
|
.exchange()
|
|
505
522
|
.expectStatus().isCreated();
|
|
506
|
-
|
|
523
|
+
<%_ } _%>
|
|
507
524
|
|
|
508
525
|
// Second (non activated) user
|
|
509
|
-
|
|
526
|
+
<%_ if (!reactive) { _%>
|
|
510
527
|
restAccountMockMvc.perform(
|
|
511
528
|
post("/api/register")
|
|
512
529
|
.contentType(MediaType.APPLICATION_JSON)
|
|
513
530
|
.content(TestUtil.convertObjectToJsonBytes(secondUser))<% if (testsNeedCsrf) { %>
|
|
514
531
|
.with(csrf())<% } %>)
|
|
515
532
|
.andExpect(status().isCreated());
|
|
516
|
-
|
|
533
|
+
<%_ } else { _%>
|
|
517
534
|
accountWebTestClient.post().uri("/api/register")
|
|
518
535
|
.contentType(MediaType.APPLICATION_JSON)
|
|
519
536
|
.bodyValue(TestUtil.convertObjectToJsonBytes(secondUser))
|
|
520
537
|
.exchange()
|
|
521
538
|
.expectStatus().isCreated();
|
|
522
|
-
|
|
539
|
+
<%_ } _%>
|
|
523
540
|
|
|
524
541
|
Optional<<%= asEntity('User') %>> testUser = userRepository.findOneByEmailIgnoreCase("alice2@example.com")<% if (reactive) { %>.blockOptional()<% } %>;
|
|
525
542
|
assertThat(testUser).isPresent();
|
|
@@ -527,31 +544,33 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
527
544
|
userRepository.save(testUser.get())<% if (reactive) { %>.block()<% } %>;
|
|
528
545
|
|
|
529
546
|
// Second (already activated) user
|
|
530
|
-
|
|
547
|
+
<%_ if (!reactive) { _%>
|
|
531
548
|
restAccountMockMvc.perform(
|
|
532
549
|
post("/api/register")
|
|
533
550
|
.contentType(MediaType.APPLICATION_JSON)
|
|
534
551
|
.content(TestUtil.convertObjectToJsonBytes(secondUser))<% if (testsNeedCsrf) { %>
|
|
535
552
|
.with(csrf())<% } %>)
|
|
536
553
|
.andExpect(status().is4xxClientError());
|
|
537
|
-
|
|
554
|
+
<%_ } else { _%>
|
|
538
555
|
accountWebTestClient.post().uri("/api/register")
|
|
539
556
|
.contentType(MediaType.APPLICATION_JSON)
|
|
540
557
|
.bodyValue(TestUtil.convertObjectToJsonBytes(secondUser))
|
|
541
558
|
.exchange()
|
|
542
559
|
.expectStatus().isBadRequest();
|
|
543
|
-
|
|
560
|
+
<%_ } _%>
|
|
544
561
|
}
|
|
545
562
|
|
|
546
|
-
@Test
|
|
547
|
-
|
|
563
|
+
@Test
|
|
564
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
565
|
+
@Transactional
|
|
566
|
+
<%_ } _%>
|
|
548
567
|
void testRegisterDuplicateEmail() throws Exception {
|
|
549
|
-
|
|
568
|
+
<%_ if (searchEngineElasticsearch && reactive) { _%>
|
|
550
569
|
// Configure the mock search repository
|
|
551
570
|
when(mockUserSearchRepository.save(any()))
|
|
552
571
|
.thenAnswer(invocation -> Mono.just(invocation.getArgument(0)));
|
|
553
572
|
|
|
554
|
-
|
|
573
|
+
<%_ } _%>
|
|
555
574
|
// First user
|
|
556
575
|
ManagedUserVM firstUser = new ManagedUserVM();
|
|
557
576
|
firstUser.setLogin("test-register-duplicate-email");
|
|
@@ -559,27 +578,27 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
559
578
|
firstUser.setFirstName("Alice");
|
|
560
579
|
firstUser.setLastName("Test");
|
|
561
580
|
firstUser.setEmail("test-register-duplicate-email@example.com");
|
|
562
|
-
|
|
581
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
563
582
|
firstUser.setImageUrl("http://placehold.it/50x50");
|
|
564
|
-
|
|
583
|
+
<%_ } _%>
|
|
565
584
|
firstUser.setLangKey(Constants.DEFAULT_LANGUAGE);
|
|
566
585
|
firstUser.setAuthorities(Collections.singleton(AuthoritiesConstants.USER));
|
|
567
586
|
|
|
568
587
|
// Register first user
|
|
569
|
-
|
|
588
|
+
<%_ if (!reactive) { _%>
|
|
570
589
|
restAccountMockMvc.perform(
|
|
571
590
|
post("/api/register")
|
|
572
591
|
.contentType(MediaType.APPLICATION_JSON)
|
|
573
592
|
.content(TestUtil.convertObjectToJsonBytes(firstUser))<% if (testsNeedCsrf) { %>
|
|
574
593
|
.with(csrf())<% } %>)
|
|
575
594
|
.andExpect(status().isCreated());
|
|
576
|
-
|
|
595
|
+
<%_ } else { _%>
|
|
577
596
|
accountWebTestClient.post().uri("/api/register")
|
|
578
597
|
.contentType(MediaType.APPLICATION_JSON)
|
|
579
598
|
.bodyValue(TestUtil.convertObjectToJsonBytes(firstUser))
|
|
580
599
|
.exchange()
|
|
581
600
|
.expectStatus().isCreated();
|
|
582
|
-
|
|
601
|
+
<%_ } _%>
|
|
583
602
|
|
|
584
603
|
Optional<<%= asEntity('User') %>> testUser1 = userRepository.findOneByLogin("test-register-duplicate-email")<% if (reactive) { %>.blockOptional()<% } %>;
|
|
585
604
|
assertThat(testUser1).isPresent();
|
|
@@ -591,27 +610,27 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
591
610
|
secondUser.setFirstName(firstUser.getFirstName());
|
|
592
611
|
secondUser.setLastName(firstUser.getLastName());
|
|
593
612
|
secondUser.setEmail(firstUser.getEmail());
|
|
594
|
-
|
|
613
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
595
614
|
secondUser.setImageUrl(firstUser.getImageUrl());
|
|
596
|
-
|
|
615
|
+
<%_ } _%>
|
|
597
616
|
secondUser.setLangKey(firstUser.getLangKey());
|
|
598
617
|
secondUser.setAuthorities(new HashSet<>(firstUser.getAuthorities()));
|
|
599
618
|
|
|
600
619
|
// Register second (non activated) user
|
|
601
|
-
|
|
620
|
+
<%_ if (!reactive) { _%>
|
|
602
621
|
restAccountMockMvc.perform(
|
|
603
622
|
post("/api/register")
|
|
604
623
|
.contentType(MediaType.APPLICATION_JSON)
|
|
605
624
|
.content(TestUtil.convertObjectToJsonBytes(secondUser))<% if (testsNeedCsrf) { %>
|
|
606
625
|
.with(csrf())<% } %>)
|
|
607
626
|
.andExpect(status().isCreated());
|
|
608
|
-
|
|
627
|
+
<%_ } else { _%>
|
|
609
628
|
accountWebTestClient.post().uri("/api/register")
|
|
610
629
|
.contentType(MediaType.APPLICATION_JSON)
|
|
611
630
|
.bodyValue(TestUtil.convertObjectToJsonBytes(secondUser))
|
|
612
631
|
.exchange()
|
|
613
632
|
.expectStatus().isCreated();
|
|
614
|
-
|
|
633
|
+
<%_ } _%>
|
|
615
634
|
|
|
616
635
|
Optional<<%= asEntity('User') %>> testUser2 = userRepository.findOneByLogin("test-register-duplicate-email")<% if (reactive) { %>.blockOptional()<% } %>;
|
|
617
636
|
assertThat(testUser2).isEmpty();
|
|
@@ -627,27 +646,27 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
627
646
|
userWithUpperCaseEmail.setFirstName(firstUser.getFirstName());
|
|
628
647
|
userWithUpperCaseEmail.setLastName(firstUser.getLastName());
|
|
629
648
|
userWithUpperCaseEmail.setEmail("TEST-register-duplicate-email@example.com");
|
|
630
|
-
|
|
649
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
631
650
|
userWithUpperCaseEmail.setImageUrl(firstUser.getImageUrl());
|
|
632
|
-
|
|
651
|
+
<%_ } _%>
|
|
633
652
|
userWithUpperCaseEmail.setLangKey(firstUser.getLangKey());
|
|
634
653
|
userWithUpperCaseEmail.setAuthorities(new HashSet<>(firstUser.getAuthorities()));
|
|
635
654
|
|
|
636
655
|
// Register third (not activated) user
|
|
637
|
-
|
|
656
|
+
<%_ if (!reactive) { _%>
|
|
638
657
|
restAccountMockMvc.perform(
|
|
639
658
|
post("/api/register")
|
|
640
659
|
.contentType(MediaType.APPLICATION_JSON)
|
|
641
660
|
.content(TestUtil.convertObjectToJsonBytes(userWithUpperCaseEmail))<% if (testsNeedCsrf) { %>
|
|
642
661
|
.with(csrf())<% } %>)
|
|
643
662
|
.andExpect(status().isCreated());
|
|
644
|
-
|
|
663
|
+
<%_ } else { _%>
|
|
645
664
|
accountWebTestClient.post().uri("/api/register")
|
|
646
665
|
.contentType(MediaType.APPLICATION_JSON)
|
|
647
666
|
.bodyValue(TestUtil.convertObjectToJsonBytes(userWithUpperCaseEmail))
|
|
648
667
|
.exchange()
|
|
649
668
|
.expectStatus().isCreated();
|
|
650
|
-
|
|
669
|
+
<%_ } _%>
|
|
651
670
|
|
|
652
671
|
Optional<<%= asEntity('User') %>> testUser4 = userRepository.findOneByLogin("test-register-duplicate-email-3")<% if (reactive) { %>.blockOptional()<% } %>;
|
|
653
672
|
assertThat(testUser4).isPresent();
|
|
@@ -657,24 +676,26 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
657
676
|
userService.updateUser((new <%= asDto('AdminUser') %>(testUser4.get())))<% if (reactive) { %>.block()<% } %>;
|
|
658
677
|
|
|
659
678
|
// Register 4th (already activated) user
|
|
660
|
-
|
|
679
|
+
<%_ if (!reactive) { _%>
|
|
661
680
|
restAccountMockMvc.perform(
|
|
662
681
|
post("/api/register")
|
|
663
682
|
.contentType(MediaType.APPLICATION_JSON)
|
|
664
683
|
.content(TestUtil.convertObjectToJsonBytes(secondUser))<% if (testsNeedCsrf) { %>
|
|
665
684
|
.with(csrf())<% } %>)
|
|
666
685
|
.andExpect(status().is4xxClientError());
|
|
667
|
-
|
|
686
|
+
<%_ } else { _%>
|
|
668
687
|
accountWebTestClient.post().uri("/api/register")
|
|
669
688
|
.contentType(MediaType.APPLICATION_JSON)
|
|
670
689
|
.bodyValue(TestUtil.convertObjectToJsonBytes(secondUser))
|
|
671
690
|
.exchange()
|
|
672
691
|
.expectStatus().is4xxClientError();
|
|
673
|
-
|
|
692
|
+
<%_ } _%>
|
|
674
693
|
}
|
|
675
694
|
|
|
676
|
-
@Test
|
|
677
|
-
|
|
695
|
+
@Test
|
|
696
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
697
|
+
@Transactional
|
|
698
|
+
<%_ } _%>
|
|
678
699
|
void testRegisterAdminIsIgnored() throws Exception {
|
|
679
700
|
ManagedUserVM validUser = new ManagedUserVM();
|
|
680
701
|
validUser.setLogin("badguy");
|
|
@@ -683,168 +704,178 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
683
704
|
validUser.setLastName("Guy");
|
|
684
705
|
validUser.setEmail("badguy@example.com");
|
|
685
706
|
validUser.setActivated(true);
|
|
686
|
-
|
|
707
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
687
708
|
validUser.setImageUrl("http://placehold.it/50x50");
|
|
688
|
-
|
|
709
|
+
<%_ } _%>
|
|
689
710
|
validUser.setLangKey(Constants.DEFAULT_LANGUAGE);
|
|
690
711
|
validUser.setAuthorities(Collections.singleton(AuthoritiesConstants.ADMIN));
|
|
691
712
|
|
|
692
|
-
|
|
713
|
+
<%_ if (searchEngineElasticsearch && reactive) { _%>
|
|
693
714
|
// Configure the mock search repository
|
|
694
715
|
when(mockUserSearchRepository.save(any()))
|
|
695
716
|
.thenAnswer(invocation -> Mono.just(invocation.getArgument(0)));
|
|
696
717
|
|
|
697
|
-
|
|
698
|
-
|
|
718
|
+
<%_ } _%>
|
|
719
|
+
<%_ if (!reactive) { _%>
|
|
699
720
|
restAccountMockMvc.perform(
|
|
700
721
|
post("/api/register")
|
|
701
722
|
.contentType(MediaType.APPLICATION_JSON)
|
|
702
723
|
.content(TestUtil.convertObjectToJsonBytes(validUser))<% if (testsNeedCsrf) { %>
|
|
703
724
|
.with(csrf())<% } %>)
|
|
704
725
|
.andExpect(status().isCreated());
|
|
705
|
-
|
|
726
|
+
<%_ } else { _%>
|
|
706
727
|
accountWebTestClient.post().uri("/api/register")
|
|
707
728
|
.contentType(MediaType.APPLICATION_JSON)
|
|
708
729
|
.bodyValue(TestUtil.convertObjectToJsonBytes(validUser))
|
|
709
730
|
.exchange()
|
|
710
731
|
.expectStatus().isCreated();
|
|
711
|
-
|
|
732
|
+
<%_ } _%>
|
|
712
733
|
|
|
713
|
-
Optional<<%= asEntity('User') %>> userDup = userRepository.findOne<% if (
|
|
734
|
+
Optional<<%= asEntity('User') %>> userDup = userRepository.findOne<% if (databaseTypeSql) { %>WithAuthorities<% } %>ByLogin("badguy")<% if (reactive) { %>.blockOptional()<% } %>;
|
|
714
735
|
assertThat(userDup).isPresent();
|
|
715
736
|
assertThat(userDup.get().getAuthorities()).hasSize(1)
|
|
716
|
-
.containsExactly(<% if (
|
|
737
|
+
.containsExactly(<% if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { %>authorityRepository.findById(AuthoritiesConstants.USER).<% if (reactive) { %>block<% } else { %>get<% } %>()<% } %><% if (databaseTypeCassandra || databaseTypeCouchbase) { %>AuthoritiesConstants.USER<% } %>);
|
|
717
738
|
}
|
|
718
739
|
|
|
719
|
-
@Test
|
|
720
|
-
|
|
740
|
+
@Test
|
|
741
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
742
|
+
@Transactional
|
|
743
|
+
<%_ } _%>
|
|
721
744
|
void testActivateAccount()<% if (!reactive) { %> throws Exception<% } %> {
|
|
722
|
-
|
|
745
|
+
<%_ if (searchEngineElasticsearch && reactive) { _%>
|
|
723
746
|
// Configure the mock search repository
|
|
724
747
|
when(mockUserSearchRepository.save(any()))
|
|
725
748
|
.thenAnswer(invocation -> Mono.just(invocation.getArgument(0)));
|
|
726
749
|
|
|
727
|
-
|
|
750
|
+
<%_ } _%>
|
|
728
751
|
final String activationKey = "some activation key";
|
|
729
752
|
<%= asEntity('User') %> user = new <%= asEntity('User') %>();
|
|
730
|
-
|
|
753
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
731
754
|
user.setId(UUID.randomUUID().toString());
|
|
732
|
-
|
|
755
|
+
<%_ } _%>
|
|
733
756
|
user.setLogin("activate-account");
|
|
734
757
|
user.setEmail("activate-account@example.com");
|
|
735
758
|
user.setPassword(RandomStringUtils.random(60));
|
|
736
759
|
user.setActivated(false);
|
|
737
760
|
user.setActivationKey(activationKey);
|
|
738
|
-
|
|
761
|
+
<%_ if (databaseTypeSql && reactive) { _%>
|
|
739
762
|
user.setCreatedBy(Constants.SYSTEM);
|
|
740
|
-
|
|
763
|
+
<%_ } _%>
|
|
741
764
|
|
|
742
|
-
userRepository.save<% if (
|
|
765
|
+
userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
|
|
743
766
|
|
|
744
|
-
|
|
767
|
+
<%_ if (!reactive) { _%>
|
|
745
768
|
restAccountMockMvc.perform(get("/api/activate?key={activationKey}", activationKey))
|
|
746
769
|
.andExpect(status().isOk());
|
|
747
|
-
|
|
770
|
+
<%_ } else { _%>
|
|
748
771
|
accountWebTestClient.get().uri("/api/activate?key={activationKey}", activationKey)
|
|
749
772
|
.exchange()
|
|
750
773
|
.expectStatus().isOk();
|
|
751
|
-
|
|
774
|
+
<%_ } _%>
|
|
752
775
|
|
|
753
776
|
user = userRepository.findOneByLogin(user.getLogin())<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
|
|
754
777
|
assertThat(user.isActivated()).isTrue();
|
|
755
778
|
}
|
|
756
779
|
|
|
757
|
-
@Test
|
|
758
|
-
|
|
780
|
+
@Test
|
|
781
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
782
|
+
@Transactional
|
|
783
|
+
<%_ } _%>
|
|
759
784
|
void testActivateAccountWithWrongKey() <% if (!reactive) { %>throws Exception <% } %>{
|
|
760
|
-
|
|
785
|
+
<%_ if (!reactive) { _%>
|
|
761
786
|
restAccountMockMvc.perform(get("/api/activate?key=wrongActivationKey"))
|
|
762
787
|
.andExpect(status().isInternalServerError());
|
|
763
|
-
|
|
788
|
+
<%_ } else { _%>
|
|
764
789
|
accountWebTestClient.get().uri("/api/activate?key=wrongActivationKey")
|
|
765
790
|
.exchange()
|
|
766
791
|
.expectStatus().isEqualTo(HttpStatus.INTERNAL_SERVER_ERROR);
|
|
767
|
-
|
|
792
|
+
<%_ } _%>
|
|
768
793
|
}
|
|
769
794
|
|
|
770
|
-
@Test
|
|
771
|
-
|
|
795
|
+
@Test
|
|
796
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
797
|
+
@Transactional
|
|
798
|
+
<%_ } _%>
|
|
772
799
|
@WithMockUser("save-account")
|
|
773
800
|
void testSaveAccount() throws Exception {
|
|
774
801
|
<%= asEntity('User') %> user = new <%= asEntity('User') %>();
|
|
775
|
-
|
|
802
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
776
803
|
user.setId(UUID.randomUUID().toString());
|
|
777
|
-
|
|
804
|
+
<%_ } _%>
|
|
778
805
|
user.setLogin("save-account");
|
|
779
806
|
user.setEmail("save-account@example.com");
|
|
780
807
|
user.setPassword(RandomStringUtils.random(60));
|
|
781
808
|
user.setActivated(true);
|
|
782
|
-
|
|
809
|
+
<%_ if (databaseTypeSql && reactive) { _%>
|
|
783
810
|
user.setCreatedBy(Constants.SYSTEM);
|
|
784
|
-
|
|
785
|
-
userRepository.save<% if (
|
|
811
|
+
<%_ } _%>
|
|
812
|
+
userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
|
|
786
813
|
|
|
787
|
-
|
|
814
|
+
<%_ if (searchEngineElasticsearch && reactive) { _%>
|
|
788
815
|
// Configure the mock search repository
|
|
789
816
|
when(mockUserSearchRepository.save(any()))
|
|
790
817
|
.thenAnswer(invocation -> Mono.just(invocation.getArgument(0)));
|
|
791
818
|
|
|
792
|
-
|
|
819
|
+
<%_ } _%>
|
|
793
820
|
<%= asDto('AdminUser') %> userDTO = new <%= asDto('AdminUser') %>();
|
|
794
821
|
userDTO.setLogin("not-used");
|
|
795
822
|
userDTO.setFirstName("firstname");
|
|
796
823
|
userDTO.setLastName("lastname");
|
|
797
824
|
userDTO.setEmail("save-account@example.com");
|
|
798
825
|
userDTO.setActivated(false);
|
|
799
|
-
|
|
826
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
800
827
|
userDTO.setImageUrl("http://placehold.it/50x50");
|
|
801
|
-
|
|
828
|
+
<%_ } _%>
|
|
802
829
|
userDTO.setLangKey(Constants.DEFAULT_LANGUAGE);
|
|
803
830
|
userDTO.setAuthorities(Collections.singleton(AuthoritiesConstants.ADMIN));
|
|
804
831
|
|
|
805
|
-
|
|
832
|
+
<%_ if (!reactive) { _%>
|
|
806
833
|
restAccountMockMvc.perform(
|
|
807
834
|
post("/api/account")
|
|
808
835
|
.contentType(MediaType.APPLICATION_JSON)
|
|
809
836
|
.content(TestUtil.convertObjectToJsonBytes(userDTO))<% if (testsNeedCsrf) { %>
|
|
810
837
|
.with(csrf())<% } %>)
|
|
811
838
|
.andExpect(status().isOk());
|
|
812
|
-
|
|
839
|
+
<%_ } else { _%>
|
|
813
840
|
accountWebTestClient.post().uri("/api/account")
|
|
814
841
|
.contentType(MediaType.APPLICATION_JSON)
|
|
815
842
|
.bodyValue(TestUtil.convertObjectToJsonBytes(userDTO))
|
|
816
843
|
.exchange()
|
|
817
844
|
.expectStatus().isOk();
|
|
818
|
-
|
|
845
|
+
<%_ } _%>
|
|
819
846
|
|
|
820
|
-
<%= asEntity('User') %> updatedUser = userRepository.findOne<% if (
|
|
847
|
+
<%= asEntity('User') %> updatedUser = userRepository.findOne<% if (databaseTypeSql) { %>WithAuthorities<% } %>ByLogin(user.getLogin())<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
|
|
821
848
|
assertThat(updatedUser.getFirstName()).isEqualTo(userDTO.getFirstName());
|
|
822
849
|
assertThat(updatedUser.getLastName()).isEqualTo(userDTO.getLastName());
|
|
823
850
|
assertThat(updatedUser.getEmail()).isEqualTo(userDTO.getEmail());
|
|
824
851
|
assertThat(updatedUser.getLangKey()).isEqualTo(userDTO.getLangKey());
|
|
825
|
-
assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword())
|
|
826
|
-
|
|
852
|
+
assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
|
|
853
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
854
|
+
assertThat(updatedUser.getImageUrl()).isEqualTo(userDTO.getImageUrl());
|
|
855
|
+
<%_ } _%>
|
|
827
856
|
assertThat(updatedUser.isActivated()).isTrue();
|
|
828
857
|
assertThat(updatedUser.getAuthorities()).isEmpty();
|
|
829
858
|
}
|
|
830
859
|
|
|
831
|
-
@Test
|
|
832
|
-
|
|
860
|
+
@Test
|
|
861
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
862
|
+
@Transactional
|
|
863
|
+
<%_ } _%>
|
|
833
864
|
@WithMockUser("save-invalid-email")
|
|
834
865
|
void testSaveInvalidEmail() throws Exception {
|
|
835
866
|
<%= asEntity('User') %> user = new <%= asEntity('User') %>();
|
|
836
|
-
|
|
867
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
837
868
|
user.setId(UUID.randomUUID().toString());
|
|
838
|
-
|
|
869
|
+
<%_ } _%>
|
|
839
870
|
user.setLogin("save-invalid-email");
|
|
840
871
|
user.setEmail("save-invalid-email@example.com");
|
|
841
872
|
user.setPassword(RandomStringUtils.random(60));
|
|
842
873
|
user.setActivated(true);
|
|
843
|
-
|
|
874
|
+
<%_ if (databaseTypeSql && reactive) { _%>
|
|
844
875
|
user.setCreatedBy(Constants.SYSTEM);
|
|
845
|
-
|
|
876
|
+
<%_ } _%>
|
|
846
877
|
|
|
847
|
-
userRepository.save<% if (
|
|
878
|
+
userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
|
|
848
879
|
|
|
849
880
|
<%= asDto('AdminUser') %> userDTO = new <%= asDto('AdminUser') %>();
|
|
850
881
|
userDTO.setLogin("not-used");
|
|
@@ -852,60 +883,62 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
852
883
|
userDTO.setLastName("lastname");
|
|
853
884
|
userDTO.setEmail("invalid email");
|
|
854
885
|
userDTO.setActivated(false);
|
|
855
|
-
|
|
886
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
856
887
|
userDTO.setImageUrl("http://placehold.it/50x50");
|
|
857
|
-
|
|
888
|
+
<%_ } _%>
|
|
858
889
|
userDTO.setLangKey(Constants.DEFAULT_LANGUAGE);
|
|
859
890
|
userDTO.setAuthorities(Collections.singleton(AuthoritiesConstants.ADMIN));
|
|
860
891
|
|
|
861
|
-
|
|
892
|
+
<%_ if (!reactive) { _%>
|
|
862
893
|
restAccountMockMvc.perform(
|
|
863
894
|
post("/api/account")
|
|
864
895
|
.contentType(MediaType.APPLICATION_JSON)
|
|
865
896
|
.content(TestUtil.convertObjectToJsonBytes(userDTO))<% if (testsNeedCsrf) { %>
|
|
866
897
|
.with(csrf())<% } %>)
|
|
867
898
|
.andExpect(status().isBadRequest());
|
|
868
|
-
|
|
899
|
+
<%_ } else { _%>
|
|
869
900
|
accountWebTestClient.post().uri("/api/account")
|
|
870
901
|
.contentType(MediaType.APPLICATION_JSON)
|
|
871
902
|
.bodyValue(TestUtil.convertObjectToJsonBytes(userDTO))
|
|
872
903
|
.exchange()
|
|
873
904
|
.expectStatus().isBadRequest();
|
|
874
|
-
|
|
905
|
+
<%_ } _%>
|
|
875
906
|
|
|
876
907
|
assertThat(userRepository.findOneByEmailIgnoreCase("invalid email")<% if (reactive) { %>.blockOptional()<% } %>).isNotPresent();
|
|
877
908
|
}
|
|
878
909
|
|
|
879
|
-
@Test
|
|
880
|
-
|
|
910
|
+
@Test
|
|
911
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
912
|
+
@Transactional
|
|
913
|
+
<%_ } _%>
|
|
881
914
|
@WithMockUser("save-existing-email")
|
|
882
915
|
void testSaveExistingEmail() throws Exception {
|
|
883
916
|
<%= asEntity('User') %> user = new <%= asEntity('User') %>();
|
|
884
|
-
|
|
917
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
885
918
|
user.setId(UUID.randomUUID().toString());
|
|
886
|
-
|
|
919
|
+
<%_ } _%>
|
|
887
920
|
user.setLogin("save-existing-email");
|
|
888
921
|
user.setEmail("save-existing-email@example.com");
|
|
889
922
|
user.setPassword(RandomStringUtils.random(60));
|
|
890
923
|
user.setActivated(true);
|
|
891
|
-
|
|
924
|
+
<%_ if (databaseTypeSql && reactive) { _%>
|
|
892
925
|
user.setCreatedBy(Constants.SYSTEM);
|
|
893
|
-
|
|
894
|
-
userRepository.save<% if (
|
|
926
|
+
<%_ } _%>
|
|
927
|
+
userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
|
|
895
928
|
|
|
896
929
|
<%= asEntity('User') %> anotherUser = new <%= asEntity('User') %>();
|
|
897
|
-
|
|
930
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
898
931
|
anotherUser.setId(UUID.randomUUID().toString());
|
|
899
|
-
|
|
932
|
+
<%_ } _%>
|
|
900
933
|
anotherUser.setLogin("save-existing-email2");
|
|
901
934
|
anotherUser.setEmail("save-existing-email2@example.com");
|
|
902
935
|
anotherUser.setPassword(RandomStringUtils.random(60));
|
|
903
936
|
anotherUser.setActivated(true);
|
|
904
|
-
|
|
937
|
+
<%_ if (databaseTypeSql && reactive) { _%>
|
|
905
938
|
anotherUser.setCreatedBy(Constants.SYSTEM);
|
|
906
|
-
|
|
939
|
+
<%_ } _%>
|
|
907
940
|
|
|
908
|
-
userRepository.save<% if (
|
|
941
|
+
userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(anotherUser)<% if (reactive) { %>.block()<% } %>;
|
|
909
942
|
|
|
910
943
|
<%= asDto('AdminUser') %> userDTO = new <%= asDto('AdminUser') %>();
|
|
911
944
|
userDTO.setLogin("not-used");
|
|
@@ -913,348 +946,364 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
913
946
|
userDTO.setLastName("lastname");
|
|
914
947
|
userDTO.setEmail("save-existing-email2@example.com");
|
|
915
948
|
userDTO.setActivated(false);
|
|
916
|
-
|
|
949
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
917
950
|
userDTO.setImageUrl("http://placehold.it/50x50");
|
|
918
|
-
|
|
951
|
+
<%_ } _%>
|
|
919
952
|
userDTO.setLangKey(Constants.DEFAULT_LANGUAGE);
|
|
920
953
|
userDTO.setAuthorities(Collections.singleton(AuthoritiesConstants.ADMIN));
|
|
921
954
|
|
|
922
|
-
|
|
955
|
+
<%_ if (!reactive) { _%>
|
|
923
956
|
restAccountMockMvc.perform(
|
|
924
957
|
post("/api/account")
|
|
925
958
|
.contentType(MediaType.APPLICATION_JSON)
|
|
926
959
|
.content(TestUtil.convertObjectToJsonBytes(userDTO))<% if (testsNeedCsrf) { %>
|
|
927
960
|
.with(csrf())<% } %>)
|
|
928
961
|
.andExpect(status().isBadRequest());
|
|
929
|
-
|
|
962
|
+
<%_ } else { _%>
|
|
930
963
|
accountWebTestClient.post().uri("/api/account")
|
|
931
964
|
.contentType(MediaType.APPLICATION_JSON)
|
|
932
965
|
.bodyValue(TestUtil.convertObjectToJsonBytes(userDTO))
|
|
933
966
|
.exchange()
|
|
934
967
|
.expectStatus().isBadRequest();
|
|
935
|
-
|
|
968
|
+
<%_ } _%>
|
|
936
969
|
|
|
937
970
|
<%= asEntity('User') %> updatedUser = userRepository.findOneByLogin("save-existing-email")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
|
|
938
971
|
assertThat(updatedUser.getEmail()).isEqualTo("save-existing-email@example.com");
|
|
939
972
|
}
|
|
940
973
|
|
|
941
|
-
@Test
|
|
942
|
-
|
|
974
|
+
@Test
|
|
975
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
976
|
+
@Transactional
|
|
977
|
+
<%_ } _%>
|
|
943
978
|
@WithMockUser("save-existing-email-and-login")
|
|
944
979
|
void testSaveExistingEmailAndLogin() throws Exception {
|
|
945
980
|
<%= asEntity('User') %> user = new <%= asEntity('User') %>();
|
|
946
|
-
|
|
981
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
947
982
|
user.setId(UUID.randomUUID().toString());
|
|
948
|
-
|
|
983
|
+
<%_ } _%>
|
|
949
984
|
user.setLogin("save-existing-email-and-login");
|
|
950
985
|
user.setEmail("save-existing-email-and-login@example.com");
|
|
951
986
|
user.setPassword(RandomStringUtils.random(60));
|
|
952
987
|
user.setActivated(true);
|
|
953
|
-
|
|
988
|
+
<%_ if (databaseTypeSql && reactive) { _%>
|
|
954
989
|
user.setCreatedBy(Constants.SYSTEM);
|
|
955
|
-
|
|
956
|
-
userRepository.save<% if (
|
|
990
|
+
<%_ } _%>
|
|
991
|
+
userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
|
|
957
992
|
|
|
958
|
-
|
|
993
|
+
<%_ if (searchEngineElasticsearch && reactive) { _%>
|
|
959
994
|
// Configure the mock search repository
|
|
960
995
|
when(mockUserSearchRepository.save(any()))
|
|
961
996
|
.thenAnswer(invocation -> Mono.just(invocation.getArgument(0)));
|
|
962
997
|
|
|
963
|
-
|
|
998
|
+
<%_ } _%>
|
|
964
999
|
<%= asDto('AdminUser') %> userDTO = new <%= asDto('AdminUser') %>();
|
|
965
1000
|
userDTO.setLogin("not-used");
|
|
966
1001
|
userDTO.setFirstName("firstname");
|
|
967
1002
|
userDTO.setLastName("lastname");
|
|
968
1003
|
userDTO.setEmail("save-existing-email-and-login@example.com");
|
|
969
1004
|
userDTO.setActivated(false);
|
|
970
|
-
|
|
1005
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
971
1006
|
userDTO.setImageUrl("http://placehold.it/50x50");
|
|
972
|
-
|
|
1007
|
+
<%_ } _%>
|
|
973
1008
|
userDTO.setLangKey(Constants.DEFAULT_LANGUAGE);
|
|
974
1009
|
userDTO.setAuthorities(Collections.singleton(AuthoritiesConstants.ADMIN));
|
|
975
1010
|
|
|
976
|
-
|
|
1011
|
+
<%_ if (!reactive) { _%>
|
|
977
1012
|
restAccountMockMvc.perform(
|
|
978
1013
|
post("/api/account")
|
|
979
1014
|
.contentType(MediaType.APPLICATION_JSON)
|
|
980
1015
|
.content(TestUtil.convertObjectToJsonBytes(userDTO))<% if (testsNeedCsrf) { %>
|
|
981
1016
|
.with(csrf())<% } %>)
|
|
982
1017
|
.andExpect(status().isOk());
|
|
983
|
-
|
|
1018
|
+
<%_ } else { _%>
|
|
984
1019
|
accountWebTestClient.post().uri("/api/account")
|
|
985
1020
|
.contentType(MediaType.APPLICATION_JSON)
|
|
986
1021
|
.bodyValue(TestUtil.convertObjectToJsonBytes(userDTO))
|
|
987
1022
|
.exchange()
|
|
988
1023
|
.expectStatus().isOk();
|
|
989
|
-
|
|
1024
|
+
<%_ } _%>
|
|
990
1025
|
|
|
991
1026
|
<%= asEntity('User') %> updatedUser = userRepository.findOneByLogin("save-existing-email-and-login")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
|
|
992
1027
|
assertThat(updatedUser.getEmail()).isEqualTo("save-existing-email-and-login@example.com");
|
|
993
1028
|
}
|
|
994
1029
|
|
|
995
|
-
@Test
|
|
996
|
-
|
|
1030
|
+
@Test
|
|
1031
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
1032
|
+
@Transactional
|
|
1033
|
+
<%_ } _%>
|
|
997
1034
|
@WithMockUser("change-password-wrong-existing-password")
|
|
998
1035
|
void testChangePasswordWrongExistingPassword() throws Exception {
|
|
999
1036
|
<%= asEntity('User') %> user = new <%= asEntity('User') %>();
|
|
1000
|
-
|
|
1037
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
1001
1038
|
user.setId(UUID.randomUUID().toString());
|
|
1002
|
-
|
|
1039
|
+
<%_ } _%>
|
|
1003
1040
|
String currentPassword = RandomStringUtils.random(60);
|
|
1004
1041
|
user.setPassword(passwordEncoder.encode(currentPassword));
|
|
1005
1042
|
user.setLogin("change-password-wrong-existing-password");
|
|
1006
1043
|
user.setEmail("change-password-wrong-existing-password@example.com");
|
|
1007
|
-
|
|
1044
|
+
<%_ if (databaseTypeSql && reactive) { _%>
|
|
1008
1045
|
user.setCreatedBy(Constants.SYSTEM);
|
|
1009
|
-
|
|
1010
|
-
userRepository.save<% if (
|
|
1046
|
+
<%_ } _%>
|
|
1047
|
+
userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
|
|
1011
1048
|
|
|
1012
|
-
|
|
1049
|
+
<%_ if (!reactive) { _%>
|
|
1013
1050
|
restAccountMockMvc.perform(post("/api/account/change-password")
|
|
1014
1051
|
.contentType(MediaType.APPLICATION_JSON)
|
|
1015
1052
|
.content(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO("1"+currentPassword, "new password")))
|
|
1016
1053
|
<%_ if (testsNeedCsrf) { _%>
|
|
1017
1054
|
.with(csrf())<%_ } _%>)
|
|
1018
1055
|
.andExpect(status().isBadRequest());
|
|
1019
|
-
|
|
1056
|
+
<%_ } else { _%>
|
|
1020
1057
|
accountWebTestClient.post().uri("/api/account/change-password")
|
|
1021
1058
|
.contentType(MediaType.APPLICATION_JSON)
|
|
1022
1059
|
.bodyValue(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO("1"+currentPassword, "new password")))
|
|
1023
1060
|
.exchange()
|
|
1024
1061
|
.expectStatus().isBadRequest();
|
|
1025
|
-
|
|
1062
|
+
<%_ } _%>
|
|
1026
1063
|
|
|
1027
1064
|
<%= asEntity('User') %> updatedUser = userRepository.findOneByLogin("change-password-wrong-existing-password")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
|
|
1028
1065
|
assertThat(passwordEncoder.matches("new password", updatedUser.getPassword())).isFalse();
|
|
1029
1066
|
assertThat(passwordEncoder.matches(currentPassword, updatedUser.getPassword())).isTrue();
|
|
1030
1067
|
}
|
|
1031
1068
|
|
|
1032
|
-
@Test
|
|
1033
|
-
|
|
1069
|
+
@Test
|
|
1070
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
1071
|
+
@Transactional
|
|
1072
|
+
<%_ } _%>
|
|
1034
1073
|
@WithMockUser("change-password")
|
|
1035
1074
|
void testChangePassword() throws Exception {
|
|
1036
1075
|
<%= asEntity('User') %> user = new <%= asEntity('User') %>();
|
|
1037
|
-
|
|
1076
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
1038
1077
|
user.setId(UUID.randomUUID().toString());
|
|
1039
|
-
|
|
1078
|
+
<%_ } _%>
|
|
1040
1079
|
String currentPassword = RandomStringUtils.random(60);
|
|
1041
1080
|
user.setPassword(passwordEncoder.encode(currentPassword));
|
|
1042
1081
|
user.setLogin("change-password");
|
|
1043
1082
|
user.setEmail("change-password@example.com");
|
|
1044
|
-
|
|
1083
|
+
<%_ if (databaseTypeSql && reactive) { _%>
|
|
1045
1084
|
user.setCreatedBy(Constants.SYSTEM);
|
|
1046
|
-
|
|
1047
|
-
userRepository.save<% if (
|
|
1085
|
+
<%_ } _%>
|
|
1086
|
+
userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
|
|
1048
1087
|
|
|
1049
|
-
|
|
1088
|
+
<%_ if (!reactive) { _%>
|
|
1050
1089
|
restAccountMockMvc.perform(post("/api/account/change-password")
|
|
1051
1090
|
.contentType(MediaType.APPLICATION_JSON)
|
|
1052
1091
|
.content(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO(currentPassword, "new password")))
|
|
1053
1092
|
<%_ if (testsNeedCsrf) { _%>
|
|
1054
1093
|
.with(csrf())<%_ } _%>)
|
|
1055
1094
|
.andExpect(status().isOk());
|
|
1056
|
-
|
|
1095
|
+
<%_ } else { _%>
|
|
1057
1096
|
accountWebTestClient.post().uri("/api/account/change-password")
|
|
1058
1097
|
.contentType(MediaType.APPLICATION_JSON)
|
|
1059
1098
|
.bodyValue(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO(currentPassword, "new password")))
|
|
1060
1099
|
.exchange()
|
|
1061
1100
|
.expectStatus().isOk();
|
|
1062
|
-
|
|
1101
|
+
<%_ } _%>
|
|
1063
1102
|
|
|
1064
1103
|
<%= asEntity('User') %> updatedUser = userRepository.findOneByLogin("change-password")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
|
|
1065
1104
|
assertThat(passwordEncoder.matches("new password", updatedUser.getPassword())).isTrue();
|
|
1066
1105
|
}
|
|
1067
1106
|
|
|
1068
|
-
@Test
|
|
1069
|
-
|
|
1107
|
+
@Test
|
|
1108
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
1109
|
+
@Transactional
|
|
1110
|
+
<%_ } _%>
|
|
1070
1111
|
@WithMockUser("change-password-too-small")
|
|
1071
1112
|
void testChangePasswordTooSmall() throws Exception {
|
|
1072
1113
|
<%= asEntity('User') %> user = new <%= asEntity('User') %>();
|
|
1073
|
-
|
|
1114
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
1074
1115
|
user.setId(UUID.randomUUID().toString());
|
|
1075
|
-
|
|
1116
|
+
<%_ } _%>
|
|
1076
1117
|
String currentPassword = RandomStringUtils.random(60);
|
|
1077
1118
|
user.setPassword(passwordEncoder.encode(currentPassword));
|
|
1078
1119
|
user.setLogin("change-password-too-small");
|
|
1079
1120
|
user.setEmail("change-password-too-small@example.com");
|
|
1080
|
-
|
|
1121
|
+
<%_ if (databaseTypeSql && reactive) { _%>
|
|
1081
1122
|
user.setCreatedBy(Constants.SYSTEM);
|
|
1082
|
-
|
|
1083
|
-
userRepository.save<% if (
|
|
1123
|
+
<%_ } _%>
|
|
1124
|
+
userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
|
|
1084
1125
|
|
|
1085
1126
|
String newPassword = RandomStringUtils.random(ManagedUserVM.PASSWORD_MIN_LENGTH - 1);
|
|
1086
1127
|
|
|
1087
|
-
|
|
1128
|
+
<%_ if (!reactive) { _%>
|
|
1088
1129
|
restAccountMockMvc.perform(post("/api/account/change-password")
|
|
1089
1130
|
.contentType(MediaType.APPLICATION_JSON)
|
|
1090
1131
|
.content(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO(currentPassword, newPassword)))
|
|
1091
1132
|
<%_ if (testsNeedCsrf) { _%>
|
|
1092
1133
|
.with(csrf())<%_ } _%>)
|
|
1093
1134
|
.andExpect(status().isBadRequest());
|
|
1094
|
-
|
|
1135
|
+
<%_ } else { _%>
|
|
1095
1136
|
accountWebTestClient.post().uri("/api/account/change-password")
|
|
1096
1137
|
.contentType(MediaType.APPLICATION_JSON)
|
|
1097
1138
|
.bodyValue(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO(currentPassword, newPassword)))
|
|
1098
1139
|
.exchange()
|
|
1099
1140
|
.expectStatus().isBadRequest();
|
|
1100
|
-
|
|
1141
|
+
<%_ } _%>
|
|
1101
1142
|
|
|
1102
1143
|
<%= asEntity('User') %> updatedUser = userRepository.findOneByLogin("change-password-too-small")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
|
|
1103
1144
|
assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
|
|
1104
1145
|
}
|
|
1105
1146
|
|
|
1106
|
-
@Test
|
|
1107
|
-
|
|
1147
|
+
@Test
|
|
1148
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
1149
|
+
@Transactional
|
|
1150
|
+
<%_ } _%>
|
|
1108
1151
|
@WithMockUser("change-password-too-long")
|
|
1109
1152
|
void testChangePasswordTooLong() throws Exception {
|
|
1110
1153
|
<%= asEntity('User') %> user = new <%= asEntity('User') %>();
|
|
1111
|
-
|
|
1154
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
1112
1155
|
user.setId(UUID.randomUUID().toString());
|
|
1113
|
-
|
|
1156
|
+
<%_ } _%>
|
|
1114
1157
|
String currentPassword = RandomStringUtils.random(60);
|
|
1115
1158
|
user.setPassword(passwordEncoder.encode(currentPassword));
|
|
1116
1159
|
user.setLogin("change-password-too-long");
|
|
1117
1160
|
user.setEmail("change-password-too-long@example.com");
|
|
1118
|
-
|
|
1161
|
+
<%_ if (databaseTypeSql && reactive) { _%>
|
|
1119
1162
|
user.setCreatedBy(Constants.SYSTEM);
|
|
1120
|
-
|
|
1121
|
-
userRepository.save<% if (
|
|
1163
|
+
<%_ } _%>
|
|
1164
|
+
userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
|
|
1122
1165
|
|
|
1123
1166
|
String newPassword = RandomStringUtils.random(ManagedUserVM.PASSWORD_MAX_LENGTH + 1);
|
|
1124
1167
|
|
|
1125
|
-
|
|
1168
|
+
<%_ if (!reactive) { _%>
|
|
1126
1169
|
restAccountMockMvc.perform(post("/api/account/change-password")
|
|
1127
1170
|
.contentType(MediaType.APPLICATION_JSON)
|
|
1128
1171
|
.content(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO(currentPassword, newPassword)))
|
|
1129
1172
|
<%_ if (testsNeedCsrf) { _%>
|
|
1130
1173
|
.with(csrf())<%_ } _%>)
|
|
1131
1174
|
.andExpect(status().isBadRequest());
|
|
1132
|
-
|
|
1175
|
+
<%_ } else { _%>
|
|
1133
1176
|
accountWebTestClient.post().uri("/api/account/change-password")
|
|
1134
1177
|
.contentType(MediaType.APPLICATION_JSON)
|
|
1135
1178
|
.bodyValue(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO(currentPassword, newPassword)))
|
|
1136
1179
|
.exchange()
|
|
1137
1180
|
.expectStatus().isBadRequest();
|
|
1138
|
-
|
|
1181
|
+
<%_ } _%>
|
|
1139
1182
|
|
|
1140
1183
|
<%= asEntity('User') %> updatedUser = userRepository.findOneByLogin("change-password-too-long")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
|
|
1141
1184
|
assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
|
|
1142
1185
|
}
|
|
1143
1186
|
|
|
1144
|
-
@Test
|
|
1145
|
-
|
|
1187
|
+
@Test
|
|
1188
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
1189
|
+
@Transactional
|
|
1190
|
+
<%_ } _%>
|
|
1146
1191
|
@WithMockUser("change-password-empty")
|
|
1147
1192
|
void testChangePasswordEmpty() throws Exception {
|
|
1148
1193
|
<%= asEntity('User') %> user = new <%= asEntity('User') %>();
|
|
1149
|
-
|
|
1194
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
1150
1195
|
user.setId(UUID.randomUUID().toString());
|
|
1151
|
-
|
|
1196
|
+
<%_ } _%>
|
|
1152
1197
|
String currentPassword = RandomStringUtils.random(60);
|
|
1153
1198
|
user.setPassword(passwordEncoder.encode(currentPassword));
|
|
1154
1199
|
user.setLogin("change-password-empty");
|
|
1155
1200
|
user.setEmail("change-password-empty@example.com");
|
|
1156
|
-
|
|
1201
|
+
<%_ if (databaseTypeSql && reactive) { _%>
|
|
1157
1202
|
user.setCreatedBy(Constants.SYSTEM);
|
|
1158
|
-
|
|
1159
|
-
userRepository.save<% if (
|
|
1203
|
+
<%_ } _%>
|
|
1204
|
+
userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
|
|
1160
1205
|
|
|
1161
|
-
|
|
1206
|
+
<%_ if (!reactive) { _%>
|
|
1162
1207
|
restAccountMockMvc.perform(post("/api/account/change-password")
|
|
1163
1208
|
.contentType(MediaType.APPLICATION_JSON)
|
|
1164
1209
|
.content(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO(currentPassword, "")))
|
|
1165
1210
|
<%_ if (testsNeedCsrf) { _%>
|
|
1166
1211
|
.with(csrf())<%_ } _%>)
|
|
1167
1212
|
.andExpect(status().isBadRequest());
|
|
1168
|
-
|
|
1213
|
+
<%_ } else { _%>
|
|
1169
1214
|
accountWebTestClient.post().uri("/api/account/change-password")
|
|
1170
1215
|
.contentType(MediaType.APPLICATION_JSON)
|
|
1171
1216
|
.bodyValue(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO(currentPassword, "")))
|
|
1172
1217
|
.exchange()
|
|
1173
1218
|
.expectStatus().isBadRequest();
|
|
1174
|
-
|
|
1219
|
+
<%_ } _%>
|
|
1175
1220
|
|
|
1176
1221
|
<%= asEntity('User') %> updatedUser = userRepository.findOneByLogin("change-password-empty")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
|
|
1177
1222
|
assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
|
|
1178
1223
|
}
|
|
1179
|
-
|
|
1224
|
+
<%_ if (authenticationTypeSession && !reactive) { _%>
|
|
1180
1225
|
|
|
1181
|
-
@Test
|
|
1182
|
-
|
|
1226
|
+
@Test
|
|
1227
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
1228
|
+
@Transactional
|
|
1229
|
+
<%_ } _%>
|
|
1183
1230
|
@WithMockUser("current-sessions")
|
|
1184
1231
|
void testGetCurrentSessions() <% if (!reactive) { %>throws Exception <% } %>{
|
|
1185
1232
|
<%= asEntity('User') %> user = new <%= asEntity('User') %>();
|
|
1186
|
-
|
|
1233
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
1187
1234
|
user.setId(UUID.randomUUID().toString());
|
|
1188
|
-
|
|
1235
|
+
<%_ } _%>
|
|
1189
1236
|
user.setPassword(RandomStringUtils.random(60));
|
|
1190
1237
|
user.setLogin("current-sessions");
|
|
1191
1238
|
user.setEmail("current-sessions@example.com");
|
|
1192
|
-
|
|
1239
|
+
<%_ if (databaseTypeSql && reactive) { _%>
|
|
1193
1240
|
user.setCreatedBy(Constants.SYSTEM);
|
|
1194
|
-
|
|
1195
|
-
userRepository.save<% if (
|
|
1241
|
+
<%_ } _%>
|
|
1242
|
+
userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
|
|
1196
1243
|
|
|
1197
1244
|
PersistentToken token = new PersistentToken();
|
|
1198
1245
|
token.setSeries("current-sessions");
|
|
1199
|
-
|
|
1246
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
|
|
1200
1247
|
token.setUser(user);
|
|
1201
|
-
|
|
1248
|
+
<%_ } else if (databaseTypeCassandra) { _%>
|
|
1202
1249
|
token.setUserId(user.getId());
|
|
1203
|
-
|
|
1250
|
+
<%_ } else if (databaseTypeCouchbase) { _%>
|
|
1204
1251
|
token.setLogin(user.getLogin());
|
|
1205
|
-
|
|
1252
|
+
<%_ } _%>
|
|
1206
1253
|
token.setTokenValue("current-session-data");
|
|
1207
|
-
|
|
1254
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
1208
1255
|
token.setTokenDate(Instant.parse("2017-03-28T15:25:57.123Z"));
|
|
1209
|
-
|
|
1256
|
+
<%_ } else { _%>
|
|
1210
1257
|
token.setTokenDate(LocalDate.of(2017, 3, 23));
|
|
1211
|
-
|
|
1258
|
+
<% } %>
|
|
1212
1259
|
token.setIpAddress("127.0.0.1");
|
|
1213
1260
|
token.setUserAgent("Test agent");
|
|
1214
|
-
persistentTokenRepository.save<% if (
|
|
1261
|
+
persistentTokenRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(token);
|
|
1215
1262
|
|
|
1216
1263
|
restAccountMockMvc.perform(get("/api/account/sessions"))
|
|
1217
1264
|
.andExpect(status().isOk())
|
|
1218
1265
|
.andExpect(jsonPath("$.[*].series").value(hasItem(token.getSeries())))
|
|
1219
1266
|
.andExpect(jsonPath("$.[*].ipAddress").value(hasItem(token.getIpAddress())))
|
|
1220
1267
|
.andExpect(jsonPath("$.[*].userAgent").value(hasItem(token.getUserAgent())))
|
|
1221
|
-
.andExpect(jsonPath("$.[*].tokenDate").value(hasItem(containsString(<% if (
|
|
1268
|
+
.andExpect(jsonPath("$.[*].tokenDate").value(hasItem(containsString(<% if (databaseTypeCassandra) { %>"2017-03-28T15:25:57.123Z"<% } else { %>token.getTokenDate().toString()<% } %>))));
|
|
1222
1269
|
}
|
|
1223
1270
|
|
|
1224
|
-
@Test
|
|
1225
|
-
|
|
1271
|
+
@Test
|
|
1272
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
1273
|
+
@Transactional
|
|
1274
|
+
<%_ } _%>
|
|
1226
1275
|
@WithMockUser("invalidate-session")
|
|
1227
1276
|
void testInvalidateSession() <% if (!reactive) { %>throws Exception <% } %>{
|
|
1228
1277
|
<%= asEntity('User') %> user = new <%= asEntity('User') %>();
|
|
1229
|
-
|
|
1278
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
1230
1279
|
user.setId(UUID.randomUUID().toString());
|
|
1231
|
-
|
|
1280
|
+
<%_ } _%>
|
|
1232
1281
|
user.setPassword(RandomStringUtils.random(60));
|
|
1233
1282
|
user.setLogin("invalidate-session");
|
|
1234
1283
|
user.setEmail("invalidate-session@example.com");
|
|
1235
|
-
|
|
1284
|
+
<%_ if (databaseTypeSql && reactive) { _%>
|
|
1236
1285
|
user.setCreatedBy(Constants.SYSTEM);
|
|
1237
|
-
|
|
1238
|
-
userRepository.save<% if (
|
|
1286
|
+
<%_ } _%>
|
|
1287
|
+
userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
|
|
1239
1288
|
|
|
1240
1289
|
PersistentToken token = new PersistentToken();
|
|
1241
1290
|
token.setSeries("invalidate-session");
|
|
1242
|
-
|
|
1291
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
|
|
1243
1292
|
token.setUser(user);
|
|
1244
|
-
|
|
1293
|
+
<%_ } else if (databaseTypeCassandra) { _%>
|
|
1245
1294
|
token.setUserId(user.getId());
|
|
1246
|
-
|
|
1295
|
+
<%_ } else { _%>
|
|
1247
1296
|
token.setLogin(user.getLogin());
|
|
1248
|
-
|
|
1297
|
+
<%_ } _%>
|
|
1249
1298
|
token.setTokenValue("invalidate-data");
|
|
1250
|
-
|
|
1299
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
|
|
1251
1300
|
token.setTokenDate(LocalDate.of(2017, 3, 23));
|
|
1252
|
-
|
|
1301
|
+
<%_ } else if (databaseTypeCassandra) { _%>
|
|
1253
1302
|
token.setTokenDate(Instant.now());
|
|
1254
|
-
|
|
1303
|
+
<%_ } _%>
|
|
1255
1304
|
token.setIpAddress("127.0.0.1");
|
|
1256
1305
|
token.setUserAgent("Test agent");
|
|
1257
|
-
persistentTokenRepository.save<% if (
|
|
1306
|
+
persistentTokenRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(token);
|
|
1258
1307
|
|
|
1259
1308
|
assertThat(persistentTokenRepository.findByUser(user)).hasSize(1);
|
|
1260
1309
|
|
|
@@ -1265,183 +1314,193 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
|
|
|
1265
1314
|
}
|
|
1266
1315
|
<%_ } _%>
|
|
1267
1316
|
|
|
1268
|
-
@Test
|
|
1269
|
-
|
|
1317
|
+
@Test
|
|
1318
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
1319
|
+
@Transactional
|
|
1320
|
+
<%_ } _%>
|
|
1270
1321
|
void testRequestPasswordReset()<% if (!reactive) { %> throws Exception<% } %> {
|
|
1271
1322
|
<%= asEntity('User') %> user = new <%= asEntity('User') %>();
|
|
1272
|
-
|
|
1323
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
1273
1324
|
user.setId(UUID.randomUUID().toString());
|
|
1274
|
-
|
|
1325
|
+
<%_ } _%>
|
|
1275
1326
|
user.setPassword(RandomStringUtils.random(60));
|
|
1276
1327
|
user.setActivated(true);
|
|
1277
1328
|
user.setLogin("password-reset");
|
|
1278
1329
|
user.setEmail("password-reset@example.com");
|
|
1279
|
-
|
|
1330
|
+
<%_ if (databaseTypeSql && reactive) { _%>
|
|
1280
1331
|
user.setCreatedBy(Constants.SYSTEM);
|
|
1281
|
-
|
|
1282
|
-
userRepository.save<% if (
|
|
1332
|
+
<%_ } _%>
|
|
1333
|
+
userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
|
|
1283
1334
|
|
|
1284
|
-
|
|
1335
|
+
<%_ if (!reactive) { _%>
|
|
1285
1336
|
restAccountMockMvc.perform(post("/api/account/reset-password/init")
|
|
1286
1337
|
.content("password-reset@example.com")
|
|
1287
1338
|
<%_ if (testsNeedCsrf) { _%>
|
|
1288
1339
|
.with(csrf())<%_ } _%>)
|
|
1289
1340
|
.andExpect(status().isOk());
|
|
1290
|
-
|
|
1341
|
+
<%_ } else { _%>
|
|
1291
1342
|
accountWebTestClient.post().uri("/api/account/reset-password/init")
|
|
1292
1343
|
.bodyValue("password-reset@example.com")
|
|
1293
1344
|
.exchange()
|
|
1294
1345
|
.expectStatus().isOk();
|
|
1295
|
-
|
|
1346
|
+
<%_ } _%>
|
|
1296
1347
|
}
|
|
1297
1348
|
|
|
1298
|
-
@Test
|
|
1299
|
-
|
|
1349
|
+
@Test
|
|
1350
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
1351
|
+
@Transactional
|
|
1352
|
+
<%_ } _%>
|
|
1300
1353
|
void testRequestPasswordResetUpperCaseEmail()<% if (!reactive) { %> throws Exception<% } %> {
|
|
1301
1354
|
<%= asEntity('User') %> user = new <%= asEntity('User') %>();
|
|
1302
|
-
|
|
1355
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
1303
1356
|
user.setId(UUID.randomUUID().toString());
|
|
1304
|
-
|
|
1357
|
+
<%_ } _%>
|
|
1305
1358
|
user.setPassword(RandomStringUtils.random(60));
|
|
1306
1359
|
user.setActivated(true);
|
|
1307
1360
|
user.setLogin("password-reset-upper-case");
|
|
1308
1361
|
user.setEmail("password-reset-upper-case@example.com");
|
|
1309
|
-
|
|
1362
|
+
<%_ if (databaseTypeSql && reactive) { _%>
|
|
1310
1363
|
user.setCreatedBy(Constants.SYSTEM);
|
|
1311
|
-
|
|
1312
|
-
userRepository.save<% if (
|
|
1364
|
+
<%_ } _%>
|
|
1365
|
+
userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
|
|
1313
1366
|
|
|
1314
|
-
|
|
1367
|
+
<%_ if (!reactive) { _%>
|
|
1315
1368
|
restAccountMockMvc.perform(post("/api/account/reset-password/init")
|
|
1316
1369
|
.content("password-reset-upper-case@EXAMPLE.COM")
|
|
1317
1370
|
<%_ if (testsNeedCsrf) { _%>
|
|
1318
1371
|
.with(csrf())<%_ } _%>)
|
|
1319
1372
|
.andExpect(status().isOk());
|
|
1320
|
-
|
|
1373
|
+
<%_ } else { _%>
|
|
1321
1374
|
accountWebTestClient.post().uri("/api/account/reset-password/init")
|
|
1322
1375
|
.bodyValue("password-reset-upper-case@EXAMPLE.COM")
|
|
1323
1376
|
.exchange()
|
|
1324
1377
|
.expectStatus().isOk();
|
|
1325
|
-
|
|
1378
|
+
<%_ } _%>
|
|
1326
1379
|
}
|
|
1327
1380
|
|
|
1328
1381
|
@Test
|
|
1329
|
-
|
|
1382
|
+
<%_ if (!reactive) { _%>
|
|
1330
1383
|
void testRequestPasswordResetWrongEmail() <% if (!reactive) { %>throws Exception <% } %>{
|
|
1331
1384
|
restAccountMockMvc.perform(
|
|
1332
1385
|
post("/api/account/reset-password/init")
|
|
1333
1386
|
.content("password-reset-wrong-email@example.com")<% if (testsNeedCsrf) { %>
|
|
1334
1387
|
.with(csrf())<% } %>)
|
|
1335
1388
|
.andExpect(status().isOk());
|
|
1336
|
-
|
|
1389
|
+
<%_ } else { _%>
|
|
1337
1390
|
void testRequestPasswordResetWrongEmail() {
|
|
1338
1391
|
accountWebTestClient.post().uri("/api/account/reset-password/init")
|
|
1339
1392
|
.bodyValue("password-reset-wrong-email@example.com")
|
|
1340
1393
|
.exchange()
|
|
1341
1394
|
.expectStatus().isOk();
|
|
1342
|
-
|
|
1395
|
+
<%_ } _%>
|
|
1343
1396
|
}
|
|
1344
1397
|
|
|
1345
|
-
@Test
|
|
1346
|
-
|
|
1398
|
+
@Test
|
|
1399
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
1400
|
+
@Transactional
|
|
1401
|
+
<%_ } _%>
|
|
1347
1402
|
void testFinishPasswordReset() throws Exception {
|
|
1348
1403
|
<%= asEntity('User') %> user = new <%= asEntity('User') %>();
|
|
1349
|
-
|
|
1404
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
1350
1405
|
user.setId(UUID.randomUUID().toString());
|
|
1351
|
-
|
|
1406
|
+
<%_ } _%>
|
|
1352
1407
|
user.setPassword(RandomStringUtils.random(60));
|
|
1353
1408
|
user.setLogin("finish-password-reset");
|
|
1354
1409
|
user.setEmail("finish-password-reset@example.com");
|
|
1355
1410
|
user.setResetDate(Instant.now().plusSeconds(60));
|
|
1356
1411
|
user.setResetKey("reset key");
|
|
1357
|
-
|
|
1412
|
+
<%_ if (databaseTypeSql && reactive) { _%>
|
|
1358
1413
|
user.setCreatedBy(Constants.SYSTEM);
|
|
1359
|
-
|
|
1360
|
-
userRepository.save<% if (
|
|
1414
|
+
<%_ } _%>
|
|
1415
|
+
userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
|
|
1361
1416
|
|
|
1362
1417
|
KeyAndPasswordVM keyAndPassword = new KeyAndPasswordVM();
|
|
1363
1418
|
keyAndPassword.setKey(user.getResetKey());
|
|
1364
1419
|
keyAndPassword.setNewPassword("new password");
|
|
1365
1420
|
|
|
1366
|
-
|
|
1421
|
+
<%_ if (!reactive) { _%>
|
|
1367
1422
|
restAccountMockMvc.perform(
|
|
1368
1423
|
post("/api/account/reset-password/finish")
|
|
1369
1424
|
.contentType(MediaType.APPLICATION_JSON)
|
|
1370
1425
|
.content(TestUtil.convertObjectToJsonBytes(keyAndPassword))<% if (testsNeedCsrf) { %>
|
|
1371
1426
|
.with(csrf())<% } %>)
|
|
1372
1427
|
.andExpect(status().isOk());
|
|
1373
|
-
|
|
1428
|
+
<%_ } else { _%>
|
|
1374
1429
|
accountWebTestClient.post().uri("/api/account/reset-password/finish")
|
|
1375
1430
|
.contentType(MediaType.APPLICATION_JSON)
|
|
1376
1431
|
.bodyValue(TestUtil.convertObjectToJsonBytes(keyAndPassword))
|
|
1377
1432
|
.exchange()
|
|
1378
1433
|
.expectStatus().isOk();
|
|
1379
|
-
|
|
1434
|
+
<%_ } _%>
|
|
1380
1435
|
|
|
1381
1436
|
<%= asEntity('User') %> updatedUser = userRepository.findOneByLogin(user.getLogin())<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
|
|
1382
1437
|
assertThat(passwordEncoder.matches(keyAndPassword.getNewPassword(), updatedUser.getPassword())).isTrue();
|
|
1383
1438
|
}
|
|
1384
1439
|
|
|
1385
|
-
@Test
|
|
1386
|
-
|
|
1440
|
+
@Test
|
|
1441
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
1442
|
+
@Transactional
|
|
1443
|
+
<%_ } _%>
|
|
1387
1444
|
void testFinishPasswordResetTooSmall() throws Exception {
|
|
1388
1445
|
<%= asEntity('User') %> user = new <%= asEntity('User') %>();
|
|
1389
|
-
|
|
1446
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
1390
1447
|
user.setId(UUID.randomUUID().toString());
|
|
1391
|
-
|
|
1448
|
+
<%_ } _%>
|
|
1392
1449
|
user.setPassword(RandomStringUtils.random(60));
|
|
1393
1450
|
user.setLogin("finish-password-reset-too-small");
|
|
1394
1451
|
user.setEmail("finish-password-reset-too-small@example.com");
|
|
1395
1452
|
user.setResetDate(Instant.now().plusSeconds(60));
|
|
1396
1453
|
user.setResetKey("reset key too small");
|
|
1397
|
-
|
|
1454
|
+
<%_ if (databaseTypeSql && reactive) { _%>
|
|
1398
1455
|
user.setCreatedBy(Constants.SYSTEM);
|
|
1399
|
-
|
|
1400
|
-
userRepository.save<% if (
|
|
1456
|
+
<%_ } _%>
|
|
1457
|
+
userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
|
|
1401
1458
|
|
|
1402
1459
|
KeyAndPasswordVM keyAndPassword = new KeyAndPasswordVM();
|
|
1403
1460
|
keyAndPassword.setKey(user.getResetKey());
|
|
1404
1461
|
keyAndPassword.setNewPassword("foo");
|
|
1405
1462
|
|
|
1406
|
-
|
|
1463
|
+
<%_ if (!reactive) { _%>
|
|
1407
1464
|
restAccountMockMvc.perform(
|
|
1408
1465
|
post("/api/account/reset-password/finish")
|
|
1409
1466
|
.contentType(MediaType.APPLICATION_JSON)
|
|
1410
1467
|
.content(TestUtil.convertObjectToJsonBytes(keyAndPassword))<% if (testsNeedCsrf) { %>
|
|
1411
1468
|
.with(csrf())<% } %>)
|
|
1412
1469
|
.andExpect(status().isBadRequest());
|
|
1413
|
-
|
|
1470
|
+
<%_ } else { _%>
|
|
1414
1471
|
accountWebTestClient.post().uri("/api/account/reset-password/finish")
|
|
1415
1472
|
.contentType(MediaType.APPLICATION_JSON)
|
|
1416
1473
|
.bodyValue(TestUtil.convertObjectToJsonBytes(keyAndPassword))
|
|
1417
1474
|
.exchange()
|
|
1418
1475
|
.expectStatus().isBadRequest();
|
|
1419
|
-
|
|
1476
|
+
<%_ } _%>
|
|
1420
1477
|
|
|
1421
1478
|
<%= asEntity('User') %> updatedUser = userRepository.findOneByLogin(user.getLogin())<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
|
|
1422
1479
|
assertThat(passwordEncoder.matches(keyAndPassword.getNewPassword(), updatedUser.getPassword())).isFalse();
|
|
1423
1480
|
}
|
|
1424
1481
|
|
|
1425
|
-
@Test
|
|
1426
|
-
|
|
1482
|
+
@Test
|
|
1483
|
+
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
1484
|
+
@Transactional
|
|
1485
|
+
<%_ } _%>
|
|
1427
1486
|
void testFinishPasswordResetWrongKey() throws Exception {
|
|
1428
1487
|
KeyAndPasswordVM keyAndPassword = new KeyAndPasswordVM();
|
|
1429
1488
|
keyAndPassword.setKey("wrong reset key");
|
|
1430
1489
|
keyAndPassword.setNewPassword("new password");
|
|
1431
1490
|
|
|
1432
|
-
|
|
1491
|
+
<%_ if (!reactive) { _%>
|
|
1433
1492
|
restAccountMockMvc.perform(
|
|
1434
1493
|
post("/api/account/reset-password/finish")
|
|
1435
1494
|
.contentType(MediaType.APPLICATION_JSON)
|
|
1436
1495
|
.content(TestUtil.convertObjectToJsonBytes(keyAndPassword))<% if (testsNeedCsrf) { %>
|
|
1437
1496
|
.with(csrf())<% } %>)
|
|
1438
1497
|
.andExpect(status().isInternalServerError());
|
|
1439
|
-
|
|
1498
|
+
<%_ } else { _%>
|
|
1440
1499
|
accountWebTestClient.post().uri("/api/account/reset-password/finish")
|
|
1441
1500
|
.contentType(MediaType.APPLICATION_JSON)
|
|
1442
1501
|
.bodyValue(TestUtil.convertObjectToJsonBytes(keyAndPassword))
|
|
1443
1502
|
.exchange()
|
|
1444
1503
|
.expectStatus().isEqualTo(HttpStatus.INTERNAL_SERVER_ERROR);
|
|
1445
|
-
|
|
1504
|
+
<%_ } _%>
|
|
1446
1505
|
}
|
|
1447
1506
|
}
|