Class ForwardedFieldValue

java.lang.Object
All Implemented Interfaces:
Serializable, Cloneable, Iterable<ForwardedElement>, Collection<ForwardedElement>, List<ForwardedElement>, RandomAccess, SequencedCollection<ForwardedElement>

public class ForwardedFieldValue extends ArrayList<ForwardedElement>
This class represents the value of the Forwarded HTTP field as defined in RFC 7239: Forwarded HTTP Extension, Section 4. Forwarded HTTP Header Field.

Definition

 Forwarded   = 1#forwarded-element

 forwarded-element =
     [ forwarded-pair ] *( ";" [ forwarded-pair ] )

 forwarded-pair = token "=" value
 value          = token / quoted-string

 token = <Defined in [RFC7230], Section 3.2.6>
 quoted-string = <Defined in [RFC7230], Section 3.2.6>
 

Sample Code

 ForwardedFieldValue ffv = ForwardedFieldValue.parse(String.join(", ",
         "for=\"_gazonk\"",
         "For=\"[2001:db8:cafe::17]:4711\"",
         "for=192.0.2.60;proto=http;by=203.0.113.43",
         "for=192.0.2.43;host=example.com"
 ));

 assertNotNull(ffv);
 assertEquals(4, ffv.size());

 // 0
 assertEquals("_gazonk", ffv.get(0).getFor());

 // 1
 assertEquals("[2001:db8:cafe::17]:4711", ffv.get(1).getFor());

 // 2
 assertEquals("192.0.2.60",   ffv.get(2).getFor());
 assertEquals("http",         ffv.get(2).getProto());
 assertEquals("203.0.113.43", ffv.get(2).getBy());

 // 3
 assertEquals("192.0.2.43",  ffv.get(3).getFor());
 assertEquals("example.com", ffv.get(3).getHost());
 
See Also: