@@ -165,26 +165,29 @@ public String loginGet(Model model) {
165
165
}
166
166
167
167
@ RequestMapping (value = "/login" , method = RequestMethod .POST )
168
- public String loginPost (HttpServletRequest request , Model model ) {
168
+ public String loginPost (HttpServletRequest request , HttpServletResponse response , Model model ) {
169
169
String username = request .getParameter ("username" );
170
170
String password = request .getParameter ("password" );
171
171
boolean rememberMe = "on" .equals (request .getParameter ("rememberMe" ));
172
172
173
- // Authenticate the user
174
173
Authentication auth = new UsernamePasswordAuthenticationToken (username , password );
175
174
try {
176
175
auth = authenticationManager .authenticate (auth );
177
176
SecurityContextHolder .getContext ().setAuthentication (auth );
178
177
179
178
if (rememberMe ) {
180
- // Logic for handling "Remember Me" can be added here if needed
179
+ // Set a cookie for "Remember Me"
180
+ javax .servlet .http .Cookie rememberMeCookie = new javax .servlet .http .Cookie ("rememberMe" , username );
181
+ rememberMeCookie .setMaxAge (7 * 24 * 60 * 60 ); // 7 days
182
+ rememberMeCookie .setHttpOnly (true );
183
+ rememberMeCookie .setPath ("/" );
184
+ response .addCookie (rememberMeCookie );
181
185
}
182
186
} catch (BadCredentialsException e ) {
183
187
model .addAttribute ("error" , "Invalid username or password." );
184
188
return "login" ;
185
189
}
186
190
187
- // User is authenticated, redirect to landing page
188
191
return "redirect:/" ;
189
192
}
190
193
0 commit comments