diff --git a/security/userdetails/PersistentUserDetailsService.java b/security/userdetails/PersistentUserDetailsService.java index e65a50c..f08745c 100644 --- a/security/userdetails/PersistentUserDetailsService.java +++ b/security/userdetails/PersistentUserDetailsService.java @@ -51,4 +51,8 @@ public UserDetails loadUserByUsername(String username) throws UsernameNotFoundEx ${mapVariableName}.put(${usernameAttribute|domain:Model|name}, obj); return obj; } + + public void updateUser(${modelClassName} user) { + ${mapVariableName}.put(user.get${usernameAttribute|domain:Model|name|capitalize}(), user); + } } \ No newline at end of file diff --git a/web/thymeleaf-bootstrap/auth/LoginSignupWebPageController.java b/web/thymeleaf-bootstrap/auth/LoginSignupWebPageController.java index 7940656..0309687 100644 --- a/web/thymeleaf-bootstrap/auth/LoginSignupWebPageController.java +++ b/web/thymeleaf-bootstrap/auth/LoginSignupWebPageController.java @@ -185,7 +185,7 @@ public String signup(Model model) { @PostMapping(value = "/signup") public String registerUserAccount(@ModelAttribute("user") @Valid UserSignupDto userDto, - BindingResult result) throws ServiceException { + BindingResult result, HttpServletResponse res) throws ServiceException { ${userEntity|domain:Model|name} existing = userDetailsService.findBy${usernameFieldName|capitalize}(userDto.getUsername()); if (existing != null) { @@ -197,7 +197,7 @@ public String registerUserAccount(@ModelAttribute("user") @Valid UserSignupDto u } save(userDto); - return "redirect:${urlPathPrefix}/signup?success"; + return login(userDto.getUsername(), userDto.getPassword(), res); } public ${userEntity|domain:Model|name} save(UserSignupDto userSignupDto) throws ServiceException { @@ -218,7 +218,9 @@ public String registerUserAccount(@ModelAttribute("user") @Valid UserSignupDto u $[/if] user.set${userEntity.attributeOfTypeTagged("role")|domain:Model|name|capitalize}(roles); $[/if] - return userService.createUser(user); + ${userEntity|domain:Model|name} createdUser = userService.createUser(user); + userDetailsService.updateUser(createdUser); + return createdUser; } $[/if] }