diff --git a/.gitignore b/.gitignore
index 35fe21fae..3f6a5eb97 100644
--- a/.gitignore
+++ b/.gitignore
@@ -174,3 +174,4 @@ plugins/file_search
debug.out
+data/unauthorized_status.pl
diff --git a/class/core/config_api.py b/class/core/config_api.py
index 97d4713a0..4817f5970 100755
--- a/class/core/config_api.py
+++ b/class/core/config_api.py
@@ -647,6 +647,20 @@ class config_api:
else:
return False, ''
+ def setStatusCodeApi(self):
+ status_code = request.form.get('status_code', '').strip()
+ if re.match("^\d+$", status_code):
+ status_code = int(status_code)
+ if status_code != 0:
+ if status_code < 100 or status_code > 999:
+ return mw.returnJson(False, '状态码范围错误!')
+ else:
+ return mw.returnJson(False, '状态码范围错误!')
+
+ mw.writeFile('data/unauthorized_status.pl', str(status_code))
+ mw.writeLog('面板设置', '将未授权响应状态码设置为:{}'.format(status_code))
+ return mw.returnJson(True, '设置成功!')
+
def getPanelTokenApi(self):
api_file = self.__api_addr
tmp = mw.readFile(api_file)
@@ -713,6 +727,31 @@ class config_api:
mw.writeFile(api_file, json.dumps(data))
return mw.returnJson(True, '保存成功!')
+ def renderUnauthorizedStatus(self, data):
+ cfg_unauth_status = 'data/unauthorized_status.pl'
+ if os.path.exists(cfg_unauth_status):
+ status_code = mw.readFile(cfg_unauth_status)
+ data['status_code'] = status_code
+ data['status_code_msg'] = status_code
+ if status_code == '0':
+ data['status_code_msg'] = "默认-安全入口错误提示"
+ elif status_code == '400':
+ data['status_code_msg'] = "400-客户端请求错误"
+ elif status_code == '401':
+ data['status_code_msg'] = "401-未授权访问"
+ elif status_code == '403':
+ data['status_code_msg'] = "403-拒绝访问"
+ elif status_code == '404':
+ data['status_code_msg'] = "404-页面不存在"
+ elif status_code == '408':
+ data['status_code_msg'] = "408-客户端超时"
+ elif status_code == '416':
+ data['status_code_msg'] = "416-无效的请求"
+ else:
+ data['status_code'] = '0'
+ data['status_code_msg'] = "默认-安全入口错误提示"
+ return data
+
def get(self):
data = {}
@@ -765,6 +804,8 @@ class config_api:
else:
data['bind_domain'] = ''
+ data = self.renderUnauthorizedStatus(data)
+
api_token = self.__api_addr
if os.path.exists(api_token):
bac = mw.readFile(api_token)
diff --git a/route/__init__.py b/route/__init__.py
index ce8b0f2ae..956f4a2c5 100755
--- a/route/__init__.py
+++ b/route/__init__.py
@@ -386,7 +386,10 @@ def get_admin_safe():
def admin_safe_path(path, req, data, pageFile):
if path != req and not isLogined():
- return render_template('path.html')
+ if data['status_code'] == '0':
+ return render_template('path.html')
+ else:
+ return Response(status=int(data['status_code']))
if not isLogined():
return render_template('login.html', data=data)
diff --git a/route/static/app/config.js b/route/static/app/config.js
index d402adf3e..83a8a8c67 100755
--- a/route/static/app/config.js
+++ b/route/static/app/config.js
@@ -550,6 +550,61 @@ function setTempAccessReq(page){
},'json');
}
+function setStatusCode(o){
+ var code = $(o).data('code');
+ layer.open({
+ type: 1,
+ area: ['420px', '220px'],
+ title: "设置未认证时的响应状态",
+ closeBtn: 1,
+ shift: 5,
+ btn:['提交','关闭'],
+ shadeClose: false,
+ content: '
',
+ success:function(){
+ var msg_list = [
+ {'code':'0','msg':'默认-安全入口错误提示'},
+ {'code':'403','msg':'403-拒绝访问'},
+ {'code':'404','msg':'404-页面不存在'},
+ {'code':'416','msg':'416-无效的请求'},
+ {'code':'408','msg':'408-客户端超时'},
+ {'code':'400','msg':'400-客户端请求错误'},
+ {'code':'401','msg':'401-未授权访问'},
+ ];
+
+ var tbody = '';
+ for(i in msg_list){
+ if (msg_list[i]['code'] == code){
+ tbody += '';
+ } else{
+ tbody += '';
+ }
+
+ }
+ $('select[name="status_code"]').append(tbody);
+ },
+ yes:function(index){
+ var loadT = layer.msg("正在设置未认证时的响应状态", { icon: 16, time: 0, shade: [0.3, '#000'] });
+ var status_code = $('select[name="status_code"]').val();
+ $.post('/config/set_status_code', { status_code: status_code }, function (rdata) {
+ showMsg(rdata.msg, function(){
+ layer.close(index);
+ layer.close(loadT);
+ location.reload();
+ },{ icon: rdata.status ? 1 : 2 }, 2000);
+ },'json');
+ }
+ });
+}
+
function setTempAccess(){
layer.open({
area: ['700px', '250px'],
diff --git a/route/templates/default/config.html b/route/templates/default/config.html
index 3ae0615a2..7429ff58a 100755
--- a/route/templates/default/config.html
+++ b/route/templates/default/config.html
@@ -1,155 +1,152 @@
{% extends "layout.html" %}
{% block content %}