generator-jhipster 8.4.0 → 8.6.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.
Files changed (430) hide show
  1. package/README.md +3 -4
  2. package/dist/cli/commands.mjs +2 -0
  3. package/dist/cli/environment-builder.mjs +5 -0
  4. package/dist/cli/program.mjs +10 -4
  5. package/dist/generators/angular/entity-files-angular.js +6 -7
  6. package/dist/generators/angular/resources/package.json +20 -20
  7. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +4 -3
  8. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.service.spec.ts.ejs +3 -2
  9. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.spec.ts.ejs +4 -5
  10. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.service.spec.ts.ejs +3 -2
  11. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +6 -5
  12. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +3 -6
  13. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.service.spec.ts.ejs +3 -2
  14. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +5 -5
  15. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.ts.ejs +3 -6
  16. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.service.spec.ts.ejs +3 -2
  17. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.spec.ts.ejs +2 -3
  18. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.ts.ejs +3 -6
  19. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.service.spec.ts.ejs +3 -2
  20. package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +3 -3
  21. package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +3 -4
  22. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +3 -3
  23. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.service.spec.ts.ejs +3 -2
  24. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +4 -4
  25. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.service.spec.ts.ejs +3 -2
  26. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.spec.ts.ejs +3 -3
  27. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +4 -3
  28. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.service.spec.ts.ejs +3 -2
  29. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.ts.ejs +1 -1
  30. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +11 -11
  31. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.spec.ts.ejs +3 -3
  32. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.spec.ts.ejs +3 -2
  33. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.service.spec.ts.ejs +3 -2
  34. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +0 -2
  35. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +3 -3
  36. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +1 -1
  37. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +3 -4
  38. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/service/user-management.service.spec.ts.ejs +3 -3
  39. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +3 -2
  40. package/dist/generators/angular/templates/src/main/webapp/app/app-page-title-strategy.ts.ejs +1 -1
  41. package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +0 -1
  42. package/dist/generators/angular/templates/src/main/webapp/app/app.config.ts.ejs +2 -2
  43. package/dist/generators/angular/templates/src/main/webapp/app/config/uib-pagination.config.ts.ejs +1 -1
  44. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +7 -5
  45. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/auth-jwt.service.spec.ts.ejs +3 -2
  46. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/user-route-access.service.ts.ejs +1 -1
  47. package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/auth-expired.interceptor.ts.ejs +3 -3
  48. package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/auth.interceptor.ts.ejs +2 -2
  49. package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/error-handler.interceptor.ts.ejs +1 -1
  50. package/dist/generators/angular/templates/src/main/webapp/app/core/util/alert.service.spec.ts.ejs +6 -6
  51. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +0 -3
  52. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.spec.ts.ejs +3 -4
  53. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.spec.ts.ejs +2 -2
  54. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +1 -1
  55. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.spec.ts.ejs +2 -3
  56. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.ts.ejs +2 -2
  57. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/route/_entityFile_-routing-resolve.service.spec.ts.ejs +4 -5
  58. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/service/_entityFile_.service.spec.ts.ejs +5 -3
  59. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +5 -6
  60. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.ts.ejs +11 -17
  61. package/dist/generators/angular/templates/src/main/webapp/app/layouts/error/error.component.ts.ejs +2 -2
  62. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/active-menu.directive.ts.ejs +6 -6
  63. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +3 -3
  64. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +3 -2
  65. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs +2 -2
  66. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.ts.ejs +3 -4
  67. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +2 -2
  68. package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.spec.ts.ejs +11 -9
  69. package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.ts.ejs +3 -8
  70. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +6 -2
  71. package/dist/generators/angular/templates/src/main/webapp/app/shared/language/find-language-from-key.pipe.ts.ejs +1 -1
  72. package/dist/generators/angular/templates/src/main/webapp/app/shared/language/translation.module.ts.ejs +2 -2
  73. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.spec.ts.ejs +10 -10
  74. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.ts.ejs +6 -7
  75. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort.directive.spec.ts.ejs +4 -4
  76. package/dist/generators/angular/templates/src/main/webapp/content/scss/global.scss.ejs +2 -0
  77. package/dist/generators/app/generator.js +4 -13
  78. package/dist/generators/base/command.js +1 -0
  79. package/dist/generators/base/generator.js +22 -28
  80. package/dist/generators/base/internal/command.js +13 -0
  81. package/dist/generators/base/internal/index.js +1 -0
  82. package/dist/generators/base/priorities.js +12 -1
  83. package/dist/generators/base/shared-data.js +74 -2
  84. package/dist/generators/base/support/config.js +1 -1
  85. package/dist/generators/base/support/jhipster7-context.js +155 -52
  86. package/dist/generators/base-application/generator.js +15 -3
  87. package/dist/generators/base-application/priorities.js +1 -0
  88. package/dist/generators/base-application/support/prepare-entity.js +7 -8
  89. package/dist/generators/base-application/support/prepare-relationship.js +3 -2
  90. package/dist/generators/base-core/generator.js +132 -63
  91. package/dist/generators/bootstrap/generator.js +1 -1
  92. package/dist/generators/bootstrap/support/eslint-worker.js +14 -12
  93. package/dist/generators/bootstrap/support/multi-step-transform/template-file.js +6 -1
  94. package/dist/generators/bootstrap-application/generator.js +1 -1
  95. package/dist/generators/bootstrap-application-base/generator.js +7 -3
  96. package/dist/generators/bootstrap-application-client/generator.js +5 -1
  97. package/dist/generators/bootstrap-application-server/generator.js +1 -0
  98. package/dist/generators/ci-cd/generator.js +1 -1
  99. package/dist/generators/ci-cd/templates/docker-registry.yml.ejs +0 -1
  100. package/dist/generators/ci-cd/templates/jenkins/jenkins.yml.ejs +0 -1
  101. package/dist/generators/client/command.js +2 -2
  102. package/dist/generators/client/generator.js +2 -3
  103. package/dist/generators/client/generators/common/command.js +5 -0
  104. package/dist/generators/client/generators/common/generator.js +79 -0
  105. package/dist/generators/client/generators/common/index.js +20 -0
  106. package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/headers.ts.ejs +57 -0
  107. package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/problem-details.ts.ejs +51 -0
  108. package/dist/generators/client/resources/package.json +6 -6
  109. package/dist/generators/client/support/filter-entities.js +1 -1
  110. package/dist/generators/client/templates/.eslintignore.ejs +9 -5
  111. package/dist/generators/client/templates/README.md.jhi.client.ejs +29 -20
  112. package/dist/generators/client/templates/src/main/webapp/index.html.ejs +1 -1
  113. package/dist/generators/common/generator.js +5 -0
  114. package/dist/generators/common/resources/package.json +2 -2
  115. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/login-page.cy.ts.ejs +4 -4
  116. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/password-page.cy.ts.ejs +2 -2
  117. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/register-page.cy.ts.ejs +1 -1
  118. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/reset-password-page.cy.ts.ejs +1 -1
  119. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/entity/_entity_.cy.ts.ejs +10 -10
  120. package/dist/generators/docker/templates/docker/keycloak.yml.ejs +2 -1
  121. package/dist/generators/docker/templates/docker/mariadb.yml.ejs +1 -1
  122. package/dist/generators/docker/templates/docker/mysql.yml.ejs +1 -2
  123. package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +14 -3
  124. package/dist/generators/docker/templates/docker/realm-config/keycloak-health-check.sh +2 -2
  125. package/dist/generators/docker-compose/templates/docker-compose.yml.ejs +1 -0
  126. package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +14 -3
  127. package/dist/generators/docker-compose/templates/realm-config/keycloak-health-check.sh +2 -2
  128. package/dist/generators/entity/generator.js +2 -10
  129. package/dist/generators/entity/prompts.js +6 -11
  130. package/dist/generators/feign-client/templates/src/main/java/_package_/client/AuthorizationHeaderUtil.java.ejs +1 -1
  131. package/dist/generators/gatling/README.md +15 -0
  132. package/dist/generators/gatling/generator.js +0 -1
  133. package/dist/generators/gatling/templates/src/test/java/gatling/simulations/_entityClass_GatlingTest.java.ejs +2 -10
  134. package/dist/generators/generate-blueprint/command.js +16 -0
  135. package/dist/generators/generate-blueprint/files.js +11 -1
  136. package/dist/generators/generate-blueprint/generator.js +34 -17
  137. package/dist/generators/generate-blueprint/resources/package.json +3 -1
  138. package/dist/generators/generate-blueprint/templates/.blueprint/cli/commands.mjs.ejs +6 -0
  139. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/command.mjs.ejs +20 -0
  140. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/generator.mjs.ejs +9 -13
  141. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/build-matrix.mjs.ejs +22 -0
  142. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/generator.mjs.ejs +20 -0
  143. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/index.mjs.ejs +1 -0
  144. package/dist/generators/generate-blueprint/templates/.github/workflows/build-cache.yml.ejs +39 -0
  145. package/dist/generators/generate-blueprint/templates/.github/workflows/samples.yml.ejs +105 -0
  146. package/dist/generators/generate-blueprint/templates/.prettierignore.jhi.blueprint.ejs +1 -1
  147. package/dist/generators/generate-blueprint/templates/README.md.ejs +16 -8
  148. package/dist/generators/generate-blueprint/templates/eslint.config.js.ejs +33 -0
  149. package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +1 -0
  150. package/dist/generators/generator-constants.js +2 -2
  151. package/dist/generators/gradle/templates/gradle/wrapper/gradle-wrapper.properties +1 -1
  152. package/dist/generators/heroku/generator.js +1 -1
  153. package/dist/generators/info/generator.js +1 -3
  154. package/dist/generators/info/support/extract-info.js +60 -0
  155. package/dist/generators/info/support/index.js +1 -0
  156. package/dist/generators/init/generator.js +2 -2
  157. package/dist/generators/init/resources/.node-version +1 -1
  158. package/dist/generators/init/resources/package.json +2 -2
  159. package/dist/generators/java/generators/bootstrap/generator.js +9 -2
  160. package/dist/generators/java/generators/build-tool/command.js +6 -3
  161. package/dist/generators/java/generators/domain/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.ejs +1 -5
  162. package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Asserts.java.ejs +3 -3
  163. package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Test.java.ejs +3 -3
  164. package/dist/generators/java/generators/node/templates/npmw +1 -5
  165. package/dist/generators/java/support/add-java-annotation.js +28 -7
  166. package/dist/generators/java/support/generated-annotation-transform.js +1 -1
  167. package/dist/generators/java/support/index.js +1 -1
  168. package/dist/generators/jdl/generator.js +7 -7
  169. package/dist/generators/kubernetes/files.js +1 -1
  170. package/dist/generators/kubernetes/templates/db/mysql.yml.ejs +1 -1
  171. package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +14 -3
  172. package/dist/generators/languages/generator.js +5 -2
  173. package/dist/generators/liquibase/templates/src/main/java/_package_/config/LiquibaseConfiguration.java.ejs +1 -1
  174. package/dist/generators/maven/command.js +15 -0
  175. package/dist/generators/maven/generator.js +6 -1
  176. package/dist/generators/maven/index.js +1 -0
  177. package/dist/generators/maven/internal/xml-store.js +7 -6
  178. package/dist/generators/maven/support/pom-store.js +24 -9
  179. package/dist/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +2 -2
  180. package/dist/generators/maven/templates/mvnw +185 -243
  181. package/dist/generators/maven/templates/mvnw.cmd +121 -180
  182. package/dist/generators/react/entity-files-react.js +7 -7
  183. package/dist/generators/react/generator.js +10 -0
  184. package/dist/generators/react/resources/package.json +28 -28
  185. package/dist/generators/react/templates/src/main/webapp/app/app.tsx.ejs +9 -0
  186. package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +1 -1
  187. package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.ts.ejs +1 -1
  188. package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.spec.ts.ejs +1 -1
  189. package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.ts.ejs +80 -87
  190. package/dist/generators/react/templates/src/main/webapp/app/config/store.ts.ejs +1 -1
  191. package/dist/generators/react/templates/src/main/webapp/app/config/translation.ts.ejs +4 -0
  192. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.tsx.ejs +3 -3
  193. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.reducer.ts.ejs +12 -7
  194. package/dist/generators/react/templates/src/main/webapp/app/modules/home/home.tsx.ejs +15 -1
  195. package/dist/generators/react/templates/src/main/webapp/app/modules/login/login-redirect.tsx.ejs +4 -0
  196. package/dist/generators/react/templates/src/main/webapp/app/modules/login/logout.tsx.ejs +5 -3
  197. package/dist/generators/react/templates/src/main/webapp/app/routes.tsx.ejs +1 -1
  198. package/dist/generators/react/templates/src/main/webapp/app/shared/auth/private-route.spec.tsx.ejs +1 -1
  199. package/dist/generators/react/templates/src/main/webapp/app/shared/auth/private-route.tsx.ejs +1 -1
  200. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header.tsx.ejs +0 -9
  201. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/menus/account.spec.tsx.ejs +1 -3
  202. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/menus/account.tsx.ejs +29 -6
  203. package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +2 -3
  204. package/dist/generators/react/templates/src/main/webapp/app/shared/util/url-utils.ts.ejs +1 -1
  205. package/dist/generators/server/command.js +0 -11
  206. package/dist/generators/server/generator.js +16 -75
  207. package/dist/generators/server/jdl/application-definition.js +3 -1
  208. package/dist/generators/server/resources/Dockerfile +13 -13
  209. package/dist/generators/server/resources/gradle/libs.versions.toml +9 -7
  210. package/dist/generators/server/resources/pom.xml +16 -16
  211. package/dist/generators/server/support/config.js +4 -8
  212. package/dist/generators/server/support/prepare-entity.js +5 -6
  213. package/dist/generators/server/support/relationship.js +5 -2
  214. package/dist/generators/server/templates/build.gradle.ejs +5 -3
  215. package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +2 -1
  216. package/dist/generators/server/templates/gradle/profile_prod.gradle.ejs +2 -1
  217. package/dist/generators/server/templates/gradle.properties.ejs +1 -1
  218. package/dist/generators/server/templates/pom.xml.ejs +7 -31
  219. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/service/dto/_dtoClass_.java.ejs +1 -1
  220. package/dist/generators/server/templates/src/main/java/_package_/config/AsyncConfiguration.java.ejs +1 -1
  221. package/dist/generators/server/templates/src/main/java/_package_/config/Constants.java.ejs +0 -2
  222. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +1 -18
  223. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +1 -15
  224. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs +1 -21
  225. package/dist/generators/server/templates/src/main/java/_package_/config/WebConfigurer.java.ejs +1 -1
  226. package/dist/generators/server/templates/src/main/java/_package_/security/DomainUserDetailsService.java.ejs +1 -1
  227. package/dist/generators/server/templates/src/main/java/_package_/security/PersistentTokenRememberMeServices.java.ejs +1 -1
  228. package/dist/generators/server/templates/src/main/java/_package_/security/SecurityUtils.java.ejs +65 -5
  229. package/dist/generators/server/templates/src/main/java/_package_/security/oauth2/AudienceValidator.java.ejs +1 -1
  230. package/dist/generators/server/templates/src/main/java/_package_/service/MailService.java.ejs +1 -1
  231. package/dist/generators/server/templates/src/main/java/_package_/service/dto/UserDTO.java.ejs +34 -0
  232. package/dist/generators/server/templates/src/main/java/_package_/service/mapper/UserMapper.java.ejs +8 -4
  233. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource.java.ejs +1 -1
  234. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource_oauth2.java.ejs +1 -1
  235. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource_skipUserManagement.java.ejs +44 -10
  236. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AuthenticateController.java.ejs +1 -1
  237. package/dist/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +1 -1
  238. package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +60 -22
  239. package/dist/generators/server/templates/src/main/resources/config/bootstrap.yml.ejs +1 -1
  240. package/dist/generators/server/templates/src/main/resources/swagger/api.yml.ejs +1 -1
  241. package/dist/generators/server/templates/src/test/java/_package_/security/DomainUserDetailsServiceIT.java.ejs +31 -13
  242. package/dist/generators/server/templates/src/test/java/_package_/service/mapper/UserMapperTest.java.ejs +84 -17
  243. package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs +62 -6
  244. package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT_oauth2.java.ejs +22 -0
  245. package/dist/generators/server/templates/src/test/resources/config/application.yml.ejs +20 -10
  246. package/dist/generators/spring-boot/command.js +117 -6
  247. package/dist/generators/spring-boot/files.js +0 -5
  248. package/dist/generators/spring-boot/generator.js +44 -9
  249. package/dist/generators/spring-boot/prompts.js +6 -70
  250. package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +374 -582
  251. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/UserService.java.ejs +1 -1
  252. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/_entityClass_QueryService.java.ejs +1 -1
  253. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/impl/_entityClass_ServiceImpl.java.ejs +1 -1
  254. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/PublicUserResource.java.ejs +1 -1
  255. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/UserResource.java.ejs +1 -1
  256. package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/_entityClass_Resource.java.ejs +1 -1
  257. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs +47 -11
  258. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/PublicUserResourceIT.java.ejs +60 -24
  259. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs +195 -318
  260. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +58 -51
  261. package/dist/generators/spring-cache/internal/dependencies.js +2 -2
  262. package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +1 -1
  263. package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheConfiguration.java.ejs +3 -3
  264. package/dist/generators/spring-cloud/generators/gateway/command.js +10 -1
  265. package/dist/generators/spring-cloud/generators/gateway/generator.js +13 -0
  266. package/dist/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.js +6 -0
  267. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/broker/KafkaConsumer_imperative.java.ejs +1 -1
  268. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/broker/KafkaConsumer_reactive.java.ejs +1 -1
  269. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/web/rest/KafkaResource_imperative.java.ejs +1 -1
  270. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/web/rest/KafkaResource_reactive.java.ejs +1 -1
  271. package/dist/generators/spring-data-cassandra/generator.js +2 -2
  272. package/dist/generators/spring-data-couchbase/templates/src/main/java/_package_/config/DatabaseConfiguration.java.ejs +1 -1
  273. package/dist/generators/spring-data-neo4j/templates/src/main/java/_package_/config/DatabaseConfiguration.java_neo4j.ejs +18 -2
  274. package/dist/generators/spring-data-relational/templates/src/main/java/_package_/config/DatabaseConfiguration.java.ejs +1 -1
  275. package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +3 -1
  276. package/dist/generators/vue/entity-files-vue.js +7 -7
  277. package/dist/generators/vue/resources/package.json +21 -21
  278. package/dist/generators/vue/templates/.eslintrc.cjs.ejs +7 -0
  279. package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.spec.ts.ejs +1 -1
  280. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-details.vue.ejs +1 -1
  281. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.vue.ejs +1 -1
  282. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.vue.ejs +1 -1
  283. package/dist/generators/vue/templates/src/main/webapp/app/shared/alert/alert.service.spec.ts.ejs +8 -8
  284. package/dist/generators/vue/templates/src/main/webapp/app/shared/data/data-utils.service.spec.ts.ejs +1 -1
  285. package/dist/generators/vue/templates/tsconfig.app.json.ejs +1 -1
  286. package/dist/generators/vue/templates/vite.config.mts.ejs +5 -4
  287. package/dist/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.js +1 -1
  288. package/dist/jdl/converters/jdl-to-json/jdl-to-json-field-converter.js +4 -4
  289. package/dist/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.js +9 -9
  290. package/dist/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.js +2 -2
  291. package/dist/jdl/converters/json-to-jdl-application-converter.js +1 -1
  292. package/dist/jdl/converters/json-to-jdl-converter.js +6 -5
  293. package/dist/jdl/converters/json-to-jdl-entity-converter.js +14 -14
  294. package/dist/jdl/converters/json-to-jdl-option-converter.js +1 -2
  295. package/dist/jdl/converters/parsed-jdl-to-jdl-object/application-converter.js +1 -1
  296. package/dist/jdl/converters/parsed-jdl-to-jdl-object/option-converter.js +2 -2
  297. package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +7 -6
  298. package/dist/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.js +1 -1
  299. package/dist/jdl/exporters/applications/jhipster-application-formatter.js +16 -23
  300. package/dist/jdl/exporters/config.js +1 -0
  301. package/dist/jdl/exporters/jhipster-deployment-exporter.js +5 -5
  302. package/dist/jdl/exporters/jhipster-entity-exporter.js +1 -1
  303. package/dist/jdl/jdl-importer.js +22 -20
  304. package/dist/jdl/jhipster/binary-options.js +12 -8
  305. package/dist/jdl/jhipster/json-entity.js +1 -1
  306. package/dist/jdl/models/abstract-jdl-option.js +2 -2
  307. package/dist/jdl/models/jdl-application-configuration-factory.js +2 -0
  308. package/dist/jdl/models/jdl-binary-option.js +2 -2
  309. package/dist/jdl/models/jdl-deployment.js +11 -0
  310. package/dist/jdl/models/jdl-entity.js +1 -1
  311. package/dist/jdl/models/jdl-enum.js +1 -1
  312. package/dist/jdl/models/jdl-enums.js +0 -18
  313. package/dist/jdl/models/jdl-field.js +2 -2
  314. package/dist/jdl/models/jdl-object-wrapper.js +1 -0
  315. package/dist/jdl/models/jdl-object.js +23 -45
  316. package/dist/jdl/models/jdl-options.js +0 -18
  317. package/dist/jdl/models/jdl-relationships.js +8 -16
  318. package/dist/jdl/models/jdl-unary-option.js +1 -1
  319. package/dist/jdl/models/list-jdl-application-configuration-option.js +5 -2
  320. package/dist/jdl/parsing/jdl-ast-builder-visitor.js +12 -0
  321. package/dist/jdl/parsing/jdl-parser.js +14 -0
  322. package/dist/jdl/parsing/lexer/lexer.js +17 -11
  323. package/dist/jdl/parsing/validator.js +16 -2
  324. package/dist/jdl/readers/json-reader.js +1 -1
  325. package/dist/jdl/utils/array-utils.js +6 -0
  326. package/dist/jdl/utils/set-utils.js +3 -2
  327. package/dist/jdl/validators/jdl-without-application-validator.js +2 -2
  328. package/dist/lib/eslint/base.js +25 -0
  329. package/dist/lib/eslint/recommended.js +22 -0
  330. package/dist/testing/github.js +32 -0
  331. package/dist/testing/helpers.js +13 -0
  332. package/dist/testing/index.js +2 -0
  333. package/dist/testing/sample-config.js +31 -0
  334. package/dist/types/cli/commands.d.mts +2 -0
  335. package/dist/types/cli/environment-builder.d.mts +1 -0
  336. package/dist/types/generators/base/api.d.ts +19 -8
  337. package/dist/types/generators/base/generator.d.ts +10 -4
  338. package/dist/types/generators/base/internal/command.d.ts +2 -0
  339. package/dist/types/generators/base/internal/index.d.ts +1 -0
  340. package/dist/types/generators/base/priorities.d.ts +4 -0
  341. package/dist/types/generators/base/shared-data.d.ts +11 -2
  342. package/dist/types/generators/base/types.d.ts +12 -0
  343. package/dist/types/generators/base-application/priorities.d.ts +2 -0
  344. package/dist/types/generators/base-application/support/entity.d.ts +2 -2
  345. package/dist/types/generators/base-application/support/prepare-entity.d.ts +3 -3
  346. package/dist/types/generators/base-application/support/relationship.d.ts +5 -5
  347. package/dist/types/generators/base-application/types.d.ts +11 -0
  348. package/dist/types/generators/base-core/generator.d.ts +18 -2
  349. package/dist/types/generators/generator-constants.d.ts +1 -1
  350. package/dist/types/generators/info/support/extract-info.d.ts +14 -0
  351. package/dist/types/generators/info/support/index.d.ts +1 -0
  352. package/dist/types/generators/java/support/add-java-annotation.d.ts +10 -20
  353. package/dist/types/generators/java/support/doc.d.ts +1 -1
  354. package/dist/types/generators/java/support/index.d.ts +1 -1
  355. package/dist/types/generators/java/types.d.ts +12 -0
  356. package/dist/types/generators/maven/internal/xml-store.d.ts +3 -2
  357. package/dist/types/generators/maven/support/pom-store.d.ts +5 -2
  358. package/dist/types/generators/maven/types.d.ts +1 -0
  359. package/dist/types/generators/server/support/relationship.d.ts +2 -2
  360. package/dist/types/generators/server/types.d.ts +7 -1
  361. package/dist/types/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.d.ts +2 -0
  362. package/dist/types/generators/spring-cloud/generators/gateway/types.d.ts +4 -0
  363. package/dist/types/jdl/converters/jdl-to-json/jdl-to-json-field-converter.d.ts +2 -2
  364. package/dist/types/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.d.ts +2 -1
  365. package/dist/types/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.d.ts +3 -1
  366. package/dist/types/jdl/converters/json-to-jdl-application-converter.d.ts +9 -2
  367. package/dist/types/jdl/converters/json-to-jdl-converter.d.ts +3 -3
  368. package/dist/types/jdl/converters/json-to-jdl-entity-converter.d.ts +2 -4
  369. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/application-converter.d.ts +3 -1
  370. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/deployment-converter.d.ts +2 -1
  371. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/entity-converter.d.ts +3 -1
  372. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/enum-converter.d.ts +2 -1
  373. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/field-converter.d.ts +2 -1
  374. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/option-converter.d.ts +3 -3
  375. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.d.ts +2 -1
  376. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/relationship-converter.d.ts +2 -1
  377. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/types.d.ts +110 -0
  378. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.d.ts +2 -1
  379. package/dist/types/jdl/converters/types.d.ts +102 -14
  380. package/dist/types/jdl/exporters/applications/jhipster-application-formatter.d.ts +4 -4
  381. package/dist/types/jdl/exporters/config.d.ts +2 -1
  382. package/dist/types/jdl/exporters/export-utils.d.ts +2 -1
  383. package/dist/types/jdl/exporters/jdl-exporter.d.ts +2 -1
  384. package/dist/types/jdl/exporters/jhipster-deployment-exporter.d.ts +3 -1
  385. package/dist/types/jdl/exporters/jhipster-entity-exporter.d.ts +3 -1
  386. package/dist/types/jdl/exporters/types.d.ts +61 -0
  387. package/dist/types/jdl/jhipster/binary-options.d.ts +8 -26
  388. package/dist/types/jdl/jhipster/field-types.d.ts +2 -2
  389. package/dist/types/jdl/jhipster/json-entity.d.ts +2 -2
  390. package/dist/types/jdl/models/abstract-jdl-option.d.ts +14 -9
  391. package/dist/types/jdl/models/boolean-jdl-application-configuration-option.d.ts +1 -1
  392. package/dist/types/jdl/models/integer-jdl-application-configuration-option.d.ts +1 -1
  393. package/dist/types/jdl/models/jdl-application-configuration-factory.d.ts +1 -1
  394. package/dist/types/jdl/models/jdl-application-configuration-option.d.ts +4 -4
  395. package/dist/types/jdl/models/jdl-application-configuration.d.ts +4 -4
  396. package/dist/types/jdl/models/jdl-application-definition.d.ts +4 -4
  397. package/dist/types/jdl/models/jdl-application-entities.d.ts +4 -4
  398. package/dist/types/jdl/models/jdl-application.d.ts +16 -13
  399. package/dist/types/jdl/models/jdl-binary-option.d.ts +5 -3
  400. package/dist/types/jdl/models/jdl-deployment.d.ts +13 -1
  401. package/dist/types/jdl/models/jdl-entity.d.ts +5 -5
  402. package/dist/types/jdl/models/jdl-enum-value.d.ts +4 -4
  403. package/dist/types/jdl/models/jdl-enum.d.ts +9 -5
  404. package/dist/types/jdl/models/jdl-enums.d.ts +6 -5
  405. package/dist/types/jdl/models/jdl-field.d.ts +10 -8
  406. package/dist/types/jdl/models/jdl-object-wrapper.d.ts +25 -0
  407. package/dist/types/jdl/models/jdl-object.d.ts +23 -19
  408. package/dist/types/jdl/models/jdl-options.d.ts +7 -24
  409. package/dist/types/jdl/models/jdl-relationship.d.ts +16 -10
  410. package/dist/types/jdl/models/jdl-relationships.d.ts +5 -5
  411. package/dist/types/jdl/models/jdl-validation.d.ts +3 -3
  412. package/dist/types/jdl/models/list-jdl-application-configuration-option.d.ts +4 -3
  413. package/dist/types/jdl/models/string-jdl-application-configuration-option.d.ts +2 -2
  414. package/dist/types/jdl/parsing/jdl-ast-builder-visitor.d.ts +1 -0
  415. package/dist/types/jdl/parsing/jdl-parser.d.ts +1 -0
  416. package/dist/types/jdl/parsing/jdl-parsing-types.d.ts +23 -0
  417. package/dist/types/jdl/parsing/lexer/lexer.d.ts +6 -2
  418. package/dist/types/jdl/parsing/validator.d.ts +1 -1
  419. package/dist/types/jdl/utils/array-utils.d.ts +1 -0
  420. package/dist/types/jdl/utils/set-utils.d.ts +1 -19
  421. package/dist/types/jdl/validators/deployment-validator.d.ts +2 -1
  422. package/dist/types/lib/eslint/base.d.ts +20 -0
  423. package/dist/types/lib/eslint/recommended.d.ts +20 -0
  424. package/dist/types/testing/github.d.ts +11 -0
  425. package/dist/types/testing/helpers.d.ts +21 -3
  426. package/dist/types/testing/index.d.ts +2 -0
  427. package/dist/types/testing/sample-config.d.ts +4 -0
  428. package/package.json +35 -30
  429. package/dist/generators/generate-blueprint/templates/.eslintrc.json.ejs +0 -35
  430. /package/dist/jdl/converters/{types.js → parsed-jdl-to-jdl-object/types.js} +0 -0
@@ -41,7 +41,7 @@ spring:
41
41
  discovery:
42
42
  tags:
43
43
  - profile=${spring.profiles.active}
44
- - version=#project.version#
44
+ - version='@project.version@'
45
45
  - git-version=${git.commit.id.describe:}
46
46
  - git-commit=${git.commit.id.abbrev:}
47
47
  - git-branch=${git.branch:}
@@ -45,7 +45,7 @@ components:
45
45
  it SHOULD provide human-readable documentation for the problem type
46
46
  (e.g., using HTML).
47
47
  default: 'about:blank'
48
- example: 'https://www.jhipster.tech/problem/constraint-violation'
48
+ example: 'https://www.jhipster.tech/problem/problem-with-message'
49
49
  title:
50
50
  type: string
51
51
  description: |
@@ -16,6 +16,10 @@
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  -%>
19
+ <%_
20
+ const callBlock = reactive ? '.block()' : '';
21
+ const callBlockOptional = reactive ? '.blockOptional()' : '';
22
+ _%>
19
23
  package <%= packageName %>.security;
20
24
 
21
25
  import <%= packageName %>.IntegrationTest;
@@ -24,8 +28,10 @@ import <%= packageName %>.config.Constants;
24
28
  <%_ } _%>
25
29
  import <%= user.entityAbsoluteClass %>;
26
30
  import <%= packageName %>.repository.UserRepository;
31
+ import <%= packageName %>.service.UserService;
27
32
 
28
33
  import org.apache.commons.lang3.RandomStringUtils;
34
+ import org.junit.jupiter.api.AfterEach;
29
35
  import org.junit.jupiter.api.BeforeEach;
30
36
  import org.junit.jupiter.api.Test;
31
37
  import org.springframework.beans.factory.annotation.Autowired;
@@ -74,19 +80,14 @@ class DomainUserDetailsServiceIT {
74
80
  @Autowired
75
81
  private UserRepository userRepository;
76
82
 
83
+ @Autowired
84
+ private UserService userService;
85
+
77
86
  @Autowired
78
87
  @Qualifier("userDetailsService")
79
88
  private <% if (reactive) { %>Reactive<% } %>UserDetailsService domainUserDetailsService;
80
89
 
81
- @BeforeEach
82
- public void init() {
83
- <%_ if (databaseTypeSql && reactive) { _%>
84
- userRepository.deleteAllUserAuthorities().block();
85
- <%_ } _%>
86
- <%_ if (!databaseTypeSql || reactive) { _%>
87
- userRepository.deleteAll()<% if (reactive) { %>.block()<% } %>;
88
-
89
- <%_ } _%>
90
+ public <%= user.persistClass %> getUserOne() {
90
91
  <%= user.persistClass %> userOne = new <%= user.persistClass %>();
91
92
  <%_ if (databaseTypeCassandra) { _%>
92
93
  userOne.setId(UUID.randomUUID().toString());
@@ -101,8 +102,10 @@ class DomainUserDetailsServiceIT {
101
102
  <%_ if (databaseTypeSql && reactive) { _%>
102
103
  userOne.setCreatedBy(Constants.SYSTEM);
103
104
  <%_ } _%>
104
- userRepository.save(userOne)<% if (reactive) { %>.block()<% } %>;
105
+ return userOne;
106
+ }
105
107
 
108
+ public <%= user.persistClass %> getUserTwo() {
106
109
  <%= user.persistClass %> userTwo = new <%= user.persistClass %>();
107
110
  <%_ if (databaseTypeCassandra) { _%>
108
111
  userTwo.setId(UUID.randomUUID().toString());
@@ -117,8 +120,10 @@ class DomainUserDetailsServiceIT {
117
120
  <%_ if (databaseTypeSql && reactive) { _%>
118
121
  userTwo.setCreatedBy(Constants.SYSTEM);
119
122
  <%_ } _%>
120
- userRepository.save(userTwo)<% if (reactive) { %>.block()<% } %>;
123
+ return userTwo;
124
+ }
121
125
 
126
+ public <%= user.persistClass %> getUserThree() {
122
127
  <%= user.persistClass %> userThree = new <%= user.persistClass %>();
123
128
  <%_ if (databaseTypeCassandra) { _%>
124
129
  userThree.setId(UUID.randomUUID().toString());
@@ -133,7 +138,21 @@ class DomainUserDetailsServiceIT {
133
138
  <%_ if (databaseTypeSql && reactive) { _%>
134
139
  userThree.setCreatedBy(Constants.SYSTEM);
135
140
  <%_ } _%>
136
- userRepository.save(userThree)<% if (reactive) { %>.block()<% } %>;
141
+ return userThree;
142
+ }
143
+
144
+ @BeforeEach
145
+ public void init() {
146
+ userRepository.save(getUserOne())<%- callBlock %>;
147
+ userRepository.save(getUserTwo())<%- callBlock %>;
148
+ userRepository.save(getUserThree())<%- callBlock %>;
149
+ }
150
+
151
+ @AfterEach
152
+ public void cleanup () {
153
+ userService.deleteUser(USER_ONE_LOGIN)<%- callBlock %>;
154
+ userService.deleteUser(USER_TWO_LOGIN)<%- callBlock %>;
155
+ userService.deleteUser(USER_THREE_LOGIN)<%- callBlock %>;
137
156
  }
138
157
 
139
158
  @Test
@@ -176,5 +195,4 @@ class DomainUserDetailsServiceIT {
176
195
  assertThatExceptionOfType(UserNotActivatedException.class).isThrownBy(
177
196
  () -> domainUserDetailsService.<% if (reactive) { %>find<% } else { %>loadUser<% } %>ByUsername(USER_THREE_LOGIN)<% if (reactive) { %>.block()<% } %>);
178
197
  }
179
-
180
198
  }
@@ -19,14 +19,24 @@
19
19
  package <%= packageName %>.service.mapper;
20
20
 
21
21
  import <%= user.entityAbsoluteClass %>;
22
+ import <%= packageName %>.security.AuthoritiesConstants;
22
23
  import <%= packageName %>.service.dto.<%= user.adminUserDto %>;
23
24
  import <%= packageName %>.service.dto.<%= user.dtoClass %>;
25
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
26
+ import <%= packageName %>.domain.Authority;
27
+ <%_ } else { _%>
28
+ import java.util.stream.Stream;
29
+ import java.util.stream.Collectors;
30
+ <%_ } _%>
24
31
  <%_ if (!authenticationTypeOauth2) { _%>
25
32
  import org.apache.commons.lang3.RandomStringUtils;
26
33
  <%_ } _%>
27
34
  import org.junit.jupiter.api.BeforeEach;
28
35
  import org.junit.jupiter.api.Test;
29
36
 
37
+ <%_ if (generateSpringAuditor) { _%>
38
+ import java.time.Instant;
39
+ <%_ } _%>
30
40
  import java.util.ArrayList;
31
41
  import java.util.HashSet;
32
42
  import java.util.List;
@@ -67,12 +77,74 @@ class UserMapperTest {
67
77
  user.setLastName("doe");
68
78
  <%_ if (!databaseTypeCassandra) { _%>
69
79
  user.setImageUrl("image_url");
80
+ <%_ } _%>
81
+ <%_ if (generateSpringAuditor) { _%>
82
+ user.setCreatedBy(DEFAULT_LOGIN);
83
+ user.setCreatedDate(Instant.now());
84
+ user.setLastModifiedBy(DEFAULT_LOGIN);
85
+ user.setLastModifiedDate(Instant.now());
70
86
  <%_ } _%>
71
87
  user.setLangKey("en");
72
88
 
89
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
90
+ Set<Authority> authorities = new HashSet<>();
91
+ Authority authority = new Authority();
92
+ authority.setName(AuthoritiesConstants.USER);
93
+ authorities.add(authority);
94
+ user.setAuthorities(authorities);
95
+ <%_ } else { _%>
96
+ user.setAuthorities(Stream.of(AuthoritiesConstants.USER).collect(Collectors.toSet()));
97
+ <%_ } _%>
98
+
73
99
  userDto = new <%= user.adminUserDto %>(user);
74
100
  }
75
101
 
102
+ @Test
103
+ void testUserToUserDTO() {
104
+ <%= user.adminUserDto %> convertedUserDto = userMapper.userToAdminUserDTO(user);
105
+
106
+ assertThat(convertedUserDto.getId()).isEqualTo(user.getId());
107
+ assertThat(convertedUserDto.getLogin()).isEqualTo(user.getLogin());
108
+ assertThat(convertedUserDto.getFirstName()).isEqualTo(user.getFirstName());
109
+ assertThat(convertedUserDto.getLastName()).isEqualTo(user.getLastName());
110
+ assertThat(convertedUserDto.getEmail()).isEqualTo(user.getEmail());
111
+ assertThat(convertedUserDto.isActivated()).isEqualTo(user.isActivated());
112
+ <%_ if (!databaseTypeCassandra) { _%>
113
+ assertThat(convertedUserDto.getImageUrl()).isEqualTo(user.getImageUrl());
114
+ <%_ } _%>
115
+ <%_ if (generateSpringAuditor) { _%>
116
+ assertThat(convertedUserDto.getCreatedBy()).isEqualTo(user.getCreatedBy());
117
+ assertThat(convertedUserDto.getCreatedDate()).isEqualTo(user.getCreatedDate());
118
+ assertThat(convertedUserDto.getLastModifiedBy()).isEqualTo(user.getLastModifiedBy());
119
+ assertThat(convertedUserDto.getLastModifiedDate()).isEqualTo(user.getLastModifiedDate());
120
+ <%_ } _%>
121
+ assertThat(convertedUserDto.getLangKey()).isEqualTo(user.getLangKey());
122
+ assertThat(convertedUserDto.getAuthorities()).containsExactly(AuthoritiesConstants.USER);
123
+ }
124
+
125
+ @Test
126
+ void testUserDTOtoUser() {
127
+ <%= user.persistClass %> convertedUser = userMapper.userDTOToUser(userDto);
128
+
129
+ assertThat(convertedUser.getId()).isEqualTo(userDto.getId());
130
+ assertThat(convertedUser.getLogin()).isEqualTo(userDto.getLogin());
131
+ assertThat(convertedUser.getFirstName()).isEqualTo(userDto.getFirstName());
132
+ assertThat(convertedUser.getLastName()).isEqualTo(userDto.getLastName());
133
+ assertThat(convertedUser.getEmail()).isEqualTo(userDto.getEmail());
134
+ assertThat(convertedUser.isActivated()).isEqualTo(userDto.isActivated());
135
+ <%_ if (!databaseTypeCassandra) { _%>
136
+ assertThat(convertedUser.getImageUrl()).isEqualTo(userDto.getImageUrl());
137
+ <%_ } _%>
138
+ assertThat(convertedUser.getLangKey()).isEqualTo(userDto.getLangKey());
139
+ <%_ if (generateSpringAuditor) { _%>
140
+ assertThat(convertedUser.getCreatedBy()).isEqualTo(userDto.getCreatedBy());
141
+ assertThat(convertedUser.getCreatedDate()).isEqualTo(userDto.getCreatedDate());
142
+ assertThat(convertedUser.getLastModifiedBy()).isEqualTo(userDto.getLastModifiedBy());
143
+ assertThat(convertedUser.getLastModifiedDate()).isEqualTo(userDto.getLastModifiedDate());
144
+ <%_ } _%>
145
+ assertThat(convertedUser.getAuthorities())<% if (!databaseTypeCassandra && !databaseTypeCouchbase) { %>.extracting("name")<%_ } _%>.containsExactly(AuthoritiesConstants.USER);
146
+ }
147
+
76
148
  @Test
77
149
  void usersToUserDTOsShouldMapOnlyNonNullUsers() {
78
150
  List<<%= user.persistClass %>> users = new ArrayList<>();
@@ -141,20 +213,15 @@ class UserMapperTest {
141
213
 
142
214
  @Test
143
215
  void userDTOToUserMapWithAuthoritiesStringShouldReturnUserWithAuthorities() {
144
- Set<String> authoritiesAsString = new HashSet<>();
145
- authoritiesAsString.add("ADMIN");
146
- userDto.setAuthorities(authoritiesAsString);
147
-
148
- <%= user.persistClass %> user = userMapper.userDTOToUser(userDto);
216
+ <%= user.persistClass %> convertedUser = userMapper.userDTOToUser(userDto);
149
217
 
150
- assertThat(user).isNotNull();
151
- assertThat(user.getAuthorities()).isNotNull();
152
- assertThat(user.getAuthorities()).isNotEmpty();
153
- <%_ if (databaseTypeSql || databaseTypeMongodb) { _%>
154
- assertThat(user.getAuthorities().iterator().next().getName()).isEqualTo("ADMIN");
155
- <%_ } _%>
156
- <%_ if (databaseTypeCassandra || databaseTypeCouchbase) { _%>
157
- assertThat(user.getAuthorities().iterator().next()).isEqualTo("ADMIN");
218
+ assertThat(convertedUser).isNotNull();
219
+ assertThat(convertedUser.getAuthorities()).isNotNull();
220
+ assertThat(convertedUser.getAuthorities()).isNotEmpty();
221
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
222
+ assertThat(convertedUser.getAuthorities().iterator().next().getName()).isEqualTo(AuthoritiesConstants.USER);
223
+ <%_ } else { _%>
224
+ assertThat(convertedUser.getAuthorities().iterator().next()).isEqualTo(AuthoritiesConstants.USER);
158
225
  <%_ } _%>
159
226
  }
160
227
 
@@ -162,11 +229,11 @@ class UserMapperTest {
162
229
  void userDTOToUserMapWithNullAuthoritiesStringShouldReturnUserWithEmptyAuthorities() {
163
230
  userDto.setAuthorities(null);
164
231
 
165
- <%= user.persistClass %> user = userMapper.userDTOToUser(userDto);
232
+ <%= user.persistClass %> persistUser = userMapper.userDTOToUser(userDto);
166
233
 
167
- assertThat(user).isNotNull();
168
- assertThat(user.getAuthorities()).isNotNull();
169
- assertThat(user.getAuthorities()).isEmpty();
234
+ assertThat(persistUser).isNotNull();
235
+ assertThat(persistUser.getAuthorities()).isNotNull();
236
+ assertThat(persistUser.getAuthorities()).isEmpty();
170
237
  }
171
238
 
172
239
  @Test
@@ -44,9 +44,8 @@ import <%= packageName %>.web.rest.vm.ManagedUserVM;
44
44
 
45
45
  import com.fasterxml.jackson.databind.ObjectMapper;
46
46
  import org.apache.commons.lang3.RandomStringUtils;
47
- <%_ if (reactive && authenticationUsesCsrf || databaseTypeMongodb || databaseTypeNeo4j) { _%>
47
+ import org.junit.jupiter.api.AfterEach;
48
48
  import org.junit.jupiter.api.BeforeEach;
49
- <%_ } _%>
50
49
  import org.junit.jupiter.api.Test;
51
50
  import org.junit.jupiter.params.ParameterizedTest;
52
51
  import org.junit.jupiter.params.provider.MethodSource;
@@ -144,10 +143,12 @@ class AccountResourceIT {
144
143
  private MockMvc restAccountMockMvc;
145
144
  <%_ } _%>
146
145
 
147
- <%_ if (databaseTypeMongodb || databaseTypeNeo4j) { _%>
146
+ <%_ if (!databaseTypeCassandra && !requiresDeleteAllUsers) { _%>
147
+ private Long numberOfUsers;
148
+
148
149
  @BeforeEach
149
- public void setup() {
150
- userRepository.deleteAll()<% if (reactive) { %>.block()<% } %>;
150
+ public void countUsers() {
151
+ numberOfUsers = userRepository.count()<%- reactorBlock %>;
151
152
  }
152
153
 
153
154
  <%_ } _%>
@@ -158,6 +159,16 @@ class AccountResourceIT {
158
159
  }
159
160
 
160
161
  <%_ } _%>
162
+ @AfterEach
163
+ public void cleanupAndCheck() {
164
+ <%_ if (requiresDeleteAllUsers) { _%>
165
+ userRepository.deleteAll()<%- reactorBlock %>;
166
+ <%_ } else if (!databaseTypeCassandra) { _%>
167
+ assertThat(userRepository.count()<%- reactorBlock %>).isEqualTo(numberOfUsers);
168
+ numberOfUsers = null;
169
+ <%_ } _%>
170
+ }
171
+
161
172
  @Test
162
173
  @WithUnauthenticatedMockUser
163
174
  <%_ if (reactive) { _%>
@@ -246,6 +257,8 @@ class AccountResourceIT {
246
257
  .andExpect(jsonPath("$.authorities").value(AuthoritiesConstants.ADMIN));
247
258
 
248
259
  <%_ } _%>
260
+
261
+ userService.deleteUser(TEST_USER_LOGIN)<%- reactorBlock %>;
249
262
  }
250
263
 
251
264
  @Test
@@ -301,6 +314,8 @@ class AccountResourceIT {
301
314
  <%_ } _%>
302
315
 
303
316
  assertThat(userRepository.findOneByLogin("test-register-valid")<% if (reactive) { %>.blockOptional()<% } %>).isPresent();
317
+
318
+ userService.deleteUser("test-register-valid")<%- reactorBlock %>;
304
319
  }
305
320
 
306
321
  @Test
@@ -484,6 +499,8 @@ class AccountResourceIT {
484
499
  .with(csrf())<% } %>)
485
500
  .andExpect(status().is4xxClientError());
486
501
  <%_ } _%>
502
+
503
+ userService.deleteUser("alice")<%- reactorBlock %>;
487
504
  }
488
505
 
489
506
  @Test
@@ -610,6 +627,8 @@ class AccountResourceIT {
610
627
  .with(csrf())<% } %>)
611
628
  .andExpect(status().is4xxClientError());
612
629
  <%_ } _%>
630
+
631
+ userService.deleteUser("test-register-duplicate-email-3")<%- reactorBlock %>;
613
632
  }
614
633
 
615
634
  @Test
@@ -649,6 +668,8 @@ class AccountResourceIT {
649
668
  assertThat(userDup).isPresent();
650
669
  assertThat(userDup.orElseThrow().getAuthorities()).hasSize(1)
651
670
  .containsExactly(<% if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { %>authorityRepository.findById(AuthoritiesConstants.USER).<% if (reactive) { %>block<% } else { %>orElseThrow<% } %>()<% } %><% if (databaseTypeCassandra || databaseTypeCouchbase) { %>AuthoritiesConstants.USER<% } %>);
671
+
672
+ userService.deleteUser("badguy")<%- reactorBlock %>;
652
673
  }
653
674
 
654
675
  @Test
@@ -683,6 +704,8 @@ class AccountResourceIT {
683
704
 
684
705
  user = userRepository.findOneByLogin(user.getLogin())<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
685
706
  assertThat(user.isActivated()).isTrue();
707
+
708
+ userService.deleteUser("activate-account")<%- reactorBlock %>;
686
709
  }
687
710
 
688
711
  @Test
@@ -757,6 +780,8 @@ class AccountResourceIT {
757
780
  <%_ } _%>
758
781
  assertThat(updatedUser.isActivated()).isTrue();
759
782
  assertThat(updatedUser.getAuthorities()).isEmpty();
783
+
784
+ userService.deleteUser("save-account")<%- reactorBlock %>;
760
785
  }
761
786
 
762
787
  @Test
@@ -810,6 +835,8 @@ class AccountResourceIT {
810
835
  <%_ } _%>
811
836
 
812
837
  assertThat(userRepository.findOneByEmailIgnoreCase("invalid email")<% if (reactive) { %>.blockOptional()<% } %>).isNotPresent();
838
+
839
+ userService.deleteUser("save-invalid-email")<%- reactorBlock %>;
813
840
  }
814
841
 
815
842
  @Test
@@ -872,8 +899,11 @@ class AccountResourceIT {
872
899
  .andExpect(status().isBadRequest());
873
900
  <%_ } _%>
874
901
 
875
- <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("save-existing-email")<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
902
+ <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("save-existing-email")<%_ if (reactive) { _%>.block()<% } else { %>.orElseThrow()<% } %>;
876
903
  assertThat(updatedUser.getEmail()).isEqualTo("save-existing-email@example.com");
904
+
905
+ userService.deleteUser("save-existing-email")<%- reactorBlock %>;
906
+ userService.deleteUser("save-existing-email2")<%- reactorBlock %>;
877
907
  }
878
908
 
879
909
  @Test
@@ -924,6 +954,8 @@ class AccountResourceIT {
924
954
 
925
955
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("save-existing-email-and-login")<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
926
956
  assertThat(updatedUser.getEmail()).isEqualTo("save-existing-email-and-login@example.com");
957
+
958
+ userService.deleteUser("save-existing-email-and-login")<%- reactorBlock %>;
927
959
  }
928
960
 
929
961
  @Test
@@ -963,6 +995,8 @@ class AccountResourceIT {
963
995
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password-wrong-existing-password")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
964
996
  assertThat(passwordEncoder.matches("new password", updatedUser.getPassword())).isFalse();
965
997
  assertThat(passwordEncoder.matches(currentPassword, updatedUser.getPassword())).isTrue();
998
+
999
+ userService.deleteUser("change-password-wrong-existing-password")<%- reactorBlock %>;
966
1000
  }
967
1001
 
968
1002
  @Test
@@ -1001,6 +1035,8 @@ class AccountResourceIT {
1001
1035
 
1002
1036
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password")<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
1003
1037
  assertThat(passwordEncoder.matches("new password", updatedUser.getPassword())).isTrue();
1038
+
1039
+ userService.deleteUser("change-password")<%- reactorBlock %>;
1004
1040
  }
1005
1041
 
1006
1042
  @Test
@@ -1041,6 +1077,8 @@ class AccountResourceIT {
1041
1077
 
1042
1078
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password-too-small")<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
1043
1079
  assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
1080
+
1081
+ userService.deleteUser("change-password-too-small")<%- reactorBlock %>;
1044
1082
  }
1045
1083
 
1046
1084
  @Test
@@ -1081,6 +1119,8 @@ class AccountResourceIT {
1081
1119
 
1082
1120
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password-too-long")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
1083
1121
  assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
1122
+
1123
+ userService.deleteUser("change-password-too-long")<%- reactorBlock %>;
1084
1124
  }
1085
1125
 
1086
1126
  @Test
@@ -1119,6 +1159,8 @@ class AccountResourceIT {
1119
1159
 
1120
1160
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password-empty")<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
1121
1161
  assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
1162
+
1163
+ userService.deleteUser("change-password-empty")<%- reactorBlock %>;
1122
1164
  }
1123
1165
  <%_ if (authenticationTypeSession && !reactive) { _%>
1124
1166
 
@@ -1165,6 +1207,9 @@ class AccountResourceIT {
1165
1207
  .andExpect(jsonPath("$.[*].ipAddress").value(hasItem(token.getIpAddress())))
1166
1208
  .andExpect(jsonPath("$.[*].userAgent").value(hasItem(token.getUserAgent())))
1167
1209
  .andExpect(jsonPath("$.[*].tokenDate").value(hasItem(containsString(<% if (databaseTypeCassandra) { %>"2017-03-28T15:25:57.123Z"<% } else { %>token.getTokenDate().toString()<% } %>))));
1210
+
1211
+ persistentTokenRepository.delete(token);
1212
+ userService.deleteUser("current-sessions")<%- reactorBlock %>;
1168
1213
  }
1169
1214
 
1170
1215
  @Test
@@ -1210,6 +1255,9 @@ class AccountResourceIT {
1210
1255
  .andExpect(status().isOk());
1211
1256
 
1212
1257
  assertThat(persistentTokenRepository.findByUser(user)).isEmpty();
1258
+
1259
+ persistentTokenRepository.delete(token);
1260
+ userService.deleteUser("invalidate-session")<%- reactorBlock %>;
1213
1261
  }
1214
1262
  <%_ } _%>
1215
1263
 
@@ -1244,6 +1292,8 @@ class AccountResourceIT {
1244
1292
  .with(csrf())<%_ } _%>)
1245
1293
  .andExpect(status().isOk());
1246
1294
  <%_ } _%>
1295
+
1296
+ userService.deleteUser("password-reset")<%- reactorBlock %>;
1247
1297
  }
1248
1298
 
1249
1299
  @Test
@@ -1277,6 +1327,8 @@ class AccountResourceIT {
1277
1327
  .with(csrf())<%_ } _%>)
1278
1328
  .andExpect(status().isOk());
1279
1329
  <%_ } _%>
1330
+
1331
+ userService.deleteUser("password-reset-upper-case")<%- reactorBlock %>;
1280
1332
  }
1281
1333
 
1282
1334
  @Test
@@ -1336,6 +1388,8 @@ class AccountResourceIT {
1336
1388
 
1337
1389
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin(user.getLogin())<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
1338
1390
  assertThat(passwordEncoder.matches(keyAndPassword.getNewPassword(), updatedUser.getPassword())).isTrue();
1391
+
1392
+ userService.deleteUser("finish-password-reset")<%- reactorBlock %>;
1339
1393
  }
1340
1394
 
1341
1395
  @Test
@@ -1378,6 +1432,8 @@ class AccountResourceIT {
1378
1432
 
1379
1433
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin(user.getLogin())<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
1380
1434
  assertThat(passwordEncoder.matches(keyAndPassword.getNewPassword(), updatedUser.getPassword())).isFalse();
1435
+
1436
+ userService.deleteUser("finish-password-reset-too-small")<%- reactorBlock %>;
1381
1437
  }
1382
1438
 
1383
1439
  @Test
@@ -34,11 +34,17 @@ import static org.mockito.Mockito.*;
34
34
 
35
35
  import <%= packageName %>.IntegrationTest;
36
36
  import <%= packageName %>.security.AuthoritiesConstants;
37
+ <%_ if (syncUserWithIdp) { _%>
38
+ import <%= packageName %>.repository.UserRepository;
39
+ <%_ } _%>
37
40
 
38
41
  import org.junit.jupiter.api.Test;
39
42
  import org.springframework.beans.factory.annotation.Autowired;
40
43
  import org.springframework.http.MediaType;
41
44
  import org.springframework.security.test.context.support.WithMockUser;
45
+ <%_ if (authenticationTypeOauth2) { _%>
46
+ import org.junit.jupiter.api.AfterEach;
47
+ <%_ } _%>
42
48
  <%_ if (reactive) { _%>
43
49
  import org.junit.jupiter.api.BeforeEach;
44
50
  import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
@@ -74,6 +80,11 @@ import org.springframework.transaction.annotation.Transactional;
74
80
  <%_ } _%>
75
81
  @IntegrationTest
76
82
  class AccountResourceIT {
83
+ <%_ if (syncUserWithIdp) { _%>
84
+
85
+ @Autowired
86
+ private UserRepository userRepository;
87
+ <%_ } _%>
77
88
 
78
89
  <%_ if (reactive) { _%>
79
90
  private Map<String, Object> claims;
@@ -106,6 +117,17 @@ class AccountResourceIT {
106
117
  claims.put("email", "jane.doe@jhipster.com");
107
118
  }
108
119
 
120
+ <%_ } _%>
121
+ <%_ if (syncUserWithIdp) { _%>
122
+ @AfterEach
123
+ public void cleanup() {
124
+ // Remove syncUserWithIdp users
125
+ <%_ if (databaseTypeSql && reactive) { _%>
126
+ userRepository.deleteAllUserAuthorities()<%- reactorBlock %>;
127
+ <%_ } _%>
128
+ userRepository.deleteAll()<%- reactorBlock %>;
129
+ }
130
+
109
131
  <%_ } _%>
110
132
  @Test
111
133
  <%_ if (databaseTypeSql && !reactive) { _%>
@@ -132,13 +132,32 @@ spring:
132
132
  allow-bean-definition-overriding: true
133
133
  messages:
134
134
  basename: i18n/messages
135
- <%_ if (generateInMemoryUserCredentials) { _%>
135
+ <%_ if (generateInMemoryUserCredentials || authenticationTypeOauth2 || authenticationTypeJwt) { _%>
136
136
  security:
137
+ <%_ if (generateInMemoryUserCredentials) { _%>
137
138
  user:
138
139
  name: test
139
140
  password: test
140
141
  roles:
141
142
  - USER
143
+ <%_ } _%>
144
+ <%_ if (authenticationTypeOauth2) { _%>
145
+ oauth2:
146
+ client:
147
+ provider:
148
+ oidc:
149
+ issuer-uri: http://DO_NOT_CALL:9080/realms/jhipster
150
+ resourceserver:
151
+ jwt:
152
+ principal-claim-name: preferred_username
153
+ <%_ } _%>
154
+ <%_ if (authenticationTypeJwt) { _%>
155
+ oauth2:
156
+ resourceserver:
157
+ jwt:
158
+ authority-prefix: ''
159
+ authorities-claim-name: auth
160
+ <%_ } _%>
142
161
  <%_ } _%>
143
162
  task:
144
163
  execution:
@@ -153,15 +172,6 @@ spring:
153
172
  size: 20
154
173
  thymeleaf:
155
174
  mode: HTML
156
- <%_ if (authenticationTypeOauth2) { _%>
157
- # Allow SecurityConfiguration to initialize w/o specifying an empty issuer-uri is OK
158
- security:
159
- oauth2:
160
- client:
161
- provider:
162
- oidc:
163
- issuer-uri: http://DO_NOT_CALL:9080/realms/jhipster
164
- <%_ } _%>
165
175
 
166
176
  server:
167
177
  port: 10344