Provide `server_url: STRING' that compute the http://server_name:port or https://...

using `server_name', `server_port', `server_protocol' and avoid using `http_host'
which is not reliable and could be cause of security issue.
This commit is contained in:
Jocelyn Fiat
2012-10-23 12:10:33 +02:00
parent 2c2e031944
commit 56214129bd

View File

@@ -1359,16 +1359,37 @@ feature -- Uploaded File Handling
feature -- URL Utility feature -- URL Utility
server_url: STRING
-- Server url, as http://example.com:8080
local
s: like internal_server_url
p: like server_port
do
s := internal_server_url
if s = Void then
if
server_protocol.count >= 5 and then
server_protocol.substring (1, 5).is_case_insensitive_equal_general ("https")
then
create s.make_from_string ("https://")
else
create s.make_from_string ("http://")
end
s.append (server_name)
p := server_port
if p > 0 then
s.append_character (':')
s.append_integer (p)
end
end
Result := s
end
absolute_script_url (a_path: STRING): STRING absolute_script_url (a_path: STRING): STRING
-- Absolute Url for the script if any, extended by `a_path' -- Absolute Url for the script if any, extended by `a_path'
do do
Result := script_url (a_path) Result := script_url (a_path)
if attached http_host as h then Result.prepend (server_url)
Result.prepend (h)
Result.prepend ("http://")
else
--| Issue ??
end
end end
script_url (a_path: STRING): STRING script_url (a_path: STRING): STRING
@@ -1424,6 +1445,9 @@ feature -- URL Utility
feature {NONE} -- Implementation: URL Utility feature {NONE} -- Implementation: URL Utility
internal_server_url: detachable like server_url
-- Server url
internal_url_base: detachable STRING internal_url_base: detachable STRING
-- URL base of potential script -- URL base of potential script