fix: add logout protocol

This commit is contained in:
TakahashiNg
2026-04-19 03:59:42 +00:00
parent d94117576b
commit 021a78fac7
4 changed files with 52 additions and 1 deletions
@@ -0,0 +1,26 @@
package com.drinkool.controller;
import com.drinkool.InternalValue;
import com.drinkool.Url;
import jakarta.ws.rs.POST;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.core.NewCookie;
import org.jboss.resteasy.reactive.RestResponse;
public abstract class BaseController {
@POST
@Path(Url.Logout)
public RestResponse<Void> logout() {
NewCookie cookie = new NewCookie.Builder(InternalValue.cookieName)
.secure(true)
.maxAge(0)
.path("/")
.httpOnly(true)
.build();
return RestResponse.ResponseBuilder.<Void>noContent()
.cookie(cookie)
.build();
}
}
@@ -11,7 +11,7 @@ import java.util.*;
import org.eclipse.microprofile.rest.client.inject.RestClient;
@Path("/api/" + Role.Customer)
public class CustomerController {
public class CustomerController extends BaseController {
@Inject
@RestClient
@@ -0,0 +1,24 @@
package com.drinkool.controller;
import static io.restassured.RestAssured.*;
import static org.hamcrest.CoreMatchers.*;
import com.drinkool.*;
import io.quarkus.test.junit.QuarkusTest;
import org.junit.jupiter.api.Test;
@QuarkusTest
public class BaseControllerTest {
@Test
public void testLogoutShouldClearCookie() {
given()
.when()
.post("/api/" + Role.Customer + Url.Logout)
.then()
.statusCode(204)
.header("Set-Cookie", containsString(InternalValue.cookieName))
.header("Set-Cookie", containsString("Max-Age=0"))
.header("Set-Cookie", containsString("HttpOnly"));
}
}
+1
View File
@@ -8,4 +8,5 @@ public class Url {
public static final String QuickLogin = "/quick_login";
public static final String SmsOtp = "/sms_otp";
public static final String Me = "/me";
public static final String Logout = "/logout";
}