generator-jhipster 8.9.0 → 8.11.0

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