summaryrefslogtreecommitdiff
path: root/internal/eduvpnapi/redirect.go
diff options
context:
space:
mode:
authorJeroen Wijenbergh <jeroen.wijenbergh@geant.org>2026-02-12 12:34:08 +0100
committerJeroen Wijenbergh <jeroen.wijenbergh@geant.org>2026-02-12 12:59:03 +0100
commita30ef6b27e578a4cf0a674b24f5b52b4c1516c63 (patch)
tree27c7321cbceac2a487c1ba17151711de3d438a53 /internal/eduvpnapi/redirect.go
parentb00ce8214479c50e137db73c77b0cc1393c5e7d4 (diff)
All: Rename packages that sound useless or clash with std
Diffstat (limited to 'internal/eduvpnapi/redirect.go')
-rw-r--r--internal/eduvpnapi/redirect.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/internal/eduvpnapi/redirect.go b/internal/eduvpnapi/redirect.go
new file mode 100644
index 0000000..7af31fb
--- /dev/null
+++ b/internal/eduvpnapi/redirect.go
@@ -0,0 +1,28 @@
+package eduvpnapi
+
+// customRedirects supplies redirect values that should be handled by the app itself
+// here we hardcode the redirect values that we should use in the OAuth requests
+// these values were taken from https://codeberg.org/eduVPN/vpn-user-portal/src/branch/v3/src/OAuth/VpnClientDb.php
+var customRedirects = map[string]string{
+ "org.letsconnect-vpn.app.macos": "org.letsconnect-vpn.app.macos:/api/callback",
+ "org.letsconnect-vpn.app.ios": "org.letsconnect-vpn.app.ios:/api/callback",
+ "org.letsconnect-vpn.app.android": "org.letsconnect-vpn.app.android:/api/callback",
+ "org.eduvpn.app.macos": "org.eduvpn.app.macos:/api/callback",
+ "org.eduvpn.app.ios": "org.eduvpn.app.ios:/api/callback",
+ "org.eduvpn.app.android": "org.eduvpn.app.android:/api/callback",
+ "org.govvpn.app.macos": "org.govvpn.app.macos:/api/callback",
+ "org.govvpn.app.ios": "org.govvpn.app.ios:/api/callback",
+ "org.govvpn.app.android": "org.govvpn.app.android:/api/callback",
+}
+
+// customRedirect returns the custom redirect string for the clientID `cid`
+// Empty string if none is defined or one is defined but is empty.
+// In both empty string cases, eduvpn-common handles the redirects as 127.0.0.1 local server redirects
+// If a non-empty string is returned, the redirect should be handled by the client and we only use the redirect URI value in our OAuth requests
+func customRedirect(cid string) string {
+ v, ok := customRedirects[cid]
+ if !ok {
+ return ""
+ }
+ return v
+}