增加权限验证

This commit is contained in:
暮光:城中城
2018-12-02 21:12:04 +08:00
parent f3d2b4eeab
commit 67c584761d
70 changed files with 21137 additions and 366 deletions

View File

@@ -96,97 +96,46 @@ $(document).ready(function(){
paramSendToServer.header = JSON.stringify(requestHeaderStore);
//console.log(paramBodySend);
var beforSendTime = new Date().getTime();
if(serverStorage) {
paramSendToServer.url = postUrl;
paramSendToServer.method = options;
ajaxTemp("swagger-mg-ui/http/request", "post", "json", paramSendToServer, function(result){
//console.log(result);
setStorage('p-request-obj-' + docUrl, storeRequestParam);
var afterSendTime = new Date().getTime();
$("#httpRequestStatus").text(result.status);
$("#httpRequestTime").text((afterSendTime - beforSendTime) + "ms");
try {
var htmlStr = Formatjson.processObjectToHtmlPre(JSON.parse(result.data), 0, false, false, false, false);
$("#responseBodyJsonDiv").html(htmlStr);
} catch (e) {
$("#responseBodyJsonDiv").html("<iframe id='responseBodyJsonIframe'></iframe>");
setTimeout(function(){
$("#responseBodyJsonIframe").contents().find("body").html(result.data);
}, 300);
}
$("#tabResponseHeader table tbody").empty();
$("#tabResponseCookie table tbody").empty();
var headers = result.header||[];
for (var i = 0; i < headers.length; i++) {
var name = getNotEmptyStr(headers[i].name);
var value = getNotEmptyStr(headers[i].value);
$("#tabResponseHeader table tbody").append(
'<tr>'+'<td>'+name+'</td>' + '<td>'+value+'</td>'+'</tr>'
);
}
var cookies = result.cookie||[];
for (var i = 0; i < cookies.length; i++) {
var name = getNotEmptyStr(cookies[i].name);
var value = getNotEmptyStr(cookies[i].value);
$("#tabResponseCookie table tbody").append(
'<tr>'+'<td>'+name+'</td>' + '<td>'+value+'</td>'+'</tr>'
);
}
}, function(){
Toast.error("请求失败!");
}, function(){
$(".send-request .icon").addClass("hide");
});
} else {
$.ajax({
url : postUrl,
sync : false,
type : options, // 数据发送方式
dataType : "JSON", // 接受数据格式
data : paramBodySend,//requestParamForm,
contentType : "application/x-www-form-urlencoded; charset=UTF-8",
beforeSend : function(request) {
Object.keys(requestHeaderStore).forEach(function(key){
request.setRequestHeader(key, requestHeaderStore[key]);
});
},
success : function(data, status, xhr) {
},
complete : function(xhr) {
//console.log(xhr);
setStorage('p-request-obj-' + docUrl, storeRequestParam);
$(".send-request .icon").addClass("hide");
var afterSendTime = new Date().getTime();
$("#httpRequestStatus").text(xhr.status + "-" + xhr.statusText);
$("#httpRequestTime").text((afterSendTime - beforSendTime) + "ms");
try {
var htmlStr = Formatjson.processObjectToHtmlPre(JSON.parse(xhr.responseText), 0, false, false, false, false);
$("#responseBodyJsonDiv").html(htmlStr);
} catch (e) {
$("#responseBodyJsonDiv").html("<iframe id='responseBodyJsonIframe'></iframe>");
setTimeout(function(){
$("#responseBodyJsonIframe").contents().find("body").html(xhr.responseText);
}, 300);
}
var allHeaders = xhr.getAllResponseHeaders();
var headers = allHeaders.split("\r\n");
$("#tabResponseHeader table tbody").empty();
$("#tabResponseCookie table tbody").empty();
for (var i = 0; i < headers.length; i++) {
if(isEmpty(headers[i])){
continue;
}
var headerArr = headers[i].split(":");
$("#tabResponseHeader table tbody").append(
'<tr>'+'<td>'+headerArr[0]+'</td>' + '<td>'+headerArr[1]+'</td>'+'</tr>'
);
}
},
error : function(data) {
}
});
}
paramSendToServer.url = postUrl;
paramSendToServer.method = options;
ajaxTemp("swagger-mg-ui/http/request", "post", "json", paramSendToServer, function(result){
//console.log(result);
setStorage('p-request-obj-' + docUrl, storeRequestParam);
var afterSendTime = new Date().getTime();
$("#httpRequestStatus").text(result.status);
$("#httpRequestTime").text((afterSendTime - beforSendTime) + "ms");
try {
var htmlStr = Formatjson.processObjectToHtmlPre(JSON.parse(result.data), 0, false, false, false, false);
$("#responseBodyJsonDiv").html(htmlStr);
} catch (e) {
$("#responseBodyJsonDiv").html("<iframe id='responseBodyJsonIframe'></iframe>");
setTimeout(function(){
$("#responseBodyJsonIframe").contents().find("body").html(result.data);
}, 300);
}
$("#tabResponseHeader table tbody").empty();
$("#tabResponseCookie table tbody").empty();
var headers = result.header||[];
for (var i = 0; i < headers.length; i++) {
var name = getNotEmptyStr(headers[i].name);
var value = getNotEmptyStr(headers[i].value);
$("#tabResponseHeader table tbody").append(
'<tr>'+'<td>'+name+'</td>' + '<td>'+value+'</td>'+'</tr>'
);
}
var cookies = result.cookie||[];
for (var i = 0; i < cookies.length; i++) {
var name = getNotEmptyStr(cookies[i].name);
var value = getNotEmptyStr(cookies[i].value);
$("#tabResponseCookie table tbody").append(
'<tr>'+'<td>'+name+'</td>' + '<td>'+value+'</td>'+'</tr>'
);
}
}, function(){
Toast.error("请求失败!");
}, function(){
$(".send-request .icon").addClass("hide");
});
});
/**
* 输入框输入之后,如果是最后一行则在增加一行
@@ -259,10 +208,6 @@ $(document).ready(function(){
* 提交模拟返回值
*/
$("#simulationResultSubmit").click(function(){
if(!serverStorage) {
Toast.error("没有开启服务器端存储模拟返回是无效的");
return;
}
var value = $("#simulationResultText").val();
value = getNotEmptyStr(value, "");
var docUrl = $("#simulationResultUrl").text();
@@ -276,10 +221,6 @@ $(document).ready(function(){
* 获取模拟返回值
*/
$("#simulationResultGet").click(function(){
if(!serverStorage) {
Toast.error("没有开启服务器端存储模拟返回是无效的");
return;
}
var docUrl = $("#simulationResultUrl").text();
getStorage('p-simulation-response-' + docUrl, function(data){
$("#simulationResultText").val(data);

View File

@@ -13,8 +13,6 @@ var definitionsDataMap = new Map();
var treePathDataMap = new Map();
var globalLoadingMessager;
// 服务器端存储能力是否开启
var serverStorage = false;
// 树的下表
var projectTreeIdIndex = 1;
// 文档url加载的下标
@@ -60,57 +58,20 @@ $(document).ready(function(){
}, function(msg){
}, function(xhr){
showGlobalLoadingMessage('服务检查完成,请稍候...', true);
var serverStorage = false;
if(!isEmptyObject(xhr.responseJSON)) {
serverStorage = (xhr.responseJSON.errCode == 200);
}
if(!serverStorage) {
console.warn("服务器端存储能力配置有误,仅能使用浏览器存储,建议配置好服务器端存储能力" +
"\n请参考https://gitee.com/zyplayer/swagger-mg-ui-demo");
Toast.error("服务器端能力配置有误,新版本必须开启才能使用", 999999);
documentLoadFinish();
} else {
initUserSettings();
}
initUserSettings();
}
);
});
/**
* 增加文档
* @returns
*/
function addDocumentByUrl(fullUrl, isInSetting) {
// 获取原始的swagger的json对象
ajaxTemp(fullUrl, "get", "json", {}, function(json){
console.log(json);
if(isEmptyObject(json) || isEmpty(json.swagger)) {
Toast.error("获取文档错误,请检查:" + fullUrl);
return
}
// 拼接地址
json.fullUrl = fullUrl;
var v2Index = fullUrl.indexOf("/v2/api-docs");
if(v2Index > 0) {
var domainUrl = fullUrl.substring(0, v2Index + 1);
json.domainUrl = domainUrl;
}
documentJsonArr.push(json);// 加到所有文档
addHomePageDashboard(json, fullUrl);
createDefinitionsMapByJson(json);
if(userSettings.catalogShowType == 1) {
createTreeViewByTree(json);// url分成一层一层的展示
} else if(userSettings.catalogShowType == 2){
createTreeViewByTag(json);// tag方式整个url显示为一层
} else {
createTreeViewByTree(json);// url分成一层一层的展示
}
}, function(msg){
Toast.error("获取文档失败,请检查:" + fullUrl);
}, function(msg){
projectLoadingIndex--;
if(projectLoadingIndex == 0) {
documentLoadFinish();
}
});
}
/**
* 获取所有文档列表提供选择
* @returns
@@ -167,67 +128,6 @@ function addDocumentByService(choiseDocList) {
});
}
/**
* 增加文档
* @returns
*/
function loadSwaggerResources(fullUrl, isInSetting) {
// 获取原始的swagger的resources配置
ajaxTemp(fullUrl, "get", "json", {}, function(json){
//console.log(json);
if(isEmptyObject(json) || json.length <= 0) {
Toast.error("获取文档错误,请检查:" + fullUrl);
return;
}
if(!isInSetting) {
if(!haveString(userSettings.projects, fullUrl)) {
userSettings.projects.push(fullUrl);
}
storeUserSettings();
document.location.reload();
}
var removedProjects = userSettings.removedProjects;
if(removedProjects == null || removedProjects == undefined) {
removedProjects = [];
}
// 将http://192.168.5.172:8081/swagger-resources
// 变成http://192.168.5.172:8081/v2/api-docs
var locationHref = fullUrl.substring(0, fullUrl.lastIndexOf("/"));
for (var i = 0; i < json.length; i++) {
var tempLocation = locationHref + json[i].location;
// 如果是新加的,判断在删除的数组里面,则从删除数组中移除,新的开始
if(!isInSetting) {
for (var j = 0; j < removedProjects.length; j++) {
if(removedProjects[j] == tempLocation) {
removedProjects[j] = "";
}
}
}
// 不存在则添加
if(!haveString(swaggerApiDocsArr, tempLocation)) {
swaggerApiDocsArr.push(tempLocation);
}
}
// 去掉被删除的路劲
var removedProjectsNew = [];
for (var i = 0; i < removedProjects.length; i++) {
if(isNotEmpty(removedProjects[i])) {
removedProjectsNew.push(removedProjects[i]);
}
}
userSettings.removedProjects = removedProjectsNew;
storeUserSettings();
}, function(msg){
Toast.error("获取文档失败,请检查:" + fullUrl);
}, function(msg){
projectLoadingIndex--;
showGlobalLoadingMessage('剩余'+projectLoadingIndex+'份文档,请稍候...', true);
if(projectLoadingIndex == 0) {
loadSwaggerResourcesFinish();
}
});
}
/**
* 自由拖动改变左右框架的宽度
*/
@@ -424,18 +324,7 @@ $("#choiseDocBtn").click(function(){
}
allDocListObj.push(tempUrl);
});
if(serverStorage) {
addDocumentByService(choiseDocList);
} else {
if(choiseDocListObj.length <= 0) {
choiseDocListObj = allDocListObj;
}
// 请求url获取文档配置增加树形菜单等
projectLoadingIndex = choiseDocListObj.length;
for (var i = 0; i < choiseDocListObj.length; i++) {
addDocumentByUrl(choiseDocListObj[i]);
}
}
addDocumentByService(choiseDocList);
$('#choiseDocModal').modal('hide');
});
@@ -448,16 +337,11 @@ $("#addNewDocumentBtn").click(function(){
Toast.error("地址不可以为空");return;
}
projectLoadingIndex = 1;
if(serverStorage) {
ajaxTemp("swagger-mg-ui/document/addSwaggerResources", "post", "json", {resourcesUrl: addNewDocumentInput}, function(json){
if(validateResult(json)) {
document.location.reload();
}
});
} else {
loadSwaggerResources(addNewDocumentInput, false);
$('#addNewDocumentModal').modal('hide');
}
ajaxTemp("swagger-mg-ui/document/addSwaggerResources", "post", "json", {resourcesUrl: addNewDocumentInput}, function(json){
if(validateResult(json)) {
document.location.reload();
}
});
});
/**
@@ -1104,23 +988,11 @@ function documentLoadFinish() {
// 被移除
afterPanelRemoved:function(id){
//console.log(id);
if(serverStorage) {
ajaxTemp("swagger-mg-ui/document/deleteSwaggerDoc", "post", "json", {docUrl: id}, function(json){
if(validateResult(json)) {
document.location.reload();
}
});
} else {
var tempProjects = [], nowIndex = 0;
for ( var i = 0; i < userSettings.projects.length; i++){
if(userSettings.projects[i] != id) {
tempProjects[nowIndex++] = userSettings.projects[i];
}
ajaxTemp("swagger-mg-ui/document/deleteSwaggerDoc", "post", "json", {docUrl: id}, function(json){
if(validateResult(json)) {
document.location.reload();
}
userSettings.projects = tempProjects;
userSettings.removedProjects.push(id);
storeUserSettings();
}
});
},
});
}
@@ -1136,9 +1008,7 @@ function updateUserSettingsUi() {
$("input[name='showParamType'][value='"+userSettings.showParamType+"']").prop("checked",true);
$("input[name='onlyUseLastParam'][value='"+userSettings.onlyUseLastParam+"']").prop("checked",true);
$("input[name='autoFillParam'][value='"+userSettings.autoFillParam+"']").prop("checked",true);
if(!serverStorage) {
$(".local-storage").show();// 服务器存储了就不用管理了
}
//$(".local-storage").show();// 服务器存储了就不用管理了
}
/**
@@ -1181,65 +1051,45 @@ function storeUserSettings() {
* 获取数据,异步的操作
*/
function getStorage(key, success, fail) {
if(serverStorage) {
ajaxTemp("swagger-mg-ui/storage/data", "get", "json", {key: key}, function(json){
if(json.errCode == 200) {
if(typeof success == "function") {
var result = deserialize(json.data);
success(result);
}
} else {
if(typeof fail == "function") {
fail();
}
ajaxTemp("swagger-mg-ui/storage/data", "get", "json", {key: key}, function(json){
if(json.errCode == 200) {
if(typeof success == "function") {
var result = deserialize(json.data);
success(result);
}
}, function(msg){
} else {
if(typeof fail == "function") {
fail();
}
});
} else {
var value = $.zui.store.get(key);
if(typeof success == "function") {
success(value);
}
}
}, function(msg){
if(typeof fail == "function") {
fail();
}
});
}
/**
* 存储数据,异步的操作
*/
function setStorage(key, value, success, fail) {
if(serverStorage) {
value = $.zui.store.serialize(value);
ajaxTemp("swagger-mg-ui/storage/data", "post", "json", {key: key, value: value}, function(json){
if(json.errCode == 200) {
if(typeof success == "function") {
success();
}
} else {
if(typeof fail == "function") {
fail(getNotEmptyStr(json.errMsg));
}
value = $.zui.store.serialize(value);
ajaxTemp("swagger-mg-ui/storage/data", "post", "json", {key: key, value: value}, function(json){
if(json.errCode == 200) {
if(typeof success == "function") {
success();
}
}, function(msg){
} else {
if(typeof fail == "function") {
fail("");
fail(getNotEmptyStr(json.errMsg));
}
console.log("存储数据到服务器失败,请检查");
});
} else {
$.zui.store.set(key, value);
}
}
/**
* 初始化用户的设置--通过服务器数据
* @param
* @returns
*/
function initUserSettingsByServer() {
}
}, function(msg){
if(typeof fail == "function") {
fail("");
}
console.log("存储数据到服务器失败,请检查");
});
}
/**
@@ -1257,25 +1107,7 @@ function initUserSettings() {
updateTreeShowType();
updateUserSettingsUi();
// 增加文档
if(serverStorage) {
getDocumentListByService();
} else {
var projects = userSettings.projects;
if(isEmptyObject(projects) || projects.length <= 0) {
// 没有文档时默认本项目的文档
userSettings.projects = [];
var locationHref = document.location.href;
locationHref = locationHref.substring(0, locationHref.lastIndexOf("/"));
projectLoadingIndex = 1;
loadSwaggerResources(locationHref + "/swagger-resources", false);
} else {
projectLoadingIndex = projects.length;
for ( var i = 0; i < projects.length; i++){
// 请求url获取文档配置增加树形菜单等
loadSwaggerResources(projects[i], true);
}
}
}
getDocumentListByService();
});
}
@@ -1286,24 +1118,3 @@ function showGlobalLoadingMessage(text, loading) {
globalLoadingMessager.$.find(".messager-content").html(text);
}
function loadSwaggerResourcesFinish() {
projectLoadingIndex = swaggerApiDocsArr.length;
if (projectLoadingIndex <= 0) {
documentLoadFinish();
} else {
if(swaggerApiDocsArr.length > 1) {
showGlobalLoadingMessage('等待选择需展示的文档,请选择...', true);
for (var i = 0; i < swaggerApiDocsArr.length; i++) {
var item = swaggerApiDocsArr[i];
$("#choiseDocListUl").append('<li value="'+item+'">'+item+'</li>');
}
$('#choiseDocModal').modal({moveable:true, backdrop:'static', keyboard: false});
} else {
for ( var i = 0; i < swaggerApiDocsArr.length; i++){
// 请求url获取文档配置增加树形菜单等
addDocumentByUrl(swaggerApiDocsArr[i]);
}
}
swaggerApiDocsArr = [];
}
}