diff options
author | Justin Clark-Casey (justincc) | 2010-07-15 21:40:44 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2010-07-15 21:40:44 +0100 |
commit | 2ec6e3b4402ae7acf9e3f0da77c12203c2b44ff9 (patch) | |
tree | ec61950870a506ddc4ab53fa0ab42e7016b2b8d7 /OpenSim/Region/CoreModules | |
parent | Implement * end wildcard for whitelist urls (diff) | |
download | opensim-SC-2ec6e3b4402ae7acf9e3f0da77c12203c2b44ff9.zip opensim-SC-2ec6e3b4402ae7acf9e3f0da77c12203c2b44ff9.tar.gz opensim-SC-2ec6e3b4402ae7acf9e3f0da77c12203c2b44ff9.tar.bz2 opensim-SC-2ec6e3b4402ae7acf9e3f0da77c12203c2b44ff9.tar.xz |
refactor: simplify current whitelist url checking by using System.Uri
Diffstat (limited to 'OpenSim/Region/CoreModules')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs b/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs index c24e6d5..c8e72ca 100644 --- a/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs +++ b/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs | |||
@@ -451,11 +451,13 @@ namespace OpenSim.Region.CoreModules.Media.Moap | |||
451 | /// <summary> | 451 | /// <summary> |
452 | /// Check the given url against the given whitelist. | 452 | /// Check the given url against the given whitelist. |
453 | /// </summary> | 453 | /// </summary> |
454 | /// <param name="url"></param> | 454 | /// <param name="rawUrl"></param> |
455 | /// <param name="whitelist"></param> | 455 | /// <param name="whitelist"></param> |
456 | /// <returns>true if the url matches an entry on the whitelist, false otherwise</returns> | 456 | /// <returns>true if the url matches an entry on the whitelist, false otherwise</returns> |
457 | protected bool CheckUrlAgainstWhitelist(string url, string[] whitelist) | 457 | protected bool CheckUrlAgainstWhitelist(string rawUrl, string[] whitelist) |
458 | { | 458 | { |
459 | Uri url = new Uri(rawUrl); | ||
460 | |||
459 | foreach (string rawWlUrl in whitelist) | 461 | foreach (string rawWlUrl in whitelist) |
460 | { | 462 | { |
461 | string wlUrl = rawWlUrl; | 463 | string wlUrl = rawWlUrl; |
@@ -464,14 +466,13 @@ namespace OpenSim.Region.CoreModules.Media.Moap | |||
464 | if (wlUrl.EndsWith("*")) | 466 | if (wlUrl.EndsWith("*")) |
465 | wlUrl = wlUrl.Remove(wlUrl.Length - 1); | 467 | wlUrl = wlUrl.Remove(wlUrl.Length - 1); |
466 | 468 | ||
467 | if (!wlUrl.StartsWith("http://")) | ||
468 | wlUrl = "http://" + wlUrl; | ||
469 | |||
470 | m_log.DebugFormat("[MOAP]: Checking whitelist URL {0}", wlUrl); | 469 | m_log.DebugFormat("[MOAP]: Checking whitelist URL {0}", wlUrl); |
470 | |||
471 | string urlToMatch = url.Authority + url.AbsolutePath; | ||
471 | 472 | ||
472 | if (url.StartsWith(wlUrl)) | 473 | if (urlToMatch.StartsWith(wlUrl)) |
473 | { | 474 | { |
474 | m_log.DebugFormat("[MOAP]: Whitelist URL {0} matches {1}", wlUrl, url); | 475 | m_log.DebugFormat("[MOAP]: Whitelist URL {0} matches {1}", wlUrl, urlToMatch); |
475 | return true; | 476 | return true; |
476 | } | 477 | } |
477 | } | 478 | } |