Package org.keycloak.common.util
Class KeycloakUriBuilder
- java.lang.Object
-
- org.keycloak.common.util.KeycloakUriBuilder
-
public class KeycloakUriBuilder extends Object
- Version:
- $Revision: 1 $
- Author:
- Bill Burke
-
-
Constructor Summary
Constructors Constructor Description KeycloakUriBuilder()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description URIbuild(Object... values)URIbuild(Object[] values, boolean encodeSlashInPath)StringbuildAsString(Object... values)URIbuildFromEncodedMap(Map<String,?> values)URIbuildFromMap(Map<String,?> values)URIbuildFromMap(Map<String,?> values, boolean encodeSlashInPath)protected URIbuildFromValues(boolean encodeSlash, boolean encoded, Object... values)protected StringbuildFromValuesAsString(boolean encodeSlash, boolean encoded, Object... values)protected URIbuildUriFromMap(Map<String,?> paramMap, boolean fromEncodedMap, boolean encodeSlash)KeycloakUriBuilderclone()static booleancompare(String s1, String s2)static MatchercreateUriParamMatcher(String string)KeycloakUriBuilderencodedFragment(String fragment)Set fragment, but not encode it.KeycloakUriBuilderfragment(String fragment)static KeycloakUriBuilderfromPath(String path)static KeycloakUriBuilderfromTemplate(String uriTemplate)You may put path parameters anywhere within the uriTemplate except portstatic KeycloakUriBuilderfromUri(String uriTemplate)static KeycloakUriBuilderfromUri(URI uri)StringgetFragment()StringgetHost()StringgetPath()List<String>getPathParamNamesInDeclarationOrder()Return a unique order list of path paramsintgetPort()StringgetQuery()StringgetScheme()StringgetUserInfo()KeycloakUriBuilderhost(String host)KeycloakUriBuildermatrixParam(String name, Object... values)protected KeycloakUriBuilderparseHierarchicalUri(String uriTemplate, Matcher match)KeycloakUriBuilderpath(String segment)protected static Stringpaths(boolean encode, String basePath, String... segments)KeycloakUriBuilderport(int port)KeycloakUriBuilderpreserveDefaultPort()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)KeycloakUriBuilderqueryParam(String name, Object... values)static URIrelativize(URI from, URI to)KeycloakUriBuilderreplaceMatrix(String matrix)protected StringBufferreplaceParameter(Map<String,?> paramMap, boolean fromEncodedMap, boolean isTemplate, String string, StringBuffer buffer, boolean encodeSlash)KeycloakUriBuilderreplacePath(String path)protected StringBufferreplacePathParameter(String name, String value, boolean isEncoded, String string, StringBuffer buffer, boolean encodeSlash)KeycloakUriBuilderreplaceQuery(String query)KeycloakUriBuilderreplaceQueryParam(String name, Object... values)protected StringBufferreplaceQueryStringParameter(Map<String,?> paramMap, boolean fromEncodedMap, boolean isTemplate, String string, StringBuffer buffer)KeycloakUriBuilderresolveTemplate(String name, Object value)KeycloakUriBuilderresolveTemplate(String name, Object value, boolean encodeSlashInPath)KeycloakUriBuilderresolveTemplates(Map<String,Object> templateValues)KeycloakUriBuilderresolveTemplates(Map<String,Object> templateValues, boolean encodeSlashInPath)KeycloakUriBuilderresolveTemplatesFromEncoded(Map<String,Object> templateValues)KeycloakUriBuilderscheme(String scheme)KeycloakUriBuilderschemeSpecificPart(String ssp)KeycloakUriBuildersegment(String... segments)KeycloakUriBuildersubstitutePathParam(String name, Object value, boolean isEncoded)Only replace path params in path of URI.StringtoTemplate()KeycloakUriBuilderuri(String uriTemplate)KeycloakUriBuilderuri(URI uri)KeycloakUriBuilderuriTemplate(String uriTemplate)You may put path parameters anywhere within the uriTemplate except portKeycloakUriBuilderuserInfo(String ui)
-
-
-
Method Detail
-
fromUri
public static KeycloakUriBuilder fromUri(URI uri)
-
fromUri
public static KeycloakUriBuilder fromUri(String uriTemplate)
-
fromPath
public static KeycloakUriBuilder fromPath(String path) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
clone
public KeycloakUriBuilder clone()
-
fromTemplate
public static KeycloakUriBuilder fromTemplate(String uriTemplate)
You may put path parameters anywhere within the uriTemplate except port- Parameters:
uriTemplate-- Returns:
-
uriTemplate
public KeycloakUriBuilder uriTemplate(String uriTemplate)
You may put path parameters anywhere within the uriTemplate except port- Parameters:
uriTemplate-- Returns:
-
parseHierarchicalUri
protected KeycloakUriBuilder parseHierarchicalUri(String uriTemplate, Matcher match)
-
uri
public KeycloakUriBuilder uri(String uriTemplate) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
uri
public KeycloakUriBuilder uri(URI uri) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
scheme
public KeycloakUriBuilder scheme(String scheme) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
schemeSpecificPart
public KeycloakUriBuilder schemeSpecificPart(String ssp) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
userInfo
public KeycloakUriBuilder userInfo(String ui)
-
host
public KeycloakUriBuilder host(String host) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
port
public KeycloakUriBuilder port(int port) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
preserveDefaultPort
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)
-
path
public KeycloakUriBuilder path(String segment) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
replaceMatrix
public KeycloakUriBuilder replaceMatrix(String matrix) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
replaceQuery
public KeycloakUriBuilder replaceQuery(String query) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
fragment
public KeycloakUriBuilder fragment(String fragment) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
encodedFragment
public KeycloakUriBuilder encodedFragment(String fragment)
Set fragment, but not encode it. It assumes that given fragment was already properly encoded- Parameters:
fragment-- Returns:
-
substitutePathParam
public KeycloakUriBuilder substitutePathParam(String name, Object value, boolean isEncoded)
Only replace path params in path of URI. This changes state of URIBuilder.- Parameters:
name-value-isEncoded-- Returns:
-
buildFromMap
public URI buildFromMap(Map<String,?> values) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
buildFromEncodedMap
public URI buildFromEncodedMap(Map<String,?> values) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
buildFromMap
public URI buildFromMap(Map<String,?> values, boolean encodeSlashInPath) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
buildUriFromMap
protected URI buildUriFromMap(Map<String,?> paramMap, boolean fromEncodedMap, boolean encodeSlash) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
replacePathParameter
protected StringBuffer replacePathParameter(String name, String value, boolean isEncoded, String string, StringBuffer buffer, boolean encodeSlash)
-
replaceParameter
protected StringBuffer replaceParameter(Map<String,?> paramMap, boolean fromEncodedMap, boolean isTemplate, String string, StringBuffer buffer, boolean encodeSlash)
-
replaceQueryStringParameter
protected StringBuffer replaceQueryStringParameter(Map<String,?> paramMap, boolean fromEncodedMap, boolean isTemplate, String string, StringBuffer buffer)
-
getPathParamNamesInDeclarationOrder
public List<String> getPathParamNamesInDeclarationOrder()
Return a unique order list of path params- Returns:
-
build
public URI build(Object... values) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
buildAsString
public String buildAsString(Object... values) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
buildFromValues
protected URI buildFromValues(boolean encodeSlash, boolean encoded, Object... values)
-
buildFromValuesAsString
protected String buildFromValuesAsString(boolean encodeSlash, boolean encoded, Object... values)
-
matrixParam
public KeycloakUriBuilder matrixParam(String name, Object... values) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
queryParam
public KeycloakUriBuilder queryParam(String name, Object... values) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
replaceQueryParam
public KeycloakUriBuilder replaceQueryParam(String name, Object... values) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
getHost
public String getHost()
-
getScheme
public String getScheme()
-
getPort
public int getPort()
-
getUserInfo
public String getUserInfo()
-
getPath
public String getPath()
-
getQuery
public String getQuery()
-
getFragment
public String getFragment()
-
segment
public KeycloakUriBuilder segment(String... segments) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
replacePath
public KeycloakUriBuilder replacePath(String path)
-
build
public URI build(Object[] values, boolean encodeSlashInPath) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
toTemplate
public String toTemplate()
-
resolveTemplate
public KeycloakUriBuilder resolveTemplate(String name, Object value) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
resolveTemplates
public KeycloakUriBuilder resolveTemplates(Map<String,Object> templateValues) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
resolveTemplate
public KeycloakUriBuilder resolveTemplate(String name, Object value, boolean encodeSlashInPath) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
resolveTemplates
public KeycloakUriBuilder resolveTemplates(Map<String,Object> templateValues, boolean encodeSlashInPath) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
resolveTemplatesFromEncoded
public KeycloakUriBuilder resolveTemplatesFromEncoded(Map<String,Object> templateValues) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
-