Skip to content

Commit 0761121

Browse files
authored
Merge pull request #35 from TP-RENTPLACE/feature/(TP-77)-add-auth-module
(TP-77) feat: change Cookie to ResponseCookie and add method samesite()
2 parents 19e01ab + 56b849b commit 0761121

1 file changed

Lines changed: 31 additions & 1 deletion

File tree

rentplace/src/main/java/kattsyn/dev/rentplace/controllers/AuthController.java

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import io.swagger.v3.oas.annotations.Operation;
44
import io.swagger.v3.oas.annotations.tags.Tag;
55
import jakarta.security.auth.message.AuthException;
6-
import jakarta.servlet.http.Cookie;
76
import jakarta.servlet.http.HttpServletResponse;
87
import kattsyn.dev.rentplace.dtos.CodeRequest;
98
import kattsyn.dev.rentplace.dtos.JwtRequest;
@@ -12,9 +11,13 @@
1211
import kattsyn.dev.rentplace.services.AuthService;
1312
import kattsyn.dev.rentplace.services.VerificationCodeService;
1413
import lombok.RequiredArgsConstructor;
14+
import org.springframework.http.HttpHeaders;
15+
import org.springframework.http.ResponseCookie;
1516
import org.springframework.http.ResponseEntity;
1617
import org.springframework.web.bind.annotation.*;
1718

19+
import java.time.Duration;
20+
1821
@RestController
1922
@RequestMapping("${api.path}/auth")
2023
@RequiredArgsConstructor
@@ -43,6 +46,17 @@ public ResponseEntity<JwtResponse> login(@RequestBody JwtRequest authRequest,
4346
HttpServletResponse response) throws AuthException {
4447
JwtResponse tokens = authService.login(authRequest);
4548

49+
ResponseCookie refreshCookie = ResponseCookie.from("refreshToken", tokens.getRefreshToken())
50+
.httpOnly(true)
51+
.secure(true) // обязательно для SameSite=None
52+
.sameSite("None") // <== вот это ключевое
53+
.path("/")
54+
.maxAge(Duration.ofDays(30)) // чтобы не исчезала
55+
.build();
56+
57+
response.addHeader(HttpHeaders.SET_COOKIE, refreshCookie.toString());
58+
59+
/*
4660
// Настройка cookie для refresh token
4761
Cookie refreshTokenCookie = new Cookie("refreshToken", tokens.getRefreshToken());
4862
refreshTokenCookie.setHttpOnly(true);
@@ -52,6 +66,8 @@ public ResponseEntity<JwtResponse> login(@RequestBody JwtRequest authRequest,
5266
5367
response.addCookie(refreshTokenCookie);
5468
69+
*/
70+
5571
return ResponseEntity.ok()
5672
.body(new JwtResponse(tokens.getAccessToken(), null));
5773
}
@@ -74,13 +90,27 @@ public ResponseEntity<JwtResponse> getNewAccessToken(@RequestBody RefreshJwtRequ
7490
public ResponseEntity<JwtResponse> refresh(@CookieValue(name = "refreshToken") String refreshToken, HttpServletResponse response) throws AuthException {
7591
JwtResponse jwtResponse = authService.refresh(refreshToken);
7692

93+
/*
7794
Cookie refreshCookie = new Cookie("refreshToken", jwtResponse.getRefreshToken());
7895
refreshCookie.setHttpOnly(true);
7996
refreshCookie.setSecure(true);
8097
refreshCookie.setPath("/");
8198
refreshCookie.setMaxAge(30 * 24 * 60 * 60);
8299
response.addCookie(refreshCookie);
83100
101+
*/
102+
103+
ResponseCookie refreshCookie = ResponseCookie.from("refreshToken", jwtResponse.getRefreshToken())
104+
.httpOnly(true)
105+
.secure(true)
106+
.sameSite("None")
107+
.path("/")
108+
.maxAge(Duration.ofDays(30))
109+
.build();
110+
111+
response.addHeader(HttpHeaders.SET_COOKIE, refreshCookie.toString());
112+
113+
84114
return ResponseEntity.ok()
85115
.body(new JwtResponse(jwtResponse.getAccessToken(), null));
86116
}

0 commit comments

Comments
 (0)