aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/juick/www/controllers/SignUp.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/juick/www/controllers/SignUp.java')
-rw-r--r--src/main/java/com/juick/www/controllers/SignUp.java17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/main/java/com/juick/www/controllers/SignUp.java b/src/main/java/com/juick/www/controllers/SignUp.java
index 8318dabd..955b3b92 100644
--- a/src/main/java/com/juick/www/controllers/SignUp.java
+++ b/src/main/java/com/juick/www/controllers/SignUp.java
@@ -24,8 +24,13 @@ import com.juick.www.WebApp;
import com.juick.service.EmailService;
import com.juick.service.UserService;
import com.juick.service.security.entities.JuickUser;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.security.authentication.RememberMeAuthenticationToken;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.web.authentication.RememberMeServices;
+import org.springframework.security.web.authentication.rememberme.AbstractRememberMeServices;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
@@ -48,6 +53,8 @@ public class SignUp {
private EmailService emailService;
@Inject
private WebApp webApp;
+ @Inject
+ private RememberMeServices rememberMeServices;
@GetMapping("/signup")
@@ -91,6 +98,8 @@ public class SignUp {
@PostMapping("/signup")
protected String doPost(
+ HttpServletRequest request,
+ HttpServletResponse response,
@ModelAttribute User visitor,
@RequestParam String type,
@RequestParam String hash,
@@ -180,9 +189,11 @@ public class SignUp {
}
if (visitor.isAnonymous()) {
- UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken =
- new UsernamePasswordAuthenticationToken(new JuickUser(current), password, JuickUser.USER_AUTHORITY);
- SecurityContextHolder.getContext().setAuthentication(usernamePasswordAuthenticationToken);
+ var authentication = new RememberMeAuthenticationToken(
+ ((AbstractRememberMeServices) rememberMeServices).getKey(),
+ new JuickUser(current), JuickUser.USER_AUTHORITY);
+ SecurityContextHolder.getContext().setAuthentication(authentication);
+ rememberMeServices.loginSuccess(request, response, authentication);
}
return "redirect:/";
}