summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to 'internal')
-rw-r--r--internal/config/config.go3
-rw-r--r--internal/log/log.go4
-rw-r--r--internal/server/secureinternet.go32
-rw-r--r--internal/server/secureinternet_test.go (renamed from internal/util/util_test.go)2
-rw-r--r--internal/util/util.go44
5 files changed, 32 insertions, 53 deletions
diff --git a/internal/config/config.go b/internal/config/config.go
index 06da9b3..e324ebb 100644
--- a/internal/config/config.go
+++ b/internal/config/config.go
@@ -12,7 +12,6 @@ import (
"codeberg.org/eduVPN/eduvpn-common/internal/config/v1"
"codeberg.org/eduVPN/eduvpn-common/internal/config/v2"
"codeberg.org/eduVPN/eduvpn-common/internal/discovery"
- "codeberg.org/eduVPN/eduvpn-common/internal/util"
)
const stateFile = "state.json"
@@ -40,7 +39,7 @@ func (c *Config) HasSecureInternet() bool {
// Save saves the state file to disk
func (c *Config) Save() error {
- if err := util.EnsureDirectory(c.directory); err != nil {
+ if err := os.MkdirAll(c.directory, 0o700); err != nil {
return err
}
diff --git a/internal/log/log.go b/internal/log/log.go
index 47cdcf3..53671b3 100644
--- a/internal/log/log.go
+++ b/internal/log/log.go
@@ -7,8 +7,6 @@ import (
"log/slog"
"os"
"path"
-
- "codeberg.org/eduVPN/eduvpn-common/internal/util"
)
// Init initializes the logger by setting a max level 'level' and a directory 'directory' where the log should be stored
@@ -17,7 +15,7 @@ import (
// It returns the log file and the error
// This log file should be closed at the end
func Init(lvl slog.Level, dir string) (*os.File, error) {
- err := util.EnsureDirectory(dir)
+ err := os.MkdirAll(dir, 0o700)
if err != nil {
return nil, err
}
diff --git a/internal/server/secureinternet.go b/internal/server/secureinternet.go
index f97cef1..e0d081a 100644
--- a/internal/server/secureinternet.go
+++ b/internal/server/secureinternet.go
@@ -4,16 +4,42 @@ import (
"context"
"errors"
"log/slog"
+ "net/url"
+ "strings"
"time"
"codeberg.org/eduVPN/eduvpn-common/internal/api"
"codeberg.org/eduVPN/eduvpn-common/internal/config/v2"
"codeberg.org/eduVPN/eduvpn-common/internal/discovery"
- "codeberg.org/eduVPN/eduvpn-common/internal/util"
"codeberg.org/eduVPN/eduvpn-common/types/server"
"github.com/jwijenbergh/eduoauth-go"
)
+// ReplaceWAYF replaces an authorization template containing of @RETURN_TO@ and @ORG_ID@ with the authorization URL and the organization ID
+// See https://github.com/eduvpn/documentation/blob/dc4d53c47dd7a69e95d6650eec408e16eaa814a2/SERVER_DISCOVERY_SKIP_WAYF.md
+func ReplaceWAYF(template string, authURL string, orgID string) string {
+ // We just return the authURL in the cases where the template is not given or is invalid
+ if template == "" {
+ return authURL
+ }
+ if !strings.Contains(template, "@RETURN_TO@") {
+ return authURL
+ }
+ if !strings.Contains(template, "@ORG_ID@") {
+ return authURL
+ }
+ // Replace authURL
+ template = strings.Replace(template, "@RETURN_TO@", url.QueryEscape(authURL), 1)
+
+ // If now there is no more ORG_ID, return as there weren't enough @ symbols
+ if !strings.Contains(template, "@ORG_ID@") {
+ return authURL
+ }
+ // Replace ORG ID
+ template = strings.Replace(template, "@ORG_ID@", url.QueryEscape(orgID), 1)
+ return template
+}
+
// AddSecure adds a secure internet server
// `ctx` is the context used for cancellation
// `disco` are the discovery servers
@@ -47,7 +73,7 @@ func (s *Servers) AddSecure(ctx context.Context, discom *discovery.Manager, orgI
if err != nil {
return "", err
}
- ret := util.ReplaceWAYF(updsrv.AuthenticationURLTemplate, url, updorg.OrgID)
+ ret := ReplaceWAYF(updsrv.AuthenticationURLTemplate, url, updorg.OrgID)
return ret, nil
},
}
@@ -127,7 +153,7 @@ func (s *Servers) GetSecure(ctx context.Context, orgID string, discom *discovery
if err != nil {
return "", err
}
- ret := util.ReplaceWAYF(updsrv.AuthenticationURLTemplate, url, updorg.OrgID)
+ ret := ReplaceWAYF(updsrv.AuthenticationURLTemplate, url, updorg.OrgID)
return ret, nil
},
DisableAuthorize: disableAuth,
diff --git a/internal/util/util_test.go b/internal/server/secureinternet_test.go
index 827fbe1..8a4466e 100644
--- a/internal/util/util_test.go
+++ b/internal/server/secureinternet_test.go
@@ -1,4 +1,4 @@
-package util
+package server
import "testing"
diff --git a/internal/util/util.go b/internal/util/util.go
deleted file mode 100644
index 97b4151..0000000
--- a/internal/util/util.go
+++ /dev/null
@@ -1,44 +0,0 @@
-// Package util implements several utility functions that are used across the codebase
-package util
-
-import (
- "fmt"
- "net/url"
- "os"
- "strings"
-)
-
-// EnsureDirectory creates a directory with permission 700.
-func EnsureDirectory(dir string) error {
- // Create with 700 permissions, read, write, execute only for the owner
- err := os.MkdirAll(dir, 0o700)
- if err != nil {
- return fmt.Errorf("failed to create directory '%s' with error: %w", dir, err)
- }
- return nil
-}
-
-// ReplaceWAYF replaces an authorization template containing of @RETURN_TO@ and @ORG_ID@ with the authorization URL and the organization ID
-// See https://github.com/eduvpn/documentation/blob/dc4d53c47dd7a69e95d6650eec408e16eaa814a2/SERVER_DISCOVERY_SKIP_WAYF.md
-func ReplaceWAYF(template string, authURL string, orgID string) string {
- // We just return the authURL in the cases where the template is not given or is invalid
- if template == "" {
- return authURL
- }
- if !strings.Contains(template, "@RETURN_TO@") {
- return authURL
- }
- if !strings.Contains(template, "@ORG_ID@") {
- return authURL
- }
- // Replace authURL
- template = strings.Replace(template, "@RETURN_TO@", url.QueryEscape(authURL), 1)
-
- // If now there is no more ORG_ID, return as there weren't enough @ symbols
- if !strings.Contains(template, "@ORG_ID@") {
- return authURL
- }
- // Replace ORG ID
- template = strings.Replace(template, "@ORG_ID@", url.QueryEscape(orgID), 1)
- return template
-}