From 11c9c8928e92b1a9a1369b0db66acf7be6352963 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Wed, 10 Feb 2016 17:07:48 +0900 Subject: [PATCH] Ensure consistency between the default URL and SSL/port settings --- modules/admin/admin.admin.controller.php | 21 +++++++++++++++++++-- modules/admin/lang/en.php | 3 +++ modules/admin/lang/ja.php | 4 ++++ modules/admin/lang/ko.php | 3 +++ 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/modules/admin/admin.admin.controller.php b/modules/admin/admin.admin.controller.php index 91f014c0b..f18f446cd 100644 --- a/modules/admin/admin.admin.controller.php +++ b/modules/admin/admin.admin.controller.php @@ -626,14 +626,31 @@ class adminAdminController extends admin { return new Object(-1, 'msg_invalid_default_url'); } - Rhymix\Framework\Config::set('url.default', $vars->default_url); // SSL and ports if ($vars->http_port == 80) $vars->http_port = null; if ($vars->https_port == 443) $vars->https_port = null; + $use_ssl = $vars->use_ssl ?: 'none'; + + // Check if all URL configuration is consistent + if ($use_ssl === 'always' && !preg_match('@^https://@', $default_url)) + { + return new Object(-1, 'msg_default_url_ssl_inconsistent'); + } + if ($vars->http_port && preg_match('@^http://@', $default_url) && parse_url($default_url, PHP_URL_PORT) != $vars->http_port) + { + return new Object(-1, 'msg_default_url_http_port_inconsistent'); + } + if ($vars->https_port && preg_match('@^https://@', $default_url) && parse_url($default_url, PHP_URL_PORT) != $vars->https_port) + { + return new Object(-1, 'msg_default_url_https_port_inconsistent'); + } + + // Set all URL configuration + Rhymix\Framework\Config::set('url.default', $default_url); Rhymix\Framework\Config::set('url.http_port', $vars->http_port ?: null); Rhymix\Framework\Config::set('url.https_port', $vars->https_port ?: null); - Rhymix\Framework\Config::set('url.ssl', $vars->use_ssl ?: 'none'); + Rhymix\Framework\Config::set('url.ssl', $use_ssl); // Other settings Rhymix\Framework\Config::set('use_mobile_view', $vars->use_mobile_view === 'Y'); diff --git a/modules/admin/lang/en.php b/modules/admin/lang/en.php index b71b7ea5b..0a746264e 100644 --- a/modules/admin/lang/en.php +++ b/modules/admin/lang/en.php @@ -87,6 +87,9 @@ $lang->use_gzip = 'gzip Compression'; $lang->delay_session = 'Delay session start'; $lang->about_delay_session = 'To improve performance when using a caching proxy server such as Varnish, do not issue sessions to visitors until they log in.
Selecting this option may cause view counts and visitor counts to become inaccurate.'; $lang->msg_invalid_default_url = 'The default URL is invalid.'; +$lang->msg_default_url_ssl_inconsistent = 'In order to use SSL always, the default URL must also begin with https://'; +$lang->msg_default_url_http_port_inconsistent = 'In order to change the HTTP port, the default URL must also include the port number.'; +$lang->msg_default_url_https_port_inconsistent = 'In order to change the HTTPS port, the default URL must also include the port number.'; $lang->sftp = 'Use SFTP'; $lang->ftp_get_list = 'Get List'; $lang->ftp_remove_info = 'Remove FTP Info.'; diff --git a/modules/admin/lang/ja.php b/modules/admin/lang/ja.php index 7d9edae8b..e7a686b32 100644 --- a/modules/admin/lang/ja.php +++ b/modules/admin/lang/ja.php @@ -86,6 +86,10 @@ $lang->about_minify_scripts = 'コアとすべてのモジュールに含まれ $lang->use_gzip = 'gzip 圧縮'; $lang->delay_session = 'セッションの開始を遅延'; $lang->about_delay_session = 'Varnishなどのプロキシキャッシュサーバ使用時のパフォーマンスを向上させるために、ログインしていないユーザーには、認証セッションを付与しません。
このオプションを選択した場合、訪問者数とヒット集計が正確でない場合があります。'; +$lang->msg_invalid_default_url = '基本URLが正しくありません。'; +$lang->msg_default_url_ssl_inconsistent = 'SSLを常に使用する場合、基本URLもhttps://で始まる必要があります。'; +$lang->msg_default_url_http_port_inconsistent = 'HTTPポートを変更する場合、基本URLも同じポートが含まれている必要があります。'; +$lang->msg_default_url_https_port_inconsistent = 'HTTPSポートを変更する場合、基本URLも同じポートが含まれている必要があります。'; $lang->sftp = 'SFTP使用'; $lang->ftp_get_list = 'ディレクトリを読み込む'; $lang->ftp_remove_info = 'FTP情報削除'; diff --git a/modules/admin/lang/ko.php b/modules/admin/lang/ko.php index e5133db73..cc0c838d0 100644 --- a/modules/admin/lang/ko.php +++ b/modules/admin/lang/ko.php @@ -87,6 +87,9 @@ $lang->use_gzip = 'gzip 압축'; $lang->delay_session = '세션 시작 지연'; $lang->about_delay_session = 'Varnish 등의 프록시 캐싱 서버 사용시 성능 개선을 위해, 로그인하지 않은 사용자에게는 인증 세션을 부여하지 않습니다.
이 옵션을 선택할 경우 방문자 수 및 조회수 집계가 정확하게 이루어지지 않을 수 있습니다.'; $lang->msg_invalid_default_url = '기본 URL이 올바르지 않습니다.'; +$lang->msg_default_url_ssl_inconsistent = 'SSL을 항상 사용하실 경우 기본 URL도 https://로 시작해야 합니다.'; +$lang->msg_default_url_http_port_inconsistent = 'HTTP 포트를 변경하실 경우 기본 URL에도 동일한 포트가 포함되어야 합니다.'; +$lang->msg_default_url_https_port_inconsistent = 'HTTPS 포트를 변경하실 경우 기본 URL에도 동일한 포트가 포함되어야 합니다.'; $lang->sftp = 'SFTP 사용'; $lang->msg_ftp_not_connected = 'FTP 서버에 접속할 수 없습니다. 주소와 포트를 확인해 주십시오.'; $lang->msg_ftp_invalid_auth_info = 'FTP 서버에 로그인할 수 없습니다. 아이디와 비밀번호를 확인해 주십시오.';