Top Fields Constructors Methods
org.keycloak.common.util

public Class KeycloakUriBuilder

extends Object
Class Inheritance
Imports
java.net.URI, java.util.ArrayList, .HashMap, .HashSet, .List, .Map, java.util.regex.Matcher, .Pattern

Author
Bill Burke
Version
$Revision: 1 $

Field Summary

Modifier and TypeField and Description
private String
private String
private static final Pattern
private String
private static final Pattern
private static final Pattern
private static final Pattern
private String
private int
private boolean
private String
private String
private String
private String

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private void
public URI
build(Object... values)

public URI
build(Object[] values, boolean encodeSlashInPath)

public String
buildAsString(Object... values)

public URI
public URI
buildFromMap(Map<String, ?> values)

public URI
buildFromMap(Map<String, ?> values, boolean encodeSlashInPath)

protected URI
buildFromValues(boolean encodeSlash, boolean encoded, Object... values)

protected String
buildFromValuesAsString(boolean encodeSlash, boolean encoded, Object... values)

private String
buildString(Map<String, ?> paramMap, boolean fromEncodedMap, boolean isTemplate, boolean encodeSlash)

protected URI
buildUriFromMap(Map<String, ?> paramMap, boolean fromEncodedMap, boolean encodeSlash)

public KeycloakUriBuilder
clone()

Overrides java.lang.Object.clone.

Creates and returns a copy of this object.
public static boolean
public static Matcher
public KeycloakUriBuilder
encodedFragment(String fragment)

Set fragment, but not encode it.

public KeycloakUriBuilder
fragment(String fragment)

public KeycloakUriBuilder
fragment(String fragment, boolean template)

public static KeycloakUriBuilder
public static KeycloakUriBuilder
fromTemplate(String uriTemplate)

You may put path parameters anywhere within the uriTemplate except port

public static KeycloakUriBuilder
fromUri(URI uri)

public static KeycloakUriBuilder
fromUri(String uriTemplate)

public static KeycloakUriBuilder
fromUri(String uri, boolean template)

public String
public String
public String
public List<String>
getPathParamNamesInDeclarationOrder()

Return a unique order list of path params

public int
public String
public String
public String
public KeycloakUriBuilder
host(String host)

public KeycloakUriBuilder
matrixParam(String name, Object... values)

protected KeycloakUriBuilder
parseHierarchicalUri(String uri, Matcher match, boolean template)

public KeycloakUriBuilder
path(String segment)

protected static String
paths(boolean encode, String basePath, String... segments)

public KeycloakUriBuilder
port(int port)

public KeycloakUriBuilder
preserveDefaultPort()

When this is called, then the port will be preserved in the build URL even if it is default port for the protocol (http, https) For example: - KeycloakUriBuilder.fromUri("https://localhost:443/path").buildAsString() will return "https://localhost/path" (port not preserved) - KeycloakUriBuilder.fromUri("https://localhost:443/path").preserveDefaultPort().buildAsString() will return "https://localhost:443/path" (port is preserved even if default port) - KeycloakUriBuilder.fromUri("https://localhost/path").preserveDefaultPort().buildAsString() will return "https://localhost/path" (port not included even if "preserveDefaultPort" as it was not in the original URL)

public KeycloakUriBuilder
queryParam(String name, Object... values)

public static URI
relativize(URI from, URI to)

public KeycloakUriBuilder
protected StringBuffer
replaceParameter(Map<String, ?> paramMap, boolean fromEncodedMap, boolean isTemplate, String string, StringBuffer buffer, boolean encodeSlash)

public KeycloakUriBuilder
public KeycloakUriBuilder
replacePath(String path, boolean template)

protected StringBuffer
replacePathParameter(String name, String value, boolean isEncoded, String string, StringBuffer buffer, boolean encodeSlash)

public KeycloakUriBuilder
public KeycloakUriBuilder
replaceQuery(String query, boolean template)

public KeycloakUriBuilder
replaceQueryParam(String name, Object... values)

protected StringBuffer
replaceQueryStringParameter(Map<String, ?> paramMap, boolean fromEncodedMap, boolean isTemplate, String string, StringBuffer buffer)

public KeycloakUriBuilder
public KeycloakUriBuilder
resolveTemplate(String name, Object value, boolean encodeSlashInPath)

public KeycloakUriBuilder
resolveTemplates(Map<String, Object> templateValues)

public KeycloakUriBuilder
resolveTemplates(Map<String, Object> templateValues, boolean encodeSlashInPath)

public KeycloakUriBuilder
public KeycloakUriBuilder
scheme(String scheme)

public KeycloakUriBuilder
public KeycloakUriBuilder
segment(String... segments)

public KeycloakUriBuilder
substitutePathParam(String name, Object value, boolean isEncoded)

Only replace path params in path of URI.

public String
public KeycloakUriBuilder
uri(String uri)

public KeycloakUriBuilder
uri(String uri, boolean template)

public KeycloakUriBuilder
uri(URI uri)

public KeycloakUriBuilder
uriTemplate(String uriTemplate)

You may put path parameters anywhere within the uriTemplate except port

public KeycloakUriBuilder
Inherited from java.lang.Object:
equalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

authorityback to summary
private String authority
fragmentback to summary
private String fragment
hierarchicalUriback to summary
private static final Pattern hierarchicalUri
hostback to summary
private String host
hostPortPatternback to summary
private static final Pattern hostPortPattern
opaqueUriback to summary
private static final Pattern opaqueUri
PARAM_REPLACEMENTback to summary
private static final Pattern PARAM_REPLACEMENT
pathback to summary
private String path
portback to summary
private int port
preserveDefaultPortback to summary
private boolean preserveDefaultPort
queryback to summary
private String query
schemeback to summary
private String scheme
sspback to summary
private String ssp
userInfoback to summary
private String userInfo

Constructor Detail

KeycloakUriBuilderback to summary
public KeycloakUriBuilder()

Method Detail

addToPathParamListback to summary
private void addToPathParamList(List<String> params, HashSet<String> set, String string)
buildback to summary
public URI build(Object... values) throws IllegalArgumentException
buildback to summary
public URI build(Object[] values, boolean encodeSlashInPath) throws IllegalArgumentException
buildAsStringback to summary
public String buildAsString(Object... values) throws IllegalArgumentException
buildFromEncodedMapback to summary
public URI buildFromEncodedMap(Map<String, ?> values) throws IllegalArgumentException
buildFromMapback to summary
public URI buildFromMap(Map<String, ?> values) throws IllegalArgumentException
buildFromMapback to summary
public URI buildFromMap(Map<String, ?> values, boolean encodeSlashInPath) throws IllegalArgumentException
buildFromValuesback to summary
protected URI buildFromValues(boolean encodeSlash, boolean encoded, Object... values)
buildFromValuesAsStringback to summary
protected String buildFromValuesAsString(boolean encodeSlash, boolean encoded, Object... values)
buildStringback to summary
private String buildString(Map<String, ?> paramMap, boolean fromEncodedMap, boolean isTemplate, boolean encodeSlash)
buildUriFromMapback to summary
protected URI buildUriFromMap(Map<String, ?> paramMap, boolean fromEncodedMap, boolean encodeSlash) throws IllegalArgumentException
cloneback to summary
public KeycloakUriBuilder clone()

Overrides java.lang.Object.clone.

Doc from java.lang.Object.clone.

Creates and returns a copy of this object. The precise meaning of "copy" may depend on the class of the object. The general intent is that, for any object x, the expression:

x.clone() != x
will be true, and that the expression:
x.clone().getClass() == x.getClass()
will be true, but these are not absolute requirements. While it is typically the case that:
x.clone().equals(x)
will be true, this is not an absolute requirement.

By convention, the returned object should be obtained by calling super.clone. If a class and all of its superclasses (except Object) obey this convention, it will be the case that x.clone().getClass() == x.getClass().

By convention, the object returned by this method should be independent of this object (which is being cloned). To achieve this independence, it may be necessary to modify one or more fields of the object returned by super.clone before returning it. Typically, this means copying any mutable objects that comprise the internal "deep structure" of the object being cloned and replacing the references to these objects with references to the copies. If a class contains only primitive fields or references to immutable objects, then it is usually the case that no fields in the object returned by super.clone need to be modified.

Returns:KeycloakUriBuilder

a clone of this instance.

compareback to summary
public static boolean compare(String s1, String s2)
createUriParamMatcherback to summary
public static Matcher createUriParamMatcher(String string)
encodedFragmentback to summary
public KeycloakUriBuilder encodedFragment(String fragment)

Set fragment, but not encode it. It assumes that given fragment was already properly encoded

fragmentback to summary
public KeycloakUriBuilder fragment(String fragment) throws IllegalArgumentException
fragmentback to summary
public KeycloakUriBuilder fragment(String fragment, boolean template) throws IllegalArgumentException
fromPathback to summary
public static KeycloakUriBuilder fromPath(String path) throws IllegalArgumentException
fromTemplateback to summary
public static KeycloakUriBuilder fromTemplate(String uriTemplate)

You may put path parameters anywhere within the uriTemplate except port

fromUriback to summary
public static KeycloakUriBuilder fromUri(URI uri)
fromUriback to summary
public static KeycloakUriBuilder fromUri(String uriTemplate)
fromUriback to summary
public static KeycloakUriBuilder fromUri(String uri, boolean template)
getFragmentback to summary
public String getFragment()
getHostback to summary
public String getHost()
getPathback to summary
public String getPath()
getPathParamNamesInDeclarationOrderback to summary
public List<String> getPathParamNamesInDeclarationOrder()

Return a unique order list of path params

getPortback to summary
public int getPort()
getQueryback to summary
public String getQuery()
getSchemeback to summary
public String getScheme()
getUserInfoback to summary
public String getUserInfo()
hostback to summary
public KeycloakUriBuilder host(String host) throws IllegalArgumentException
matrixParamback to summary
public KeycloakUriBuilder matrixParam(String name, Object... values) throws IllegalArgumentException
parseHierarchicalUriback to summary
protected KeycloakUriBuilder parseHierarchicalUri(String uri, Matcher match, boolean template)
pathback to summary
public KeycloakUriBuilder path(String segment) throws IllegalArgumentException
pathsback to summary
protected static String paths(boolean encode, String basePath, String... segments)
portback to summary
public KeycloakUriBuilder port(int port) throws IllegalArgumentException
preserveDefaultPortback to summary
public KeycloakUriBuilder preserveDefaultPort()

When this is called, then the port will be preserved in the build URL even if it is default port for the protocol (http, https) For example: - KeycloakUriBuilder.fromUri("https://localhost:443/path").buildAsString() will return "https://localhost/path" (port not preserved) - KeycloakUriBuilder.fromUri("https://localhost:443/path").preserveDefaultPort().buildAsString() will return "https://localhost:443/path" (port is preserved even if default port) - KeycloakUriBuilder.fromUri("https://localhost/path").preserveDefaultPort().buildAsString() will return "https://localhost/path" (port not included even if "preserveDefaultPort" as it was not in the original URL)

queryParamback to summary
public KeycloakUriBuilder queryParam(String name, Object... values) throws IllegalArgumentException
relativizeback to summary
public static URI relativize(URI from, URI to)
replaceMatrixback to summary
public KeycloakUriBuilder replaceMatrix(String matrix) throws IllegalArgumentException
replaceParameterback to summary
protected StringBuffer replaceParameter(Map<String, ?> paramMap, boolean fromEncodedMap, boolean isTemplate, String string, StringBuffer buffer, boolean encodeSlash)
replacePathback to summary
public KeycloakUriBuilder replacePath(String path)
replacePathback to summary
public KeycloakUriBuilder replacePath(String path, boolean template)
replacePathParameterback to summary
protected StringBuffer replacePathParameter(String name, String value, boolean isEncoded, String string, StringBuffer buffer, boolean encodeSlash)
replaceQueryback to summary
public KeycloakUriBuilder replaceQuery(String query) throws IllegalArgumentException
replaceQueryback to summary
public KeycloakUriBuilder replaceQuery(String query, boolean template) throws IllegalArgumentException
replaceQueryParamback to summary
public KeycloakUriBuilder replaceQueryParam(String name, Object... values) throws IllegalArgumentException
replaceQueryStringParameterback to summary
protected StringBuffer replaceQueryStringParameter(Map<String, ?> paramMap, boolean fromEncodedMap, boolean isTemplate, String string, StringBuffer buffer)
resolveTemplateback to summary
public KeycloakUriBuilder resolveTemplate(String name, Object value) throws IllegalArgumentException
resolveTemplateback to summary
public KeycloakUriBuilder resolveTemplate(String name, Object value, boolean encodeSlashInPath) throws IllegalArgumentException
resolveTemplatesback to summary
public KeycloakUriBuilder resolveTemplates(Map<String, Object> templateValues) throws IllegalArgumentException
resolveTemplatesback to summary
public KeycloakUriBuilder resolveTemplates(Map<String, Object> templateValues, boolean encodeSlashInPath) throws IllegalArgumentException
resolveTemplatesFromEncodedback to summary
public KeycloakUriBuilder resolveTemplatesFromEncoded(Map<String, Object> templateValues) throws IllegalArgumentException
schemeback to summary
public KeycloakUriBuilder scheme(String scheme) throws IllegalArgumentException
schemeSpecificPartback to summary
public KeycloakUriBuilder schemeSpecificPart(String ssp) throws IllegalArgumentException
segmentback to summary
public KeycloakUriBuilder segment(String... segments) throws IllegalArgumentException
substitutePathParamback to summary
public KeycloakUriBuilder substitutePathParam(String name, Object value, boolean isEncoded)

Only replace path params in path of URI. This changes state of URIBuilder.

toTemplateback to summary
public String toTemplate()
uriback to summary
public KeycloakUriBuilder uri(String uri) throws IllegalArgumentException
uriback to summary
public KeycloakUriBuilder uri(String uri, boolean template) throws IllegalArgumentException
uriback to summary
public KeycloakUriBuilder uri(URI uri) throws IllegalArgumentException
uriTemplateback to summary
public KeycloakUriBuilder uriTemplate(String uriTemplate)

You may put path parameters anywhere within the uriTemplate except port

userInfoback to summary
public KeycloakUriBuilder userInfo(String ui)