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
@@ -27,9 +27,6 @@ import static org.springframework.security.web.util.matcher.AntPathRequestMatche
27
27
  <%_ } _%>
28
28
  import org.springframework.context.annotation.Bean;
29
29
  import org.springframework.context.annotation.Configuration;
30
- <%_ if (authenticationTypeOauth2) { _%>
31
- import org.springframework.core.convert.converter.Converter;
32
- <%_ } _%>
33
30
  <%_ if (devDatabaseTypeH2Any) { _%>
34
31
  import org.springframework.core.env.Environment;
35
32
  import org.springframework.core.env.Profiles;
@@ -70,7 +67,6 @@ import static org.springframework.security.oauth2.core.oidc.StandardClaimNames.P
70
67
 
71
68
  import <%= packageName %>.security.oauth2.AudienceValidator;
72
69
  import <%= packageName %>.security.SecurityUtils;
73
- import org.springframework.security.authentication.AbstractAuthenticationToken;
74
70
  import org.springframework.security.oauth2.client.userinfo.OAuth2UserService;
75
71
  import org.springframework.security.oauth2.client.oidc.userinfo.OidcUserRequest;
76
72
  import org.springframework.security.oauth2.client.oidc.userinfo.OidcUserService;
@@ -79,7 +75,6 @@ import org.springframework.security.oauth2.core.OAuth2TokenValidator;
79
75
  import org.springframework.security.oauth2.core.oidc.user.DefaultOidcUser;
80
76
  import org.springframework.security.oauth2.core.oidc.user.OidcUser;
81
77
  import org.springframework.security.oauth2.jwt.*;
82
- import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationConverter;
83
78
  import org.springframework.beans.factory.annotation.Value;
84
79
  import org.springframework.security.core.GrantedAuthority;
85
80
  <%_ if (!applicationTypeMicroservice) { _%>
@@ -103,9 +98,6 @@ import org.springframework.security.web.authentication.RememberMeServices;
103
98
  <%_ if (authenticationUsesCsrf && !applicationTypeMicroservice) { _%>
104
99
  import org.springframework.security.web.csrf.*;
105
100
  <%_ } _%>
106
- <%_ if (authenticationTypeOauth2) { _%>
107
- import <%= packageName %>.security.oauth2.JwtGrantedAuthorityConverter;
108
- <%_ } _%>
109
101
  <%_ if (authenticationTypeJwt) { _%>
110
102
  import org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationEntryPoint;
111
103
  import org.springframework.security.oauth2.server.resource.web.access.BearerTokenAccessDeniedHandler;
@@ -292,9 +284,7 @@ public class SecurityConfiguration {
292
284
  <%_ } else { _%>
293
285
  .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
294
286
  <%_ } _%>
295
- .oauth2ResourceServer(oauth2 -> oauth2
296
- .jwt(jwt -> jwt
297
- .jwtAuthenticationConverter(authenticationConverter())))
287
+ .oauth2ResourceServer(oauth2 -> oauth2.jwt(withDefaults()))
298
288
  .oauth2Client(withDefaults());
299
289
  <%_ } _%>
300
290
  <%_ if (devDatabaseTypeH2Any) { _%>
@@ -315,13 +305,6 @@ public class SecurityConfiguration {
315
305
  }
316
306
  <%_ if (authenticationTypeOauth2) { _%>
317
307
 
318
- Converter<Jwt, AbstractAuthenticationToken> authenticationConverter() {
319
- JwtAuthenticationConverter jwtAuthenticationConverter = new JwtAuthenticationConverter();
320
- jwtAuthenticationConverter.setJwtGrantedAuthoritiesConverter(new JwtGrantedAuthorityConverter());
321
- jwtAuthenticationConverter.setPrincipalClaimName(PREFERRED_USERNAME);
322
- return jwtAuthenticationConverter;
323
- }
324
-
325
308
  OAuth2UserService<OidcUserRequest, OidcUser> oidcUserService() {
326
309
  final OidcUserService delegate = new OidcUserService();
327
310
 
@@ -24,9 +24,6 @@ import static org.springframework.security.oauth2.core.oidc.StandardClaimNames.P
24
24
 
25
25
  import <%= packageName %>.security.SecurityUtils;
26
26
  import <%= packageName %>.security.oauth2.AudienceValidator;
27
- import <%= packageName %>.security.oauth2.JwtGrantedAuthorityConverter;
28
- import org.springframework.security.authentication.AbstractAuthenticationToken;
29
- import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationConverter;
30
27
  import org.springframework.beans.factory.annotation.Value;
31
28
  <%_ } _%>
32
29
  <%_ if (authenticationUsesCsrf) { _%>
@@ -42,7 +39,6 @@ import <%= packageName %>.web.filter.SpaWebFilter;
42
39
  import org.springframework.context.annotation.Bean;
43
40
  import org.springframework.context.annotation.Configuration;
44
41
  <%_ if (authenticationTypeOauth2) { _%>
45
- import org.springframework.core.convert.converter.Converter;
46
42
  <%_ if (!applicationTypeMicroservice) { _%>
47
43
  import org.springframework.core.ParameterizedTypeReference;
48
44
  <%_ } _%>
@@ -81,7 +77,6 @@ import org.springframework.security.oauth2.core.oidc.user.DefaultOidcUser;
81
77
  import org.springframework.security.oauth2.core.oidc.user.OidcUser;
82
78
  import org.springframework.security.oauth2.core.oidc.user.OidcUserAuthority;
83
79
  import org.springframework.security.oauth2.jwt.*;
84
- import org.springframework.security.oauth2.server.resource.authentication.ReactiveJwtAuthenticationConverterAdapter;
85
80
  <%_ } _%>
86
81
  <%_ if (!authenticationTypeOauth2) { _%>
87
82
  import org.springframework.security.authentication.ReactiveAuthenticationManager;
@@ -308,9 +303,7 @@ public class SecurityConfiguration {
308
303
  .oauth2Login(oauth2 -> oauth2.authorizationRequestResolver(authorizationRequestResolver(this.clientRegistrationRepository)))
309
304
  <%_ } _%>
310
305
  .oauth2Client(withDefaults())
311
- .oauth2ResourceServer(oauth2 -> oauth2
312
- .jwt(jwt -> jwt
313
- .jwtAuthenticationConverter(jwtAuthenticationConverter())));
306
+ .oauth2ResourceServer(oauth2 -> oauth2.jwt(withDefaults()));
314
307
  <%_ } else if (authenticationTypeJwt) { _%>
315
308
  .httpBasic(basic -> basic.disable())
316
309
  .oauth2ResourceServer(oauth2 -> oauth2.jwt(withDefaults()));
@@ -338,13 +331,6 @@ public class SecurityConfiguration {
338
331
  }
339
332
  <%_ } _%>
340
333
 
341
- Converter<Jwt, Mono<AbstractAuthenticationToken>> jwtAuthenticationConverter() {
342
- JwtAuthenticationConverter jwtAuthenticationConverter = new JwtAuthenticationConverter();
343
- jwtAuthenticationConverter.setJwtGrantedAuthoritiesConverter(new JwtGrantedAuthorityConverter());
344
- jwtAuthenticationConverter.setPrincipalClaimName(PREFERRED_USERNAME);
345
- return new ReactiveJwtAuthenticationConverterAdapter(jwtAuthenticationConverter);
346
- }
347
-
348
334
  /**
349
335
  * Map authorities from "groups" or "roles" claim in ID Token.
350
336
  *
@@ -35,11 +35,6 @@ import org.springframework.security.oauth2.jwt.<%= reactive ? 'Reactive' : '' %>
35
35
  import org.springframework.security.oauth2.jwt.JwtEncoder;
36
36
  import org.springframework.security.oauth2.jwt.Nimbus<%= reactive ? 'Reactive' : '' %>JwtDecoder;
37
37
  import org.springframework.security.oauth2.jwt.NimbusJwtEncoder;
38
- import org.springframework.security.oauth2.server.resource.authentication.<%= reactive ? 'Reactive' : '' %>JwtAuthenticationConverter;
39
- import org.springframework.security.oauth2.server.resource.authentication.JwtGrantedAuthoritiesConverter;
40
- <%_ if (reactive) { _%>
41
- import org.springframework.security.oauth2.server.resource.authentication.ReactiveJwtGrantedAuthoritiesConverterAdapter;
42
- <%_ } _%>
43
38
  <%_ if (communicationSpringWebsocket) { %>
44
39
  import org.springframework.security.oauth2.server.resource.web.BearerTokenResolver;
45
40
  import org.springframework.security.oauth2.server.resource.web.DefaultBearerTokenResolver;
@@ -48,7 +43,7 @@ import org.springframework.security.oauth2.server.resource.web.DefaultBearerToke
48
43
  @Configuration
49
44
  public class SecurityJwtConfiguration {
50
45
 
51
- private final Logger log = LoggerFactory.getLogger(SecurityJwtConfiguration.class);
46
+ private static final Logger log = LoggerFactory.getLogger(SecurityJwtConfiguration.class);
52
47
 
53
48
  @Value("${jhipster.security.authentication.jwt.base64-secret}")
54
49
  private String jwtKey;
@@ -113,21 +108,6 @@ public class SecurityJwtConfiguration {
113
108
  return new NimbusJwtEncoder(new ImmutableSecret<>(getSecretKey()));
114
109
  }
115
110
 
116
- @Bean
117
- public <%= reactive ? 'Reactive' : '' %>JwtAuthenticationConverter jwtAuthenticationConverter() {
118
- JwtGrantedAuthoritiesConverter grantedAuthoritiesConverter = new JwtGrantedAuthoritiesConverter();
119
- grantedAuthoritiesConverter.setAuthorityPrefix("");
120
- grantedAuthoritiesConverter.setAuthoritiesClaimName(AUTHORITIES_KEY);
121
-
122
- <%= reactive ? 'Reactive' : '' %>JwtAuthenticationConverter jwtAuthenticationConverter = new <%= reactive ? 'Reactive' : '' %>JwtAuthenticationConverter();
123
- <%_ if (reactive) { %>
124
- jwtAuthenticationConverter.setJwtGrantedAuthoritiesConverter(new ReactiveJwtGrantedAuthoritiesConverterAdapter(grantedAuthoritiesConverter));
125
- <%_ } else { _%>
126
- jwtAuthenticationConverter.setJwtGrantedAuthoritiesConverter(grantedAuthoritiesConverter);
127
- <%_ } _%>
128
- return jwtAuthenticationConverter;
129
- }
130
-
131
111
  <%_ if (communicationSpringWebsocket) { %>
132
112
  @Bean
133
113
  public BearerTokenResolver bearerTokenResolver() {
@@ -94,7 +94,7 @@ import java.util.concurrent.TimeUnit;
94
94
  @Configuration
95
95
  public class WebConfigurer implements <% if (!reactive) { %>ServletContextInitializer<% if (!skipClient) { %>, WebServerFactoryCustomizer<WebServerFactory><% } %><% } %><% if (reactive) { %>WebFluxConfigurer<% } %> {
96
96
 
97
- private final Logger log = LoggerFactory.getLogger(WebConfigurer.class);
97
+ private static final Logger log = LoggerFactory.getLogger(WebConfigurer.class);
98
98
 
99
99
  <%_ if (!reactive) { _%>
100
100
  private final Environment env;
@@ -51,7 +51,7 @@ import java.util.*;
51
51
  @Component("userDetailsService")
52
52
  public class DomainUserDetailsService implements <% if (reactive) { %>Reactive<% } %>UserDetailsService {
53
53
 
54
- private final Logger log = LoggerFactory.getLogger(DomainUserDetailsService.class);
54
+ private static final Logger log = LoggerFactory.getLogger(DomainUserDetailsService.class);
55
55
 
56
56
  private final UserRepository userRepository;
57
57
 
@@ -81,7 +81,7 @@ import java.util.*;
81
81
  public class PersistentTokenRememberMeServices extends
82
82
  AbstractRememberMeServices {
83
83
 
84
- private final Logger log = LoggerFactory.getLogger(PersistentTokenRememberMeServices.class);
84
+ private static final Logger log = LoggerFactory.getLogger(PersistentTokenRememberMeServices.class);
85
85
 
86
86
  // Token is valid for one month
87
87
  private static final int TOKEN_VALIDITY_DAYS = 31;
@@ -17,6 +17,10 @@
17
17
  limitations under the License.
18
18
  -%>
19
19
  package <%= packageName %>.security;
20
+ <%_ if (generateAuthenticationApi && (authenticationTypeOauth2 || authenticationTypeJwt)) { _%>
21
+
22
+ import <%= packageName %>.config.Constants;
23
+ <%_ } _%>
20
24
 
21
25
  import org.springframework.security.core.Authentication;
22
26
  import org.springframework.security.core.GrantedAuthority;
@@ -35,23 +39,32 @@ import org.springframework.security.oauth2.jwt.Jwt;
35
39
  import org.springframework.security.core.authority.SimpleGrantedAuthority;
36
40
  import org.springframework.security.oauth2.core.oidc.user.DefaultOidcUser;
37
41
  import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationToken;
38
- import java.util.*;
39
- import java.util.stream.Collectors;
42
+ import java.util.Arrays;
43
+ import java.util.ArrayList;
44
+ import java.util.List;
40
45
  <%_ if (reactive) { _%>
41
46
  import reactor.core.publisher.Mono;
42
47
  <%_ } else { _%>
43
48
  import java.util.stream.Stream;
44
49
  <%_ } _%>
45
50
  <%_ } else { _%>
51
+ import java.util.Arrays;
46
52
  <%_ if (reactive) { _%>
47
53
  import reactor.core.publisher.Mono;
48
- import java.util.Arrays;
49
54
  <%_ } else { _%>
50
- import java.util.Arrays;
51
- import java.util.Optional;
52
55
  import java.util.stream.Stream;
53
56
  <%_ } _%>
54
57
  <%_ } _%>
58
+ <%_ if (authenticationTypeOauth2 || authenticationTypeJwt || !reactive) { _%>
59
+ import java.util.Optional;
60
+ <%_ } _%>
61
+ <%_ if (authenticationTypeOauth2 || authenticationTypeJwt) { _%>
62
+ import org.springframework.security.oauth2.core.oidc.StandardClaimNames;
63
+ import java.util.Collection;
64
+ import java.util.HashMap;
65
+ import java.util.Map;
66
+ import java.util.stream.Collectors;
67
+ <%_ } _%>
55
68
 
56
69
  /**
57
70
  * Utility class for Spring Security.
@@ -230,4 +243,51 @@ public final class SecurityUtils {
230
243
  .collect(Collectors.toList());
231
244
  }
232
245
  <%_ } _%>
246
+ <%_ if (generateAuthenticationApi && ((authenticationTypeOauth2 && !syncUserWithIdp) || (authenticationTypeJwt && skipUserManagement))) { _%>
247
+
248
+ public static Map<String, Object> extractDetailsFromTokenAttributes(Map<String, Object> attributes) {
249
+ Map<String, Object> details = new HashMap<>();
250
+
251
+ details.put("activated", Optional.ofNullable(attributes.get(StandardClaimNames.EMAIL_VERIFIED)).orElse(true));
252
+ Optional.ofNullable(attributes.get("uid")).ifPresent(id -> details.put("id", id));
253
+ Optional.ofNullable(attributes.get(StandardClaimNames.FAMILY_NAME)).ifPresent(lastName -> details.put("lastName", lastName));
254
+ Optional.ofNullable(attributes.get(StandardClaimNames.PICTURE)).ifPresent(imageUrl -> details.put("imageUrl", imageUrl));
255
+
256
+ Optional.ofNullable(attributes.get(StandardClaimNames.GIVEN_NAME)).ifPresentOrElse(
257
+ firstName -> details.put("firstName", firstName),
258
+ () -> Optional.ofNullable(attributes.get(StandardClaimNames.NAME)).ifPresent(firstName -> details.put("firstName", firstName))
259
+ );
260
+
261
+ if (attributes.get(StandardClaimNames.EMAIL) != null) {
262
+ details.put("email", attributes.get(StandardClaimNames.EMAIL));
263
+ } else {
264
+ String sub = String.valueOf(attributes.get(StandardClaimNames.SUB));
265
+ String preferredUsername = (String) attributes.get(StandardClaimNames.PREFERRED_USERNAME);
266
+ if (sub.contains("|") && (preferredUsername != null && preferredUsername.contains("@"))) {
267
+ // special handling for Auth0
268
+ details.put("email", preferredUsername);
269
+ } else {
270
+ details.put("email", sub);
271
+ }
272
+ }
273
+
274
+ if (attributes.get("langKey") != null) {
275
+ details.put("langKey", attributes.get("langKey"));
276
+ } else if (attributes.get(StandardClaimNames.LOCALE) != null) {
277
+ // trim off country code if it exists
278
+ String locale = (String) attributes.get(StandardClaimNames.LOCALE);
279
+ if (locale.contains("_")) {
280
+ locale = locale.substring(0, locale.indexOf('_'));
281
+ } else if (locale.contains("-")) {
282
+ locale = locale.substring(0, locale.indexOf('-'));
283
+ }
284
+ details.put("langKey", locale.toLowerCase());
285
+ } else {
286
+ // set langKey to default if not specified by IdP
287
+ details.put("langKey", Constants.DEFAULT_LANGUAGE);
288
+ }
289
+
290
+ return details;
291
+ }
292
+ <%_ } _%>
233
293
  }
@@ -29,7 +29,7 @@ import org.springframework.util.Assert;
29
29
  import java.util.List;
30
30
 
31
31
  public class AudienceValidator implements OAuth2TokenValidator<Jwt> {
32
- private final Logger log = LoggerFactory.getLogger(AudienceValidator.class);
32
+ private static final Logger log = LoggerFactory.getLogger(AudienceValidator.class);
33
33
  private final OAuth2Error error = new OAuth2Error("invalid_token", "The required audience is missing", null);
34
34
 
35
35
  private final List<String> allowedAudience;
@@ -56,7 +56,7 @@ _%>
56
56
  @Service
57
57
  public class MailService {
58
58
 
59
- private final Logger log = LoggerFactory.getLogger(MailService.class);
59
+ private static final Logger log = LoggerFactory.getLogger(MailService.class);
60
60
 
61
61
  private static final String USER = "user";
62
62
 
@@ -23,6 +23,7 @@ import <%= user.entityAbsoluteClass %>;
23
23
  <%_ } _%>
24
24
 
25
25
  import java.io.Serializable;
26
+ import java.util.Objects;
26
27
  <%_ if (user.primaryKey.hasUUID) { _%>
27
28
  import java.util.UUID;
28
29
  <%_ } _%>
@@ -76,10 +77,43 @@ public class <%= user.dtoClass %> implements Serializable {
76
77
  public String get<%= field.propertyJavaBeanName %>() {
77
78
  return <%= field.fieldName %>;
78
79
  }
80
+
79
81
  public void set<%= field.propertyJavaBeanName %>(String <%= field.fieldName %>) {
80
82
  this.<%= field.fieldName %> = <%= field.fieldName %>;
81
83
  }
84
+
85
+ <%_ } _%>
86
+ @Override
87
+ public boolean equals(Object o) {
88
+ if (this == o) {
89
+ return true;
90
+ }
91
+ if (o == null || getClass() != o.getClass()) {
92
+ return false;
93
+ }
94
+
95
+ <%= user.dtoClass %> userDTO = (<%= user.dtoClass %>) o;
96
+ if (userDTO.getId() == null || getId() == null) {
97
+ return false;
98
+ }
99
+
100
+ return Objects.equals(getId(), userDTO.getId()) &&
101
+ <%_ for (field of user.fields.filter(field => !field.builtIn && field.relatedByOtherEntity)) { _%>
102
+ Objects.equals(get<%= field.propertyJavaBeanName %>(), userDTO.get<%= field.propertyJavaBeanName %>()) &&
103
+ <%_ } _%>
104
+ Objects.equals(getLogin(), userDTO.getLogin());
105
+ }
106
+
107
+ @Override
108
+ public int hashCode() {
109
+ return Objects.hash(
110
+ getId(),
111
+ <%_ for (const { propertyJavaBeanName } of user.fields.filter(field => !field.builtIn && field.relatedByOtherEntity)) { _%>
112
+ get<%= field.propertyJavaBeanName %>(),
82
113
  <%_ } _%>
114
+ getLogin()
115
+ );
116
+ }
83
117
 
84
118
  // prettier-ignore
85
119
  @Override
@@ -84,14 +84,19 @@ public class UserMapper {
84
84
  user.setEmail(userDTO.getEmail());
85
85
  <%_ if (!databaseTypeCassandra) { _%>
86
86
  user.setImageUrl(userDTO.getImageUrl());
87
+ <%_ } _%>
88
+ <%_ if (generateSpringAuditor) { _%>
89
+ user.setCreatedBy(userDTO.getCreatedBy());
90
+ user.setCreatedDate(userDTO.getCreatedDate());
91
+ user.setLastModifiedBy(userDTO.getLastModifiedBy());
92
+ user.setLastModifiedDate(userDTO.getLastModifiedDate());
87
93
  <%_ } _%>
88
94
  user.setActivated(userDTO.isActivated());
89
95
  user.setLangKey(userDTO.getLangKey());
90
96
  <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
91
97
  Set<Authority> authorities = this.authoritiesFromStrings(userDTO.getAuthorities());
92
98
  user.setAuthorities(authorities);
93
- <%_ } _%>
94
- <%_ if (databaseTypeCassandra || databaseTypeCouchbase) { _%>
99
+ <%_ } else { _%>
95
100
  Set<String> authorities = this.cleanNullStringAuthorities(userDTO.getAuthorities());
96
101
  user.setAuthorities(authorities);
97
102
  <%_ } _%>
@@ -114,8 +119,7 @@ public class UserMapper {
114
119
 
115
120
  return authorities;
116
121
  }
117
- <%_ } _%>
118
- <%_ if (databaseTypeCassandra || databaseTypeCouchbase) { _%>
122
+ <%_ } else { _%>
119
123
 
120
124
  private Set<String> cleanNullStringAuthorities(Set<String> authoritiesAsString) {
121
125
  Set<String> authorities = new HashSet<>();
@@ -74,7 +74,7 @@ public class AccountResource {
74
74
  }
75
75
  }
76
76
 
77
- private final Logger log = LoggerFactory.getLogger(AccountResource.class);
77
+ private static final Logger log = LoggerFactory.getLogger(AccountResource.class);
78
78
 
79
79
  private final UserRepository userRepository;
80
80
 
@@ -55,7 +55,7 @@ public class AccountResource {
55
55
  }
56
56
  }
57
57
 
58
- private final Logger log = LoggerFactory.getLogger(AccountResource.class);
58
+ private static final Logger log = LoggerFactory.getLogger(AccountResource.class);
59
59
 
60
60
  private final UserService userService;
61
61
 
@@ -18,6 +18,11 @@
18
18
  -%>
19
19
  package <%= packageName %>.web.rest;
20
20
 
21
+ import <%= packageName %>.security.SecurityUtils;
22
+ <%_ if (generateBuiltInAuthorityEntity) { _%>
23
+ import <%= packageName %>.domain.Authority;
24
+
25
+ <%_ } _%>
21
26
  <%_ if (reactive) { _%>
22
27
  import reactor.core.publisher.Mono;
23
28
  <%_ } else { _%>
@@ -47,7 +52,7 @@ import org.springframework.security.core.context.SecurityContextHolder;
47
52
  <%_ } _%>
48
53
  <%_ } _%>
49
54
 
50
- import com.fasterxml.jackson.annotation.JsonCreator;
55
+ import com.fasterxml.jackson.annotation.JsonAnyGetter;
51
56
  import org.slf4j.Logger;
52
57
  import org.slf4j.LoggerFactory;
53
58
  import org.springframework.security.core.GrantedAuthority;
@@ -55,6 +60,7 @@ import org.springframework.web.bind.annotation.GetMapping;
55
60
  import org.springframework.web.bind.annotation.RequestMapping;
56
61
  import org.springframework.web.bind.annotation.RestController;
57
62
 
63
+ import java.util.Map;
58
64
  import java.util.Set;
59
65
  import java.util.stream.Collectors;
60
66
 
@@ -62,7 +68,7 @@ import java.util.stream.Collectors;
62
68
  @RequestMapping("/api")
63
69
  public class AccountResource {
64
70
 
65
- private final Logger log = LoggerFactory.getLogger(AccountResource.class);
71
+ private static final Logger log = LoggerFactory.getLogger(AccountResource.class);
66
72
 
67
73
  private static class AccountResourceException extends RuntimeException {
68
74
  <%_ if (authenticationTypeOauth2 || authenticationTypeJwt) { _%>
@@ -157,12 +163,21 @@ public class AccountResource {
157
163
 
158
164
  private static class UserVM {
159
165
  private String login;
166
+ <%_ if (generateBuiltInAuthorityEntity) { _%>
167
+ private Set<Authority> authorities;
168
+ <%_ } else { _%>
160
169
  private Set<String> authorities;
170
+ <%_ } _%>
171
+ <%_ if (authenticationTypeOauth2 || authenticationTypeJwt) { _%>
172
+ private Map<String, Object> details;
173
+ <%_ } _%>
161
174
 
162
- @JsonCreator
163
- UserVM(String login, Set<String> authorities) {
175
+ UserVM(String login, Set<String> authorities<% if (authenticationTypeOauth2 || authenticationTypeJwt) { %>, Map<String, Object> details<% } %>) {
164
176
  this.login = login;
165
177
  this.authorities = authorities;
178
+ <%_ if (authenticationTypeOauth2 || authenticationTypeJwt) { _%>
179
+ this.details = details;
180
+ <%_ } _%>
166
181
  }
167
182
 
168
183
  public boolean isActivated() {
@@ -176,22 +191,41 @@ public class AccountResource {
176
191
  public String getLogin() {
177
192
  return login;
178
193
  }
194
+ <%_ if (authenticationTypeOauth2 || authenticationTypeJwt) { _%>
195
+
196
+ @JsonAnyGetter
197
+ public Map<String, Object> getDetails() {
198
+ return details;
199
+ }
200
+ <%_ } _%>
179
201
  }
180
202
  <%_ if (authenticationTypeOauth2 || authenticationTypeJwt) { _%>
181
203
 
182
- private UserVM getUserFromAuthentication(AbstractAuthenticationToken authToken) {
183
- if (
204
+ private static UserVM getUserFromAuthentication(AbstractAuthenticationToken authToken) {
205
+ Map<String, Object> attributes;
206
+ if (authToken instanceof JwtAuthenticationToken) {
207
+ attributes = ((JwtAuthenticationToken) authToken).getTokenAttributes();
184
208
  <%_ if (authenticationTypeOauth2) { _%>
185
- !(authToken instanceof OAuth2AuthenticationToken) &&
209
+ } else if (authToken instanceof OAuth2AuthenticationToken) {
210
+ attributes = ((OAuth2AuthenticationToken) authToken).getPrincipal().getAttributes();
186
211
  <%_ } _%>
187
- !(authToken instanceof JwtAuthenticationToken)
188
- ) {
212
+ } else {
189
213
  throw new IllegalArgumentException("AuthenticationToken is not OAuth2 or JWT!");
190
214
  }
191
215
 
192
216
  return new UserVM(
193
217
  authToken.getName(),
194
- authToken.getAuthorities().stream().map(GrantedAuthority::getAuthority).collect(Collectors.toSet())
218
+ authToken.getAuthorities().stream()
219
+ .map(GrantedAuthority::getAuthority)
220
+ <%_ if (generateBuiltInAuthorityEntity) { _%>
221
+ .map(authority -> {
222
+ Authority auth = new Authority();
223
+ auth.setName(authority);
224
+ return auth;
225
+ })
226
+ <%_ } _%>
227
+ .collect(Collectors.toSet()),
228
+ SecurityUtils.extractDetailsFromTokenAttributes(attributes)
195
229
  );
196
230
  }
197
231
  <%_ } _%>
@@ -61,7 +61,7 @@ import org.springframework.security.core.context.SecurityContextHolder;
61
61
  @RequestMapping("/api")
62
62
  public class AuthenticateController {
63
63
 
64
- private final Logger log = LoggerFactory.getLogger(AuthenticateController.class);
64
+ private static final Logger log = LoggerFactory.getLogger(AuthenticateController.class);
65
65
 
66
66
  private final JwtEncoder jwtEncoder;
67
67
 
@@ -111,7 +111,7 @@ spring:
111
111
  prefer-ip-address: true
112
112
  tags:
113
113
  - profile=${spring.profiles.active}
114
- - version=#project.version#
114
+ - version='@project.version@'
115
115
  - git-version=${git.commit.id.describe:}
116
116
  - git-commit=${git.commit.id.abbrev:}
117
117
  - git-branch=${git.branch:}
@@ -63,7 +63,7 @@ eureka:
63
63
  metadata-map:
64
64
  zone: primary # This is needed for the load balancer
65
65
  profile: ${spring.profiles.active}
66
- version: #project.version#
66
+ version: '@project.version@'
67
67
  git-version: ${git.commit.id.describe:}
68
68
  git-commit: ${git.commit.id.abbrev:}
69
69
  git-branch: ${git.branch:}
@@ -188,6 +188,22 @@ spring:
188
188
  enabled: false
189
189
  <%_ } _%>
190
190
  <%_ if (applicationTypeGateway) { _%>
191
+ <%_ if (!serviceDiscoveryAny) { _%>
192
+ discovery:
193
+ client:
194
+ simple:
195
+ instances:
196
+ <%= lowercaseBaseName %>:
197
+ - instanceId: <%= lowercaseBaseName %>1
198
+ host: localhost
199
+ port: <%= serverPort %>
200
+ <%_ for (const ms of gatewayRoutes ?? []) { _%>
201
+ <%= ms.route %>:
202
+ - instanceId: <%= ms.route %>1
203
+ host: <%= ms.host %>
204
+ port: <%= ms.serverPort %>
205
+ <%_ } _%>
206
+ <%_ } _%>
191
207
  gateway:
192
208
  <%_ if (reactive) { _%>
193
209
  default-filters:
@@ -212,11 +228,22 @@ spring:
212
228
  mvc:
213
229
  routes:
214
230
  - id: <%= lowercaseBaseName %>_route
215
- uri: lb://<%= lowercaseBaseName %>:<%= serverPort %>
231
+ uri: lb://<%= lowercaseBaseName %>
216
232
  predicates:
217
233
  - Path=/services/<%= lowercaseBaseName %>/**
218
234
  filters:
219
- - RewritePath=/services/<%= lowercaseBaseName %>/?(?<segment>.*), /$\{segment}
235
+ - StripPrefix=2
236
+ <%_ for (const ms of gatewayRoutes ?? []) { _%>
237
+ - id: <%= ms.route %>_route
238
+ uri: lb://<%= ms.route %>
239
+ predicates:
240
+ - Path=/services/<%= ms.route %>/**
241
+ filters:
242
+ - StripPrefix=2
243
+ <%_ if (authenticationTypeOauth2) { _%>
244
+ - TokenRelay
245
+ <%_ } _%>
246
+ <%_ } _%>
220
247
  <%_ } _%>
221
248
  <%_ } _%>
222
249
  <%_ if (messageBrokerKafka) { _%>
@@ -308,14 +335,43 @@ spring:
308
335
  <% if (reactive) { %>webflux<% } else { %>mvc<% } %>:
309
336
  problemdetails:
310
337
  enabled: true
311
- <%_ if (generateInMemoryUserCredentials) { _%>
338
+ <%_ if (generateInMemoryUserCredentials || authenticationTypeOauth2 || authenticationTypeJwt) { _%>
312
339
  security:
340
+ <%_ if (generateInMemoryUserCredentials) { _%>
313
341
  user:
314
342
  name: admin
315
343
  password: admin
316
344
  roles:
317
345
  - ADMIN
318
346
  - USER
347
+ <%_ } _%>
348
+ <%_ if (authenticationTypeOauth2) { _%>
349
+ oauth2:
350
+ client:
351
+ provider:
352
+ oidc:
353
+ issuer-uri: http://localhost:9080/realms/jhipster
354
+ registration:
355
+ oidc:
356
+ <%_ if (applicationTypeMicroservice) { _%>
357
+ client-id: internal
358
+ client-secret: internal
359
+ <%_ } else { _%>
360
+ client-id: web_app
361
+ client-secret: web_app
362
+ <%_ } _%>
363
+ scope: openid, profile, email, offline_access # last one for refresh tokens
364
+ resourceserver:
365
+ jwt:
366
+ principal-claim-name: preferred_username
367
+ <%_ } _%>
368
+ <%_ if (authenticationTypeJwt) { _%>
369
+ oauth2:
370
+ resourceserver:
371
+ jwt:
372
+ authority-prefix: ''
373
+ authorities-claim-name: auth
374
+ <%_ } _%>
319
375
  <%_ } _%>
320
376
  task:
321
377
  execution:
@@ -333,24 +389,6 @@ spring:
333
389
  output:
334
390
  ansi:
335
391
  console-available: true
336
- <%_ if (authenticationTypeOauth2) { _%>
337
- security:
338
- oauth2:
339
- client:
340
- provider:
341
- oidc:
342
- issuer-uri: http://localhost:9080/realms/jhipster
343
- registration:
344
- oidc:
345
- <%_ if (applicationTypeMicroservice) { _%>
346
- client-id: internal
347
- client-secret: internal
348
- <%_ } else { _%>
349
- client-id: web_app
350
- client-secret: web_app
351
- <%_ } _%>
352
- scope: openid, profile, email, offline_access # last one for refresh tokens
353
- <%_ } _%>
354
392
 
355
393
  server:
356
394
  servlet: