Skip to content

Commit 2e5915b

Browse files
committed
Link function considers an url as absolute if it starts with a scheme
(cherry picked from commit afe8848)
1 parent 9c9e9b3 commit 2e5915b

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

dotnet/Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<MinorFileVersion>8</MinorFileVersion>
77
<RevisionFileVersion Condition="'$(CommitNumber)'!=''">$(CommitNumber)</RevisionFileVersion>
88
<RevisionFileVersion Condition="'$(CommitNumber)'==''">0</RevisionFileVersion>
9-
<FileVersionWithoutRevision>$(MajorFileVersion).$(MinorFileVersion).2</FileVersionWithoutRevision>
9+
<FileVersionWithoutRevision>$(MajorFileVersion).$(MinorFileVersion).3</FileVersionWithoutRevision>
1010
<FileVersion>$(FileVersionWithoutRevision).$(RevisionFileVersion)</FileVersion>
1111
<InformationalVersion>$([System.DateTime]::UtcNow.ToString("yyyyMMddHHmmss")).$(GITHUB_SHA)</InformationalVersion>
1212
<Company>GeneXus</Company>

dotnet/src/dotnetframework/GxClasses/Model/URLRouter.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.IO;
44
using System.Linq;
55
using System.Text;
6+
using System.Text.RegularExpressions;
67
using GeneXus.Configuration;
78
using GeneXus.Http;
89
using GeneXus.Utils;
@@ -14,11 +15,12 @@ internal class URLRouter
1415

1516
static ConcurrentDictionary<string, string> routerList;
1617
const string RESOURCE_PATTERN = "*.rewrite";
17-
18+
const string schemeRegEx = @"^([a-z][a-z0-9+\-.]*):";
19+
static Regex scheme = new Regex(schemeRegEx, RegexOptions.IgnoreCase);
1820
internal static string GetURLRoute(string key, object[] objectParms, string[] parmsName, string scriptPath)
1921
{
2022
string[] parms = objectParms.Select(p => StringizeParm(p)).ToArray() ;
21-
if (PathUtil.IsAbsoluteUrl(key) || key.StartsWith("/"))
23+
if (PathUtil.IsAbsoluteUrl(key) || key.StartsWith("/") || scheme.IsMatch(key))
2224
return key;
2325

2426
if (routerList == null)

0 commit comments

Comments
 (0)