diff options
| author | Linnea Gräf <nea@nea.moe> | 2025-10-12 21:17:12 +0200 |
|---|---|---|
| committer | Linnea Gräf <nea@nea.moe> | 2025-10-12 21:17:31 +0200 |
| commit | c87b9d73eaf66c88749ae69959de2b6994483569 (patch) | |
| tree | ba93724c3b7fc3b93d8d5087f1122f8d601c6ca4 /src/main/java/moe/nea/prickly/util/QueryParameterHelper.java | |
| parent | d872a6b1576b66ddd7b48f3ec0f77b8d5290fa62 (diff) | |
| download | prickly-c87b9d73eaf66c88749ae69959de2b6994483569.tar.gz prickly-c87b9d73eaf66c88749ae69959de2b6994483569.tar.bz2 prickly-c87b9d73eaf66c88749ae69959de2b6994483569.zip | |
feat: add authorize redirection
Diffstat (limited to 'src/main/java/moe/nea/prickly/util/QueryParameterHelper.java')
| -rw-r--r-- | src/main/java/moe/nea/prickly/util/QueryParameterHelper.java | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/main/java/moe/nea/prickly/util/QueryParameterHelper.java b/src/main/java/moe/nea/prickly/util/QueryParameterHelper.java new file mode 100644 index 0000000..191dae8 --- /dev/null +++ b/src/main/java/moe/nea/prickly/util/QueryParameterHelper.java @@ -0,0 +1,28 @@ +/* (C) 2025 Linnea Gräf - Licensed to everyone under the BSD 3 Clause License */ +package moe.nea.prickly.util; + +import com.google.common.net.UrlEscapers; +import java.net.URI; +import java.util.Map; +import org.jspecify.annotations.Nullable; + +public class QueryParameterHelper { + public static URI appendQuery(URI uri, Map<String, @Nullable String> extraArgs) { + var uriBuilder = new StringBuilder(); + uriBuilder.append(uri); + var escaper = UrlEscapers.urlFormParameterEscaper(); + var first = true; + for (var entry : extraArgs.entrySet()) { + if (entry.getValue() == null) continue; + if (first) { + char c = uriBuilder.charAt(uriBuilder.length() - 1); + if (c != '?' && c != '&') uriBuilder.append((uri.getQuery() == null) ? '?' : '&'); + first = false; + } else { + uriBuilder.append('&'); + } + uriBuilder.append(escaper.escape(entry.getKey())).append('=').append(escaper.escape(entry.getValue())); + } + return URI.create(uriBuilder.toString()); + } +} |
