diff --git a/src/def.go b/src/def.go index 45a008b..2e47323 100644 --- a/src/def.go +++ b/src/def.go @@ -44,7 +44,7 @@ import ( const ( /* Build Constants */ SYSTEM_NAME = "Zoraxy" - SYSTEM_VERSION = "3.2.3" + SYSTEM_VERSION = "3.2.4" DEVELOPMENT_BUILD = false /* System Constants */ diff --git a/src/mod/auth/sso/oauth2/oauth2.go b/src/mod/auth/sso/oauth2/oauth2.go index 449c44e..8cd519d 100644 --- a/src/mod/auth/sso/oauth2/oauth2.go +++ b/src/mod/auth/sso/oauth2/oauth2.go @@ -4,13 +4,14 @@ import ( "context" "encoding/json" "errors" + "net/http" + "net/url" + "strings" + "golang.org/x/oauth2" "imuslab.com/zoraxy/mod/database" "imuslab.com/zoraxy/mod/info/logger" "imuslab.com/zoraxy/mod/utils" - "net/http" - "net/url" - "strings" ) type OAuth2RouterOptions struct { @@ -250,7 +251,19 @@ func (ar *OAuth2Router) HandleOAuth2Auth(w http.ResponseWriter, r *http.Request) cookie.SameSite = http.SameSiteLaxMode } w.Header().Add("Set-Cookie", cookie.String()) - http.Redirect(w, r, state, http.StatusTemporaryRedirect) + + //Fix for #695 + location := strings.TrimPrefix(state, "/internal/") + //Check if the location starts with http:// or https://. if yes, this is full URL + decodedLocation, err := url.PathUnescape(location) + if err == nil && (strings.HasPrefix(decodedLocation, "http://") || strings.HasPrefix(decodedLocation, "https://")) { + //Redirect to the full URL + http.Redirect(w, r, decodedLocation, http.StatusTemporaryRedirect) + } else { + //Redirect to a relative path + http.Redirect(w, r, state, http.StatusTemporaryRedirect) + } + return errors.New("authorized") } unauthorized := false diff --git a/src/mod/streamproxy/udpprox.go b/src/mod/streamproxy/udpprox.go index 08ee676..9e78639 100644 --- a/src/mod/streamproxy/udpprox.go +++ b/src/mod/streamproxy/udpprox.go @@ -90,8 +90,8 @@ func (c *ProxyRelayConfig) ForwardUDP(address1, address2 string, stopChan chan b address1 = ":" + address1 } if strings.HasPrefix(address1, ":") { - //Prepend 127.0.0.1 to the address - address1 = "127.0.0.1" + address1 + //Prepend 0.0.0.0 to the address + address1 = "0.0.0.0" + address1 } lisener, targetAddr, err := initUDPConnections(address1, address2) diff --git a/src/web/components/sso.html b/src/web/components/sso.html index d0cadd6..e8531c7 100644 --- a/src/web/components/sso.html +++ b/src/web/components/sso.html @@ -3,18 +3,15 @@
Single Sign-On (SSO) and authentication providers settings
- -Configuration settings for the Forward Auth provider.
The Forward Auth provider makes a subrequest to an authorization server that supports Forward Auth, then either:
Configuration settings for OAuth 2.0 authentication provider.
Configuration settings for Zoraxy SSO provider.
+Currently not implemented.
+