fix: add logout protocol
This commit is contained in:
@@ -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"));
|
||||
}
|
||||
}
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user