diff --git a/backend/src/main/java/com/vaessl/app/connection/ConnectionController.java b/backend/src/main/java/com/vaessl/app/connection/ConnectionController.java index 9222b63..e639db2 100644 --- a/backend/src/main/java/com/vaessl/app/connection/ConnectionController.java +++ b/backend/src/main/java/com/vaessl/app/connection/ConnectionController.java @@ -23,8 +23,6 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class ConnectionController { - private static final String SUFFIX = "_CONNECTION_ID"; - private final ConnectionService connectionService; @PostMapping("/login") @@ -34,7 +32,7 @@ public class ConnectionController { LoginResult result = connectionService.login(request); HttpSession session = httpReq.getSession(true); - session.setAttribute(request.serviceType() + SUFFIX, result.connectionId()); + session.setAttribute(SessionKeys.connectionId(request.serviceType()), result.connectionId()); if (result.expiresAt() != null) { long secs = Instant.now().until(result.expiresAt(), ChronoUnit.SECONDS); @@ -52,9 +50,10 @@ public class ConnectionController { } List statuses = new ArrayList<>(); - Collections.list(session.getAttributeNames()).stream().filter(k -> k.endsWith(SUFFIX)) + Collections.list(session.getAttributeNames()).stream() + .filter(k -> k.endsWith(SessionKeys.CONNECTION_ID_SUFFIX)) .forEach(k -> { - String serviceType = k.replace(SUFFIX, ""); + String serviceType = k.replace(SessionKeys.CONNECTION_ID_SUFFIX, ""); Long id = (Long) session.getAttribute(k); ConnectionStatusResponse status = connectionService.getConnectionStatus(serviceType, id); @@ -71,9 +70,9 @@ public class ConnectionController { HttpSession session = httpReq.getSession(false); if (session != null) { - session.removeAttribute(serviceType + SUFFIX); + session.removeAttribute(SessionKeys.connectionId(serviceType)); boolean hasMore = Collections.list(session.getAttributeNames()).stream() - .anyMatch(k -> k.endsWith(SUFFIX)); + .anyMatch(k -> k.endsWith(SessionKeys.CONNECTION_ID_SUFFIX)); if (!hasMore) { session.invalidate(); } diff --git a/backend/src/main/java/com/vaessl/app/connection/SessionKeys.java b/backend/src/main/java/com/vaessl/app/connection/SessionKeys.java new file mode 100644 index 0000000..2566df2 --- /dev/null +++ b/backend/src/main/java/com/vaessl/app/connection/SessionKeys.java @@ -0,0 +1,12 @@ +package com.vaessl.app.connection; + +public final class SessionKeys { + + static final String CONNECTION_ID_SUFFIX = "_CONNECTION_ID"; + + private SessionKeys() {} + + public static String connectionId(String serviceType) { + return serviceType + CONNECTION_ID_SUFFIX; + } +} diff --git a/backend/src/main/java/com/vaessl/app/search/SearchController.java b/backend/src/main/java/com/vaessl/app/search/SearchController.java index e7d4ef1..fce1905 100644 --- a/backend/src/main/java/com/vaessl/app/search/SearchController.java +++ b/backend/src/main/java/com/vaessl/app/search/SearchController.java @@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +import com.vaessl.app.connection.SessionKeys; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpSession; import jakarta.validation.Valid; @@ -30,7 +31,7 @@ public class SearchController { @PageableDefault(size = 20) Pageable pageable, HttpServletRequest httpReq) { HttpSession session = httpReq.getSession(false); if (session == null - || session.getAttribute(request.serviceType() + "_CONNECTION_ID") == null) { + || session.getAttribute(SessionKeys.connectionId(request.serviceType())) == null) { return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build(); }