keycloak
公開メンバ関数 | 静的公開メンバ関数 | 限定公開メンバ関数 | 静的限定公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.common.util.KeycloakUriBuilder クラス
org.keycloak.common.util.KeycloakUriBuilder 連携図
Collaboration graph

公開メンバ関数

KeycloakUriBuilder clone ()
 
KeycloakUriBuilder uriTemplate (String uriTemplate)
 
KeycloakUriBuilder uri (String uriTemplate) throws IllegalArgumentException
 
KeycloakUriBuilder uri (URI uri) throws IllegalArgumentException
 
KeycloakUriBuilder scheme (String scheme) throws IllegalArgumentException
 
KeycloakUriBuilder schemeSpecificPart (String ssp) throws IllegalArgumentException
 
KeycloakUriBuilder userInfo (String ui)
 
KeycloakUriBuilder host (String host) throws IllegalArgumentException
 
KeycloakUriBuilder port (int port) throws IllegalArgumentException
 
KeycloakUriBuilder path (String segment) throws IllegalArgumentException
 
KeycloakUriBuilder replaceMatrix (String matrix) throws IllegalArgumentException
 
KeycloakUriBuilder replaceQuery (String query) throws IllegalArgumentException
 
KeycloakUriBuilder fragment (String fragment) throws IllegalArgumentException
 
KeycloakUriBuilder encodedFragment (String fragment)
 
KeycloakUriBuilder substitutePathParam (String name, Object value, boolean isEncoded)
 
URI buildFromMap (Map< String, ?> values) throws IllegalArgumentException
 
URI buildFromEncodedMap (Map< String, ?> values) throws IllegalArgumentException
 
URI buildFromMap (Map< String, ?> values, boolean encodeSlashInPath) throws IllegalArgumentException
 
List< String > getPathParamNamesInDeclarationOrder ()
 
URI build (Object... values) throws IllegalArgumentException
 
KeycloakUriBuilder matrixParam (String name, Object... values) throws IllegalArgumentException
 
KeycloakUriBuilder queryParam (String name, Object... values) throws IllegalArgumentException
 
KeycloakUriBuilder replaceQueryParam (String name, Object... values) throws IllegalArgumentException
 
String getHost ()
 
String getScheme ()
 
int getPort ()
 
String getUserInfo ()
 
String getPath ()
 
String getQuery ()
 
String getFragment ()
 
KeycloakUriBuilder segment (String... segments) throws IllegalArgumentException
 
KeycloakUriBuilder replacePath (String path)
 
URI build (Object[] values, boolean encodeSlashInPath) throws IllegalArgumentException
 
String toTemplate ()
 
KeycloakUriBuilder resolveTemplate (String name, Object value) throws IllegalArgumentException
 
KeycloakUriBuilder resolveTemplates (Map< String, Object > templateValues) throws IllegalArgumentException
 
KeycloakUriBuilder resolveTemplate (String name, Object value, boolean encodeSlashInPath) throws IllegalArgumentException
 
KeycloakUriBuilder resolveTemplates (Map< String, Object > templateValues, boolean encodeSlashInPath) throws IllegalArgumentException
 
KeycloakUriBuilder resolveTemplatesFromEncoded (Map< String, Object > templateValues) throws IllegalArgumentException
 

静的公開メンバ関数

static KeycloakUriBuilder fromUri (URI uri)
 
static KeycloakUriBuilder fromUri (String uriTemplate)
 
static KeycloakUriBuilder fromPath (String path) throws IllegalArgumentException
 
static boolean compare (String s1, String s2)
 
static URI relativize (URI from, URI to)
 
static KeycloakUriBuilder fromTemplate (String uriTemplate)
 
static Matcher createUriParamMatcher (String string)
 

限定公開メンバ関数

KeycloakUriBuilder parseHierarchicalUri (String uriTemplate, Matcher match)
 
URI buildUriFromMap (Map< String, ?> paramMap, boolean fromEncodedMap, boolean encodeSlash) throws IllegalArgumentException
 
StringBuffer replacePathParameter (String name, String value, boolean isEncoded, String string, StringBuffer buffer, boolean encodeSlash)
 
StringBuffer replaceParameter (Map< String, ?> paramMap, boolean fromEncodedMap, boolean isTemplate, String string, StringBuffer buffer, boolean encodeSlash)
 
StringBuffer replaceQueryStringParameter (Map< String, ?> paramMap, boolean fromEncodedMap, boolean isTemplate, String string, StringBuffer buffer)
 
URI buildFromValues (boolean encodeSlash, boolean encoded, Object... values)
 

静的限定公開メンバ関数

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

非公開メンバ関数

String buildString (Map< String, ?> paramMap, boolean fromEncodedMap, boolean isTemplate, boolean encodeSlash)
 
void addToPathParamList (List< String > params, HashSet< String > set, String string)
 

非公開変数類

String host
 
String scheme
 
int port = -1
 
String userInfo
 
String path
 
String query
 
String fragment
 
String ssp
 
String authority
 

静的非公開変数類

static final Pattern opaqueUri = Pattern.compile("^([^:/?#]+):([^/].*)")
 
static final Pattern hierarchicalUri = Pattern.compile("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?")
 
static final Pattern hostPortPattern = Pattern.compile("([^/:]+):(\\d+)")
 
static final Pattern PARAM_REPLACEMENT = Pattern.compile("_resteasy_uri_parameter")
 

詳解

著者
Bill Burke
バージョン
Revision
1

関数詳解

◆ addToPathParamList()

void org.keycloak.common.util.KeycloakUriBuilder.addToPathParamList ( List< String >  params,
HashSet< String >  set,
String  string 
)
inlineprivate
557  {
558  Matcher matcher = PathHelper.URI_PARAM_PATTERN.matcher(PathHelper.replaceEnclosedCurlyBraces(string));
559  while (matcher.find()) {
560  String param = matcher.group(1);
561  if (set.contains(param)) continue;
562  else {
563  set.add(param);
564  params.add(param);
565  }
566  }
567  }

◆ build() [1/2]

URI org.keycloak.common.util.KeycloakUriBuilder.build ( Object...  values) throws IllegalArgumentException
inline
569  {
570  if (values == null) throw new IllegalArgumentException("values parameter is null");
571  return buildFromValues(true, false, values);
572  }
URI buildFromValues(boolean encodeSlash, boolean encoded, Object... values)
Definition: KeycloakUriBuilder.java:574

◆ build() [2/2]

URI org.keycloak.common.util.KeycloakUriBuilder.build ( Object []  values,
boolean  encodeSlashInPath 
) throws IllegalArgumentException
inline
700  {
701  if (values == null) throw new IllegalArgumentException("values param is null");
702  return buildFromValues(encodeSlashInPath, false, values);
703  }
URI buildFromValues(boolean encodeSlash, boolean encoded, Object... values)
Definition: KeycloakUriBuilder.java:574

◆ buildFromEncodedMap()

URI org.keycloak.common.util.KeycloakUriBuilder.buildFromEncodedMap ( Map< String, ?>  values) throws IllegalArgumentException
inline
394  {
395  if (values == null) throw new IllegalArgumentException("values parameter is null");
396  return buildUriFromMap(values, true, false);
397  }
URI buildUriFromMap(Map< String, ?> paramMap, boolean fromEncodedMap, boolean encodeSlash)
Definition: KeycloakUriBuilder.java:404

◆ buildFromMap() [1/2]

URI org.keycloak.common.util.KeycloakUriBuilder.buildFromMap ( Map< String, ?>  values) throws IllegalArgumentException
inline
389  {
390  if (values == null) throw new IllegalArgumentException("values parameter is null");
391  return buildUriFromMap(values, false, true);
392  }
URI buildUriFromMap(Map< String, ?> paramMap, boolean fromEncodedMap, boolean encodeSlash)
Definition: KeycloakUriBuilder.java:404

◆ buildFromMap() [2/2]

URI org.keycloak.common.util.KeycloakUriBuilder.buildFromMap ( Map< String, ?>  values,
boolean  encodeSlashInPath 
) throws IllegalArgumentException
inline
399  {
400  if (values == null) throw new IllegalArgumentException("values parameter is null");
401  return buildUriFromMap(values, false, encodeSlashInPath);
402  }
URI buildUriFromMap(Map< String, ?> paramMap, boolean fromEncodedMap, boolean encodeSlash)
Definition: KeycloakUriBuilder.java:404

◆ buildFromValues()

URI org.keycloak.common.util.KeycloakUriBuilder.buildFromValues ( boolean  encodeSlash,
boolean  encoded,
Object...  values 
)
inlineprotected
574  {
575  List<String> params = getPathParamNamesInDeclarationOrder();
576  if (values.length < params.size())
577  throw new IllegalArgumentException("You did not supply enough values to fill path parameters");
578 
579  Map<String, Object> pathParams = new HashMap<String, Object>();
580 
581 
582  for (int i = 0; i < params.size(); i++) {
583  String pathParam = params.get(i);
584  Object val = values[i];
585  if (val == null) throw new IllegalArgumentException("A value was null");
586  pathParams.put(pathParam, val.toString());
587  }
588  String buf = null;
589  try {
590  buf = buildString(pathParams, encoded, false, encodeSlash);
591  return new URI(buf);
592  //return URI.create(buf);
593  } catch (Exception e) {
594  throw new RuntimeException("Failed to create URI: " + buf, e);
595  }
596  }
String buildString(Map< String, ?> paramMap, boolean fromEncodedMap, boolean isTemplate, boolean encodeSlash)
Definition: KeycloakUriBuilder.java:413
List< String > getPathParamNamesInDeclarationOrder()
Definition: KeycloakUriBuilder.java:544

◆ buildString()

String org.keycloak.common.util.KeycloakUriBuilder.buildString ( Map< String, ?>  paramMap,
boolean  fromEncodedMap,
boolean  isTemplate,
boolean  encodeSlash 
)
inlineprivate
413  {
414  for (Map.Entry<String, ? extends Object> entry : paramMap.entrySet()) {
415  if (entry.getKey() == null) throw new IllegalArgumentException("map key is null");
416  if (entry.getValue() == null) throw new IllegalArgumentException("map value is null");
417  }
418  StringBuffer buffer = new StringBuffer();
419 
420  if (scheme != null)
421  replaceParameter(paramMap, fromEncodedMap, isTemplate, scheme, buffer, encodeSlash).append(":");
422  if (ssp != null) {
423  buffer.append(ssp);
424  } else if (userInfo != null || host != null || port != -1) {
425  buffer.append("//");
426  if (userInfo != null)
427  replaceParameter(paramMap, fromEncodedMap, isTemplate, userInfo, buffer, encodeSlash).append("@");
428  if (host != null) {
429  if ("".equals(host)) throw new RuntimeException("empty host name");
430  replaceParameter(paramMap, fromEncodedMap, isTemplate, host, buffer, encodeSlash);
431  }
432  if (port != -1 && (scheme == null || (scheme.equals("http") && port != 80) || (scheme.equals("https") && port != 443)) ) {
433  buffer.append(":").append(Integer.toString(port));
434  }
435  } else if (authority != null) {
436  buffer.append("//");
437  replaceParameter(paramMap, fromEncodedMap, isTemplate, authority, buffer, encodeSlash);
438  }
439  if (path != null) {
440  StringBuffer tmp = new StringBuffer();
441  replaceParameter(paramMap, fromEncodedMap, isTemplate, path, tmp, encodeSlash);
442  String tmpPath = tmp.toString();
443  if (userInfo != null || host != null) {
444  if (!tmpPath.startsWith("/")) buffer.append("/");
445  }
446  buffer.append(tmpPath);
447  }
448  if (query != null) {
449  buffer.append("?");
450  replaceQueryStringParameter(paramMap, fromEncodedMap, isTemplate, query, buffer);
451  }
452  if (fragment != null) {
453  buffer.append("#");
454  replaceParameter(paramMap, fromEncodedMap, isTemplate, fragment, buffer, encodeSlash);
455  }
456  return buffer.toString();
457  }
StringBuffer replaceParameter(Map< String, ?> paramMap, boolean fromEncodedMap, boolean isTemplate, String string, StringBuffer buffer, boolean encodeSlash)
Definition: KeycloakUriBuilder.java:483
String scheme
Definition: KeycloakUriBuilder.java:37
String authority
Definition: KeycloakUriBuilder.java:45
int port
Definition: KeycloakUriBuilder.java:38
String ssp
Definition: KeycloakUriBuilder.java:44
String path
Definition: KeycloakUriBuilder.java:41
String host
Definition: KeycloakUriBuilder.java:36
String query
Definition: KeycloakUriBuilder.java:42
StringBuffer replaceQueryStringParameter(Map< String, ?> paramMap, boolean fromEncodedMap, boolean isTemplate, String string, StringBuffer buffer)
Definition: KeycloakUriBuilder.java:512
String fragment
Definition: KeycloakUriBuilder.java:43
String userInfo
Definition: KeycloakUriBuilder.java:40

◆ buildUriFromMap()

URI org.keycloak.common.util.KeycloakUriBuilder.buildUriFromMap ( Map< String, ?>  paramMap,
boolean  fromEncodedMap,
boolean  encodeSlash 
) throws IllegalArgumentException
inlineprotected
404  {
405  String buf = buildString(paramMap, fromEncodedMap, false, encodeSlash);
406  try {
407  return URI.create(buf);
408  } catch (Exception e) {
409  throw new RuntimeException("Failed to create URI: " + buf, e);
410  }
411  }
String buildString(Map< String, ?> paramMap, boolean fromEncodedMap, boolean isTemplate, boolean encodeSlash)
Definition: KeycloakUriBuilder.java:413

◆ clone()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.clone ( )
inline
60  {
61  KeycloakUriBuilder impl = new KeycloakUriBuilder();
62  impl.host = host;
63  impl.scheme = scheme;
64  impl.port = port;
65  impl.userInfo = userInfo;
66  impl.path = path;
67  impl.query = query;
68  impl.fragment = fragment;
69  impl.ssp = ssp;
70  impl.authority = authority;
71 
72  return impl;
73  }
String scheme
Definition: KeycloakUriBuilder.java:37
String authority
Definition: KeycloakUriBuilder.java:45
int port
Definition: KeycloakUriBuilder.java:38
String ssp
Definition: KeycloakUriBuilder.java:44
String path
Definition: KeycloakUriBuilder.java:41
String host
Definition: KeycloakUriBuilder.java:36
String query
Definition: KeycloakUriBuilder.java:42
String fragment
Definition: KeycloakUriBuilder.java:43
String userInfo
Definition: KeycloakUriBuilder.java:40

◆ compare()

static boolean org.keycloak.common.util.KeycloakUriBuilder.compare ( String  s1,
String  s2 
)
inlinestatic
79  {
80  if (s1 == s2) return true;
81  if (s1 == null || s2 == null) return false;
82  return s1.equals(s2);
83  }

◆ createUriParamMatcher()

static Matcher org.keycloak.common.util.KeycloakUriBuilder.createUriParamMatcher ( String  string)
inlinestatic
479  {
480  return PathHelper.URI_PARAM_PATTERN.matcher(PathHelper.replaceEnclosedCurlyBraces(string));
481  }

◆ encodedFragment()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.encodedFragment ( String  fragment)
inline

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

引数
fragment
戻り値
367  {
368  this.fragment = fragment;
369  return this;
370  }
String fragment
Definition: KeycloakUriBuilder.java:43

◆ fragment()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.fragment ( String  fragment) throws IllegalArgumentException
inline
352  {
353  if (fragment == null) {
354  this.fragment = null;
355  return this;
356  }
357  this.fragment = Encode.encodeFragment(fragment);
358  return this;
359  }
String fragment
Definition: KeycloakUriBuilder.java:43

◆ fromPath()

static KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.fromPath ( String  path) throws IllegalArgumentException
inlinestatic
55  {
56  return new KeycloakUriBuilder().path(path);
57  }
String path
Definition: KeycloakUriBuilder.java:41

◆ fromTemplate()

static KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.fromTemplate ( String  uriTemplate)
inlinestatic

You may put path parameters anywhere within the uriTemplate except port

引数
uriTemplate
戻り値
119  {
120  KeycloakUriBuilder impl = new KeycloakUriBuilder();
121  impl.uriTemplate(uriTemplate);
122  return impl;
123  }
KeycloakUriBuilder uriTemplate(String uriTemplate)
Definition: KeycloakUriBuilder.java:131

◆ fromUri() [1/2]

static KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.fromUri ( URI  uri)
inlinestatic
47  {
48  return new KeycloakUriBuilder().uri(uri);
49  }
KeycloakUriBuilder uri(String uriTemplate)
Definition: KeycloakUriBuilder.java:189

◆ fromUri() [2/2]

static KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.fromUri ( String  uriTemplate)
inlinestatic
51  {
52  return new KeycloakUriBuilder().uri(uriTemplate);
53  }
KeycloakUriBuilder uriTemplate(String uriTemplate)
Definition: KeycloakUriBuilder.java:131

◆ getFragment()

String org.keycloak.common.util.KeycloakUriBuilder.getFragment ( )
inline
678  {
679  return fragment;
680  }
String fragment
Definition: KeycloakUriBuilder.java:43

◆ getHost()

String org.keycloak.common.util.KeycloakUriBuilder.getHost ( )
inline
654  {
655  return host;
656  }
String host
Definition: KeycloakUriBuilder.java:36

◆ getPath()

String org.keycloak.common.util.KeycloakUriBuilder.getPath ( )
inline
670  {
671  return path;
672  }
String path
Definition: KeycloakUriBuilder.java:41

◆ getPathParamNamesInDeclarationOrder()

List<String> org.keycloak.common.util.KeycloakUriBuilder.getPathParamNamesInDeclarationOrder ( )
inline

Return a unique order list of path params

戻り値
544  {
545  List<String> params = new ArrayList<String>();
546  HashSet<String> set = new HashSet<String>();
547  if (scheme != null) addToPathParamList(params, set, scheme);
548  if (userInfo != null) addToPathParamList(params, set, userInfo);
549  if (host != null) addToPathParamList(params, set, host);
550  if (path != null) addToPathParamList(params, set, path);
551  if (query != null) addToPathParamList(params, set, query);
552  if (fragment != null) addToPathParamList(params, set, fragment);
553 
554  return params;
555  }
String scheme
Definition: KeycloakUriBuilder.java:37
void addToPathParamList(List< String > params, HashSet< String > set, String string)
Definition: KeycloakUriBuilder.java:557
String path
Definition: KeycloakUriBuilder.java:41
String host
Definition: KeycloakUriBuilder.java:36
String query
Definition: KeycloakUriBuilder.java:42
String fragment
Definition: KeycloakUriBuilder.java:43
String userInfo
Definition: KeycloakUriBuilder.java:40

◆ getPort()

int org.keycloak.common.util.KeycloakUriBuilder.getPort ( )
inline
662  {
663  return port;
664  }
int port
Definition: KeycloakUriBuilder.java:38

◆ getQuery()

String org.keycloak.common.util.KeycloakUriBuilder.getQuery ( )
inline
674  {
675  return query;
676  }
String query
Definition: KeycloakUriBuilder.java:42

◆ getScheme()

String org.keycloak.common.util.KeycloakUriBuilder.getScheme ( )
inline
658  {
659  return scheme;
660  }
String scheme
Definition: KeycloakUriBuilder.java:37

◆ getUserInfo()

String org.keycloak.common.util.KeycloakUriBuilder.getUserInfo ( )
inline
666  {
667  return userInfo;
668  }
String userInfo
Definition: KeycloakUriBuilder.java:40

◆ host()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.host ( String  host) throws IllegalArgumentException
inline
281  {
282  if (host != null && host.equals("")) throw new IllegalArgumentException("invalid host");
283  this.host = host;
284  return this;
285  }
String host
Definition: KeycloakUriBuilder.java:36

◆ matrixParam()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.matrixParam ( String  name,
Object...  values 
) throws IllegalArgumentException
inline
598  {
599  if (name == null) throw new IllegalArgumentException("name parameter is null");
600  if (values == null) throw new IllegalArgumentException("values parameter is null");
601  if (path == null) path = "";
602  for (Object val : values) {
603  if (val == null) throw new IllegalArgumentException("null value");
604  path += ";" + Encode.encodeMatrixParam(name) + "=" + Encode.encodeMatrixParam(val.toString());
605  }
606  return this;
607  }
String path
Definition: KeycloakUriBuilder.java:41

◆ parseHierarchicalUri()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.parseHierarchicalUri ( String  uriTemplate,
Matcher  match 
)
inlineprotected
153  {
154  boolean scheme = match.group(2) != null;
155  if (scheme) this.scheme = match.group(2);
156  String authority = match.group(4);
157  if (authority != null) {
158  this.authority = null;
159  String host = match.group(4);
160  int at = host.indexOf('@');
161  if (at > -1) {
162  String user = host.substring(0, at);
163  host = host.substring(at + 1);
164  this.userInfo = user;
165  }
166  Matcher hostPortMatch = hostPortPattern.matcher(host);
167  if (hostPortMatch.matches()) {
168  this.host = hostPortMatch.group(1);
169  try {
170  this.port = Integer.parseInt(hostPortMatch.group(2));
171  } catch (NumberFormatException e) {
172  throw new IllegalArgumentException("Illegal uri template: " + uriTemplate, e);
173  }
174  } else {
175  this.host = host;
176  }
177  }
178  if (match.group(5) != null) {
179  String group = match.group(5);
180  if (!scheme && !"".equals(group) && !group.startsWith("/") && group.indexOf(':') > -1)
181  throw new IllegalArgumentException("Illegal uri template: " + uriTemplate);
182  if (!"".equals(group)) replacePath(group);
183  }
184  if (match.group(7) != null) replaceQuery(match.group(7));
185  if (match.group(9) != null) fragment(match.group(9));
186  return this;
187  }
String scheme
Definition: KeycloakUriBuilder.java:37
String authority
Definition: KeycloakUriBuilder.java:45
int port
Definition: KeycloakUriBuilder.java:38
KeycloakUriBuilder uriTemplate(String uriTemplate)
Definition: KeycloakUriBuilder.java:131
String host
Definition: KeycloakUriBuilder.java:36
String fragment
Definition: KeycloakUriBuilder.java:43
static final Pattern hostPortPattern
Definition: KeycloakUriBuilder.java:77
KeycloakUriBuilder replacePath(String path)
Definition: KeycloakUriBuilder.java:691
String userInfo
Definition: KeycloakUriBuilder.java:40
KeycloakUriBuilder replaceQuery(String query)
Definition: KeycloakUriBuilder.java:343

◆ path()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.path ( String  segment) throws IllegalArgumentException
inline
320  {
321  if (segment == null) throw new IllegalArgumentException("path was null");
322  path = paths(true, path, segment);
323  return this;
324  }
String path
Definition: KeycloakUriBuilder.java:41
KeycloakUriBuilder segment(String... segments)
Definition: KeycloakUriBuilder.java:682
static String paths(boolean encode, String basePath, String... segments)
Definition: KeycloakUriBuilder.java:293

◆ paths()

static String org.keycloak.common.util.KeycloakUriBuilder.paths ( boolean  encode,
String  basePath,
String...  segments 
)
inlinestaticprotected
293  {
294  String path = basePath;
295  if (path == null) path = "";
296  for (String segment : segments) {
297  if ("".equals(segment)) continue;
298  if (path.endsWith("/")) {
299  if (segment.startsWith("/")) {
300  segment = segment.substring(1);
301  if ("".equals(segment)) continue;
302  }
303  if (encode) segment = Encode.encodePath(segment);
304  path += segment;
305  } else {
306  if (encode) segment = Encode.encodePath(segment);
307  if ("".equals(path)) {
308  path = segment;
309  } else if (segment.startsWith("/")) {
310  path += segment;
311  } else {
312  path += "/" + segment;
313  }
314  }
315 
316  }
317  return path;
318  }
String path
Definition: KeycloakUriBuilder.java:41
KeycloakUriBuilder segment(String... segments)
Definition: KeycloakUriBuilder.java:682

◆ port()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.port ( int  port) throws IllegalArgumentException
inline
287  {
288  if (port < -1) throw new IllegalArgumentException("Invalid port value");
289  this.port = port;
290  return this;
291  }
int port
Definition: KeycloakUriBuilder.java:38

◆ queryParam()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.queryParam ( String  name,
Object...  values 
) throws IllegalArgumentException
inline
612  {
613  if (name == null) throw new IllegalArgumentException("name parameter is null");
614  if (values == null) throw new IllegalArgumentException("values parameter is null");
615  for (Object value : values) {
616  if (value == null) throw new IllegalArgumentException("A passed in value was null");
617  if (query == null) query = "";
618  else query += "&";
619  query += Encode.encodeQueryParamAsIs(name) + "=" + Encode.encodeQueryParamAsIs(value.toString());
620  }
621  return this;
622  }
String query
Definition: KeycloakUriBuilder.java:42

◆ relativize()

static URI org.keycloak.common.util.KeycloakUriBuilder.relativize ( URI  from,
URI  to 
)
inlinestatic
85  {
86  if (!compare(from.getScheme(), to.getScheme())) return to;
87  if (!compare(from.getHost(), to.getHost())) return to;
88  if (from.getPort() != to.getPort()) return to;
89  if (from.getPath() == null && to.getPath() == null) return URI.create("");
90  else if (from.getPath() == null) return URI.create(to.getPath());
91  else if (to.getPath() == null) return to;
92 
93 
94  String fromPath = from.getPath();
95  if (fromPath.startsWith("/")) fromPath = fromPath.substring(1);
96  String[] fsplit = fromPath.split("/");
97  String toPath = to.getPath();
98  if (toPath.startsWith("/")) toPath = toPath.substring(1);
99  String[] tsplit = toPath.split("/");
100 
101  int f = 0;
102 
103  for (; f < fsplit.length && f < tsplit.length; f++) {
104  if (!fsplit[f].equals(tsplit[f])) break;
105  }
106 
107  KeycloakUriBuilder builder = KeycloakUriBuilder.fromPath("");
108  for (int i = f; i < fsplit.length; i++) builder.path("..");
109  for (int i = f; i < tsplit.length; i++) builder.path(tsplit[i]);
110  return builder.build();
111  }
static KeycloakUriBuilder fromPath(String path)
Definition: KeycloakUriBuilder.java:55
String getPath()
Definition: KeycloakUriBuilder.java:670
static boolean compare(String s1, String s2)
Definition: KeycloakUriBuilder.java:79

◆ replaceMatrix()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.replaceMatrix ( String  matrix) throws IllegalArgumentException
inline
326  {
327  if (matrix == null) matrix = "";
328  if (!matrix.startsWith(";")) matrix = ";" + matrix;
329  matrix = Encode.encodePath(matrix);
330  if (path == null) {
331  path = matrix;
332  } else {
333  int start = path.lastIndexOf('/');
334  if (start < 0) start = 0;
335  int matrixIndex = path.indexOf(';', start);
336  if (matrixIndex > -1) path = path.substring(0, matrixIndex) + matrix;
337  else path += matrix;
338 
339  }
340  return this;
341  }
String path
Definition: KeycloakUriBuilder.java:41

◆ replaceParameter()

StringBuffer org.keycloak.common.util.KeycloakUriBuilder.replaceParameter ( Map< String, ?>  paramMap,
boolean  fromEncodedMap,
boolean  isTemplate,
String  string,
StringBuffer  buffer,
boolean  encodeSlash 
)
inlineprotected
483  {
484  Matcher matcher = createUriParamMatcher(string);
485  while (matcher.find()) {
486  String param = matcher.group(1);
487  Object valObj = paramMap.get(param);
488  if (valObj == null && !isTemplate) {
489  throw new IllegalArgumentException("NULL value for template parameter: " + param);
490  } else if (valObj == null && isTemplate) {
491  matcher.appendReplacement(buffer, matcher.group());
492  continue;
493  }
494  String value = valObj.toString();
495  if (value != null) {
496  if (!fromEncodedMap) {
497  if (encodeSlash) value = Encode.encodePathSegmentAsIs(value);
498  else value = Encode.encodePathAsIs(value);
499  } else {
500  if (encodeSlash) value = Encode.encodePathSegmentSaveEncodings(value);
501  else value = Encode.encodePathSaveEncodings(value);
502  }
503  matcher.appendReplacement(buffer, Matcher.quoteReplacement(value));
504  } else {
505  throw new IllegalArgumentException("path param " + param + " has not been provided by the parameter map");
506  }
507  }
508  matcher.appendTail(buffer);
509  return buffer;
510  }
static Matcher createUriParamMatcher(String string)
Definition: KeycloakUriBuilder.java:479

◆ replacePath()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.replacePath ( String  path)
inline
691  {
692  if (path == null) {
693  this.path = null;
694  return this;
695  }
696  this.path = Encode.encodePath(path);
697  return this;
698  }
String path
Definition: KeycloakUriBuilder.java:41

◆ replacePathParameter()

StringBuffer org.keycloak.common.util.KeycloakUriBuilder.replacePathParameter ( String  name,
String  value,
boolean  isEncoded,
String  string,
StringBuffer  buffer,
boolean  encodeSlash 
)
inlineprotected
459  {
460  Matcher matcher = createUriParamMatcher(string);
461  while (matcher.find()) {
462  String param = matcher.group(1);
463  if (!param.equals(name)) continue;
464  if (!isEncoded) {
465  if (encodeSlash) value = Encode.encodePath(value);
466  else value = Encode.encodePathSegment(value);
467 
468  } else {
469  value = Encode.encodeNonCodes(value);
470  }
471  // if there is a $ then we must backslash it or it will screw up regex group substitution
472  value = value.replace("$", "\\$");
473  matcher.appendReplacement(buffer, value);
474  }
475  matcher.appendTail(buffer);
476  return buffer;
477  }
static Matcher createUriParamMatcher(String string)
Definition: KeycloakUriBuilder.java:479

◆ replaceQuery()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.replaceQuery ( String  query) throws IllegalArgumentException
inline
343  {
344  if (query == null || query.length() == 0) {
345  this.query = null;
346  return this;
347  }
348  this.query = Encode.encodeQueryString(query);
349  return this;
350  }
String query
Definition: KeycloakUriBuilder.java:42

◆ replaceQueryParam()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.replaceQueryParam ( String  name,
Object...  values 
) throws IllegalArgumentException
inline
624  {
625  if (name == null) throw new IllegalArgumentException("name parameter is null");
626  if (query == null || query.equals("")) {
627  if (values != null) return queryParam(name, values);
628  return this;
629  }
630 
631  String[] params = query.split("&");
632  query = null;
633 
634  String replacedName = Encode.encodeQueryParam(name);
635 
636 
637  for (String param : params) {
638  int pos = param.indexOf('=');
639  if (pos >= 0) {
640  String paramName = param.substring(0, pos);
641  if (paramName.equals(replacedName)) continue;
642  } else {
643  if (param.equals(replacedName)) continue;
644  }
645  if (query == null) query = "";
646  else query += "&";
647  query += param;
648  }
649  // don't set values if values is null
650  if (values == null) return this;
651  return queryParam(name, values);
652  }
KeycloakUriBuilder queryParam(String name, Object... values)
Definition: KeycloakUriBuilder.java:612
String query
Definition: KeycloakUriBuilder.java:42

◆ replaceQueryStringParameter()

StringBuffer org.keycloak.common.util.KeycloakUriBuilder.replaceQueryStringParameter ( Map< String, ?>  paramMap,
boolean  fromEncodedMap,
boolean  isTemplate,
String  string,
StringBuffer  buffer 
)
inlineprotected
512  {
513  Matcher matcher = createUriParamMatcher(string);
514  while (matcher.find()) {
515  String param = matcher.group(1);
516  Object valObj = paramMap.get(param);
517  if (valObj == null && !isTemplate) {
518  throw new IllegalArgumentException("NULL value for template parameter: " + param);
519  } else if (valObj == null && isTemplate) {
520  matcher.appendReplacement(buffer, matcher.group());
521  continue;
522  }
523  String value = valObj.toString();
524  if (value != null) {
525  if (!fromEncodedMap) {
526  value = Encode.encodeQueryParamAsIs(value);
527  } else {
528  value = Encode.encodeQueryParamSaveEncodings(value);
529  }
530  matcher.appendReplacement(buffer, value);
531  } else {
532  throw new IllegalArgumentException("path param " + param + " has not been provided by the parameter map");
533  }
534  }
535  matcher.appendTail(buffer);
536  return buffer;
537  }
static Matcher createUriParamMatcher(String string)
Definition: KeycloakUriBuilder.java:479

◆ resolveTemplate() [1/2]

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.resolveTemplate ( String  name,
Object  value 
) throws IllegalArgumentException
inline
709  {
710  if (name == null) throw new IllegalArgumentException("name param is null");
711  if (value == null) throw new IllegalArgumentException("value param is null");
712  HashMap<String, Object> vals = new HashMap<String, Object>();
713  vals.put(name, value);
714  return resolveTemplates(vals);
715  }
KeycloakUriBuilder resolveTemplates(Map< String, Object > templateValues)
Definition: KeycloakUriBuilder.java:717

◆ resolveTemplate() [2/2]

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.resolveTemplate ( String  name,
Object  value,
boolean  encodeSlashInPath 
) throws IllegalArgumentException
inline
723  {
724  if (name == null) throw new IllegalArgumentException("name param is null");
725  if (value == null) throw new IllegalArgumentException("value param is null");
726  HashMap<String, Object> vals = new HashMap<String, Object>();
727  vals.put(name, value);
728  String str = buildString(vals, false, true, encodeSlashInPath);
729  return fromTemplate(str);
730  }
String buildString(Map< String, ?> paramMap, boolean fromEncodedMap, boolean isTemplate, boolean encodeSlash)
Definition: KeycloakUriBuilder.java:413
static KeycloakUriBuilder fromTemplate(String uriTemplate)
Definition: KeycloakUriBuilder.java:119

◆ resolveTemplates() [1/2]

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.resolveTemplates ( Map< String, Object >  templateValues) throws IllegalArgumentException
inline
717  {
718  if (templateValues == null) throw new IllegalArgumentException("templateValues param null");
719  String str = buildString(templateValues, false, true, true);
720  return fromTemplate(str);
721  }
String buildString(Map< String, ?> paramMap, boolean fromEncodedMap, boolean isTemplate, boolean encodeSlash)
Definition: KeycloakUriBuilder.java:413
static KeycloakUriBuilder fromTemplate(String uriTemplate)
Definition: KeycloakUriBuilder.java:119

◆ resolveTemplates() [2/2]

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.resolveTemplates ( Map< String, Object >  templateValues,
boolean  encodeSlashInPath 
) throws IllegalArgumentException
inline
732  {
733  if (templateValues == null) throw new IllegalArgumentException("templateValues param null");
734  String str = buildString(templateValues, false, true, encodeSlashInPath);
735  return fromTemplate(str);
736  }
String buildString(Map< String, ?> paramMap, boolean fromEncodedMap, boolean isTemplate, boolean encodeSlash)
Definition: KeycloakUriBuilder.java:413
static KeycloakUriBuilder fromTemplate(String uriTemplate)
Definition: KeycloakUriBuilder.java:119

◆ resolveTemplatesFromEncoded()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.resolveTemplatesFromEncoded ( Map< String, Object >  templateValues) throws IllegalArgumentException
inline
738  {
739  if (templateValues == null) throw new IllegalArgumentException("templateValues param null");
740  String str = buildString(templateValues, true, true, true);
741  return fromTemplate(str);
742  }
String buildString(Map< String, ?> paramMap, boolean fromEncodedMap, boolean isTemplate, boolean encodeSlash)
Definition: KeycloakUriBuilder.java:413
static KeycloakUriBuilder fromTemplate(String uriTemplate)
Definition: KeycloakUriBuilder.java:119

◆ scheme()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.scheme ( String  scheme) throws IllegalArgumentException
inline
246  {
247  this.scheme = scheme;
248  return this;
249  }
String scheme
Definition: KeycloakUriBuilder.java:37

◆ schemeSpecificPart()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.schemeSpecificPart ( String  ssp) throws IllegalArgumentException
inline
251  {
252  if (ssp == null) throw new IllegalArgumentException("schemeSpecificPart was null");
253 
254  StringBuilder sb = new StringBuilder();
255  if (scheme != null) sb.append(scheme).append(':');
256  if (ssp != null)
257  sb.append(ssp);
258  if (fragment != null && fragment.length() > 0) sb.append('#').append(fragment);
259  URI uri = URI.create(sb.toString());
260 
261  if (uri.getRawSchemeSpecificPart() != null && uri.getRawPath() == null) {
262  this.ssp = uri.getRawSchemeSpecificPart();
263  } else {
264  this.ssp = null;
265  userInfo = uri.getRawUserInfo();
266  host = uri.getHost();
267  port = uri.getPort();
268  path = uri.getRawPath();
269  query = uri.getRawQuery();
270 
271  }
272  return this;
273 
274  }
String scheme
Definition: KeycloakUriBuilder.java:37
int port
Definition: KeycloakUriBuilder.java:38
KeycloakUriBuilder uri(String uriTemplate)
Definition: KeycloakUriBuilder.java:189
String ssp
Definition: KeycloakUriBuilder.java:44
String path
Definition: KeycloakUriBuilder.java:41
String host
Definition: KeycloakUriBuilder.java:36
String query
Definition: KeycloakUriBuilder.java:42
String fragment
Definition: KeycloakUriBuilder.java:43
String userInfo
Definition: KeycloakUriBuilder.java:40

◆ segment()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.segment ( String...  segments) throws IllegalArgumentException
inline
682  {
683  if (segments == null) throw new IllegalArgumentException("segments parameter was null");
684  for (String segment : segments) {
685  if (segment == null) throw new IllegalArgumentException("A segment is null");
686  path(Encode.encodePathSegment(segment));
687  }
688  return this;
689  }
String path
Definition: KeycloakUriBuilder.java:41
KeycloakUriBuilder segment(String... segments)
Definition: KeycloakUriBuilder.java:682

◆ substitutePathParam()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.substitutePathParam ( String  name,
Object  value,
boolean  isEncoded 
)
inline

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

引数
name
value
isEncoded
戻り値
380  {
381  if (path != null) {
382  StringBuffer buffer = new StringBuffer();
383  replacePathParameter(name, value.toString(), isEncoded, path, buffer, false);
384  path = buffer.toString();
385  }
386  return this;
387  }
StringBuffer replacePathParameter(String name, String value, boolean isEncoded, String string, StringBuffer buffer, boolean encodeSlash)
Definition: KeycloakUriBuilder.java:459
String path
Definition: KeycloakUriBuilder.java:41

◆ toTemplate()

String org.keycloak.common.util.KeycloakUriBuilder.toTemplate ( )
inline
705  {
706  return buildString(new HashMap<String, Object>(), true, true, true);
707  }
String buildString(Map< String, ?> paramMap, boolean fromEncodedMap, boolean isTemplate, boolean encodeSlash)
Definition: KeycloakUriBuilder.java:413

◆ uri() [1/2]

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.uri ( String  uriTemplate) throws IllegalArgumentException
inline
189  {
190  return uriTemplate(uriTemplate);
191  }
KeycloakUriBuilder uriTemplate(String uriTemplate)
Definition: KeycloakUriBuilder.java:131

◆ uri() [2/2]

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.uri ( URI  uri) throws IllegalArgumentException
inline
193  {
194  if (uri == null) throw new IllegalArgumentException("URI was null");
195 
196  if (uri.getRawFragment() != null) fragment = uri.getRawFragment();
197 
198  if (uri.isOpaque()) {
199  scheme = uri.getScheme();
200  ssp = uri.getRawSchemeSpecificPart();
201  return this;
202  }
203 
204  if (uri.getScheme() == null) {
205  if (ssp != null) {
206  if (uri.getRawSchemeSpecificPart() != null) {
207  ssp = uri.getRawSchemeSpecificPart();
208  return this;
209  }
210  }
211  } else {
212  scheme = uri.getScheme();
213  }
214 
215  ssp = null;
216  if (uri.getRawAuthority() != null) {
217  if (uri.getRawUserInfo() == null && uri.getHost() == null && uri.getPort() == -1) {
218  authority = uri.getRawAuthority();
219  userInfo = null;
220  host = null;
221  port = -1;
222  } else {
223  authority = null;
224  if (uri.getRawUserInfo() != null) {
225  userInfo = uri.getRawUserInfo();
226  }
227  if (uri.getHost() != null) {
228  host = uri.getHost();
229  }
230  if (uri.getPort() != -1) {
231  port = uri.getPort();
232  }
233  }
234  }
235 
236  if (uri.getRawPath() != null && uri.getRawPath().length() > 0) {
237  path = uri.getRawPath();
238  }
239  if (uri.getRawQuery() != null && uri.getRawQuery().length() > 0) {
240  query = uri.getRawQuery();
241  }
242 
243  return this;
244  }
int getPort()
Definition: KeycloakUriBuilder.java:662
String scheme
Definition: KeycloakUriBuilder.java:37
String authority
Definition: KeycloakUriBuilder.java:45
int port
Definition: KeycloakUriBuilder.java:38
KeycloakUriBuilder uri(String uriTemplate)
Definition: KeycloakUriBuilder.java:189
String ssp
Definition: KeycloakUriBuilder.java:44
String path
Definition: KeycloakUriBuilder.java:41
String getHost()
Definition: KeycloakUriBuilder.java:654
String getScheme()
Definition: KeycloakUriBuilder.java:658
String host
Definition: KeycloakUriBuilder.java:36
String query
Definition: KeycloakUriBuilder.java:42
String fragment
Definition: KeycloakUriBuilder.java:43
String userInfo
Definition: KeycloakUriBuilder.java:40

◆ uriTemplate()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.uriTemplate ( String  uriTemplate)
inline

You may put path parameters anywhere within the uriTemplate except port

引数
uriTemplate
戻り値
131  {
132  if (uriTemplate == null) throw new IllegalArgumentException("uriTemplate parameter is null");
133  Matcher opaque = opaqueUri.matcher(uriTemplate);
134  if (opaque.matches()) {
135  this.authority = null;
136  this.host = null;
137  this.port = -1;
138  this.userInfo = null;
139  this.query = null;
140  this.scheme = opaque.group(1);
141  this.ssp = opaque.group(2);
142  return this;
143  } else {
144  Matcher match = hierarchicalUri.matcher(uriTemplate);
145  if (match.matches()) {
146  ssp = null;
147  return parseHierarchicalUri(uriTemplate, match);
148  }
149  }
150  throw new IllegalArgumentException("Illegal uri template: " + uriTemplate);
151  }
static final Pattern hierarchicalUri
Definition: KeycloakUriBuilder.java:76
String scheme
Definition: KeycloakUriBuilder.java:37
String authority
Definition: KeycloakUriBuilder.java:45
static final Pattern opaqueUri
Definition: KeycloakUriBuilder.java:75
int port
Definition: KeycloakUriBuilder.java:38
KeycloakUriBuilder uriTemplate(String uriTemplate)
Definition: KeycloakUriBuilder.java:131
String ssp
Definition: KeycloakUriBuilder.java:44
String host
Definition: KeycloakUriBuilder.java:36
String query
Definition: KeycloakUriBuilder.java:42
KeycloakUriBuilder parseHierarchicalUri(String uriTemplate, Matcher match)
Definition: KeycloakUriBuilder.java:153
String userInfo
Definition: KeycloakUriBuilder.java:40

◆ userInfo()

KeycloakUriBuilder org.keycloak.common.util.KeycloakUriBuilder.userInfo ( String  ui)
inline
276  {
277  this.userInfo = ui;
278  return this;
279  }
String userInfo
Definition: KeycloakUriBuilder.java:40

メンバ詳解

◆ authority

String org.keycloak.common.util.KeycloakUriBuilder.authority
private

◆ fragment

String org.keycloak.common.util.KeycloakUriBuilder.fragment
private

◆ hierarchicalUri

final Pattern org.keycloak.common.util.KeycloakUriBuilder.hierarchicalUri = Pattern.compile("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?")
staticprivate

◆ host

String org.keycloak.common.util.KeycloakUriBuilder.host
private

◆ hostPortPattern

final Pattern org.keycloak.common.util.KeycloakUriBuilder.hostPortPattern = Pattern.compile("([^/:]+):(\\d+)")
staticprivate

◆ opaqueUri

final Pattern org.keycloak.common.util.KeycloakUriBuilder.opaqueUri = Pattern.compile("^([^:/?#]+):([^/].*)")
staticprivate

◆ PARAM_REPLACEMENT

final Pattern org.keycloak.common.util.KeycloakUriBuilder.PARAM_REPLACEMENT = Pattern.compile("_resteasy_uri_parameter")
staticprivate

◆ path

String org.keycloak.common.util.KeycloakUriBuilder.path
private

◆ port

int org.keycloak.common.util.KeycloakUriBuilder.port = -1
private

◆ query

String org.keycloak.common.util.KeycloakUriBuilder.query
private

◆ scheme

String org.keycloak.common.util.KeycloakUriBuilder.scheme
private

◆ ssp

String org.keycloak.common.util.KeycloakUriBuilder.ssp
private

◆ userInfo

String org.keycloak.common.util.KeycloakUriBuilder.userInfo
private

このクラス詳解は次のファイルから抽出されました: