Skip to content

Commit

Permalink
[RESTEASY-3081] using Cookie.Builder and NewCookie.Builder
Browse files Browse the repository at this point in the history
  • Loading branch information
rsearls committed Feb 16, 2022
1 parent 361560e commit 14403cd
Show file tree
Hide file tree
Showing 19 changed files with 267 additions and 62 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,12 @@ public Invocation.Builder cookie(Cookie cookie)
{
if (!(Cookie.class.equals(cookie.getClass())))
{
cookie = new Cookie(cookie.getName(), cookie.getValue(), cookie.getPath(), cookie.getDomain(), cookie.getVersion());
cookie = new Cookie.Builder(cookie.getName())
.value(cookie.getValue())
.path(cookie.getPath())
.domain(cookie.getDomain())
.version(cookie.getVersion())
.build();
}
getHeaders().cookie(cookie);
return this;
Expand All @@ -115,7 +120,10 @@ public Invocation.Builder cookie(Cookie cookie)
@Override
public Invocation.Builder cookie(String name, String value)
{
getHeaders().cookie(new Cookie(name, value));
Cookie ck1 = new Cookie.Builder(name)
.value(value)
.build();
getHeaders().cookie(ck1);
return this;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.jboss.resteasy.client.jaxrs.internal;

import org.jboss.resteasy.util.CaseInsensitiveMap;
import org.jboss.resteasy.util.CookieUtil;
import org.jboss.resteasy.util.DateUtil;
import org.jboss.resteasy.util.HeaderHelper;
import org.jboss.resteasy.util.MediaTypeHelper;
Expand Down Expand Up @@ -139,7 +140,12 @@ public void cookie(Cookie cookie)
{
if (!(Cookie.class.equals(cookie.getClass())))
{
cookie = new Cookie(cookie.getName(), cookie.getValue(), cookie.getPath(), cookie.getDomain(), cookie.getVersion());
cookie = new Cookie.Builder(cookie.getName())
.value(cookie.getValue())
.path(cookie.getPath())
.domain(cookie.getDomain())
.version(cookie.getVersion())
.build();
}
headers.add(HttpHeaders.COOKIE, cookie);
}
Expand Down Expand Up @@ -303,7 +309,7 @@ public Map<String, Cookie> getCookies()
else
{
String str = configuration.toHeaderString(obj);
Cookie cookie = Cookie.valueOf(str);
Cookie cookie = CookieUtil.valueOf(Cookie.class, str);
cookies.put(cookie.getName(), cookie);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,10 @@ public void process(ClientInvocation invocation, Object object)
{
ClientConfiguration cc = invocation.getClientConfiguration();
String s = (annotations != null && type != null) ? cc.toString(object, type, annotations) : cc.toString(object);
invocation.getHeaders().cookie(new Cookie(cookieName, s));
Cookie ck1 = new Cookie.Builder(cookieName)
.value(s)
.build();
invocation.getHeaders().cookie(ck1);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,9 @@ public MockHttpRequest language(String language)

public MockHttpRequest cookie(String name, String value)
{
Cookie cookie = new Cookie(name, value);
Cookie cookie = new Cookie.Builder(name)
.value(value)
.build();
httpHeaders.getMutableCookies().put(name, cookie);
return this;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,17 @@ else if (name.equalsIgnoreCase("Expires")) {
cookieValue = "";
}

return new NewCookie(cookieName, cookieValue, path, domain, version, comment, maxAge, expiry, secure, httpOnly);

return new NewCookie.Builder(cookieName)
.value(cookieValue)
.path(path)
.domain(domain)
.version(version)
.comment(comment)
.maxAge(maxAge)
.expiry(expiry)
.secure(secure)
.httpOnly(httpOnly)
.build();
}

protected void quote(StringBuilder b, String value) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,13 @@ static Map<String, Cookie> extractCookies(HttpServletRequest request)
{
for (jakarta.servlet.http.Cookie cookie : request.getCookies())
{
cookies.put(cookie.getName(), new Cookie(cookie.getName(), cookie.getValue(), cookie.getPath(),
cookie.getDomain(), cookie.getVersion()));
Cookie ck1 = new Cookie.Builder(cookie.getName())
.value(cookie.getValue())
.path(cookie.getPath())
.domain(cookie.getDomain())
.version(cookie.getVersion())
.build();
cookies.put(cookie.getName(), ck1);

}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import org.jboss.resteasy.spi.HttpResponseCodes;
import org.jboss.resteasy.spi.ResteasyProviderFactory;
import org.jboss.resteasy.util.CaseInsensitiveMap;
import org.jboss.resteasy.util.CookieUtil;
import org.jboss.resteasy.util.DateUtil;

import jakarta.ws.rs.core.EntityTag;
Expand Down Expand Up @@ -358,7 +359,7 @@ public Map<String, NewCookie> getCookies()
else
{
String str = toHeaderString(obj);
NewCookie cookie = NewCookie.valueOf(str);
NewCookie cookie = CookieUtil.valueOf(NewCookie.class, str);
cookies.put(cookie.getName(), cookie);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,13 @@ public static List<Cookie> parseCookies(String cookieHeader) {
if (!name.startsWith("$"))
{
if (cookieName != null) {
cookies.add(new Cookie(cookieName, cookieValue, path, domain, version));
Cookie ck1 = new Cookie.Builder(cookieName)
.value(cookieValue)
.path(path)
.domain(domain)
.version(version)
.build();
cookies.add(ck1);
cookieName = cookieValue = path = domain = null;
}

Expand All @@ -52,7 +58,13 @@ else if (name.equalsIgnoreCase("$Domain"))
}
}
if (cookieName != null) {
cookies.add(new Cookie(cookieName, cookieValue, path, domain, version));
Cookie ck1 = new Cookie.Builder(cookieName)
.value(cookieValue)
.path(path)
.domain(domain)
.version(version)
.build();
cookies.add(ck1);

}
return cookies;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package org.jboss.resteasy.util;

import jakarta.ws.rs.ext.RuntimeDelegate;

public class CookieUtil {
/*******
public static NewCookie valueOf(final Class<NewCookie> clazz, final String value) {
return RuntimeDelegate.getInstance()
.createHeaderDelegate(clazz)
.fromString(value);
}
public static Cookie valueOf(final Class<Cookie> clazz, final String value) {
return RuntimeDelegate.getInstance()
.createHeaderDelegate(clazz)
.fromString(value);
}
*********/

/**
* Utility to replace deprectated method Cookie.valueOf
*
* @param clazz must be of type NewCookie or Cookie
* @param value
* @param <S>
* @return
*/
public static <S> S valueOf(final Class<S> clazz, final String value) {
return RuntimeDelegate.getInstance()
.createHeaderDelegate(clazz)
.fromString(value);
}

/**
*
* @param clazz
* @param value
* @param <S>
* @return
*/
public static <S> String toString(final Class<S> clazz, final S value) {
return RuntimeDelegate.getInstance()
.createHeaderDelegate(clazz)
.toString(value);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,10 @@ public static class ClienCookieResource
@Path("createCookie")
public Response createCookie()
{
return Response.ok().cookie(new NewCookie("Cookie", "CookieValue")).build();
NewCookie cookie = new NewCookie.Builder("Cookie")
.value("CookieValue")
.build();
return Response.ok().cookie(cookie).build();
}

@GET
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import jakarta.ws.rs.core.Cookie;
import jakarta.ws.rs.core.HttpHeaders;
import jakarta.ws.rs.ext.Provider;
import org.jboss.resteasy.util.CookieUtil;

@Provider
@PreMatching
Expand All @@ -21,7 +22,11 @@ public void filter(ContainerRequestContext requestContext) throws IOException {

final Cookie cookie = requestContext.getCookies().get(OLD_COOKIE_NAME);
if (cookie != null) {
requestContext.getHeaders().add(HttpHeaders.COOKIE, new Cookie(NEW_COOKIE_NAME, cookie.getValue()).toString());
Cookie ck1 = new Cookie.Builder(NEW_COOKIE_NAME)
.value(cookie.getValue())
.build();
requestContext.getHeaders().add(HttpHeaders.COOKIE,
CookieUtil.toString(Cookie.class, ck1));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ public class FilteredCookieResource {
@GET
@Path("get")
public Response getCookie() {
NewCookie cookie = new NewCookie(OLD_COOKIE_NAME, "value");
NewCookie cookie = new NewCookie.Builder(OLD_COOKIE_NAME)
.value("value")
.build();
return Response.ok().cookie(cookie).build();
}

Expand All @@ -28,8 +30,14 @@ public Response returnCookie() {
Cookie oldCookie = headers.getCookies().get(OLD_COOKIE_NAME);
Cookie newCookie = headers.getCookies().get(NEW_COOKIE_NAME);
ResponseBuilder builder = Response.ok();
builder.cookie(new NewCookie(oldCookie.getName(), oldCookie.getValue()));
builder.cookie(new NewCookie(newCookie.getName(), newCookie.getValue()));
NewCookie nck1 = new NewCookie.Builder(oldCookie.getName())
.value(oldCookie.getValue())
.build();
NewCookie nck2 = new NewCookie.Builder(newCookie.getName())
.value(newCookie.getValue())
.build();
builder.cookie(nck1);
builder.cookie(nck2);
return builder.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,25 @@ public class HeadersInViewResponseResource {
@Path("get")
public Response get()
{
NewCookie cookie = new NewCookie.Builder("name1")
.value("value1")
.build();
return Response.ok(new View("/test/view"))
.header("abc", "123")
.cookie(new NewCookie("name1", "value1"))
.cookie(cookie)
.build();
}

@GET
@Path("view")
public Response view()
{
NewCookie cookie = new NewCookie.Builder("name2")
.value("value2")
.build();
return Response.ok()
.header("xyz", "789")
.cookie(new NewCookie("name2", "value2"))
.cookie(cookie)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,9 @@ public void testProxy() {
}
{
CookieProxy proxy = ProxyBuilder.builder(CookieProxy.class, client.target(generateURL("/"))).build();
Cookie cookie = new Cookie("meaning", "42");
Cookie cookie = new Cookie.Builder("meaning")
.value("42")
.build();
proxy.param(cookie);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.util.Calendar;
import java.util.Date;

import org.jboss.resteasy.util.CookieUtil;
import org.junit.Assert;

import jakarta.ws.rs.CookieParam;
Expand All @@ -22,33 +23,69 @@ public class CookieInjectionResource {
@Path("/set")
@GET
public Response set() {
return Response.ok("content").cookie(new NewCookie("meaning", "42")).build();
NewCookie cookie = new NewCookie.Builder("meaning")
.value("42")
.build();
return Response.ok("content").cookie(cookie).build();
}

@Path("/expire")
@GET
public Response expire() {
NewCookie cookie = new NewCookie("Name", "Value", "/", "*", 0, "comment", 3600, new Date(),
true, true);
return Response.ok().cookie(cookie).entity(cookie.toString()).build();
NewCookie cookie = new NewCookie.Builder("Name")
.value("Value")
.path("/")
.domain("*")
.version(0)
.comment("comment")
.maxAge(3600)
.expiry(new Date())
.secure(true)
.httpOnly(true)
.build();
return Response.ok().cookie(cookie)
.entity(CookieUtil.toString(NewCookie.class, cookie))
.build();
}

@Path("/expire1")
@GET
public Response expire1() {
NewCookie cookie = new NewCookie("Name", "Value", "/", "*", 1, "comment", 3600, new Date(),
true, true);
return Response.ok().cookie(cookie).entity(cookie.toString()).build();
NewCookie cookie = new NewCookie.Builder("Name")
.value("Value")
.path("/")
.domain("*")
.version(1)
.comment("comment")
.maxAge(3600)
.expiry(new Date())
.secure(true)
.httpOnly(true)
.build();
return Response.ok().cookie(cookie)
.entity(CookieUtil.toString(NewCookie.class, cookie))
.build();
}

@Path("/expired")
@GET
public Response expired() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
NewCookie cookie = new NewCookie("Name", "Value", "/", "*", 1, "comment", 1800, cal.getTime(),
true, true);
return Response.ok().cookie(cookie).entity(cookie.toString()).build();
NewCookie cookie = new NewCookie.Builder("Name")
.value("Value")
.path("/")
.domain("*")
.version(1)
.comment("comment")
.maxAge(1800)
.expiry(cal.getTime())
.secure(true)
.httpOnly(true)
.build();
return Response.ok().cookie(cookie)
.entity(CookieUtil.toString(NewCookie.class, cookie))
.build();
}

@Context
Expand Down

0 comments on commit 14403cd

Please sign in to comment.