增加权限和登录跳转

This commit is contained in:
暮光:城中城
2019-06-12 22:28:38 +08:00
parent f9d53da7fe
commit 494149fad2
41 changed files with 228 additions and 111 deletions

View File

@@ -14,6 +14,8 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<fastjson.version>1.2.53</fastjson.version> <fastjson.version>1.2.53</fastjson.version>
</properties> </properties>

View File

@@ -1,4 +1,4 @@
package com.zyplayer.doc.data.aspect; package com.zyplayer.doc.core.annotation;
import java.lang.annotation.*; import java.lang.annotation.*;

View File

@@ -0,0 +1,20 @@
package com.zyplayer.doc.core.util;
import javax.servlet.http.HttpServletRequest;
public class ThreadLocalUtil {
private static ThreadLocal<HttpServletRequest> request = new ThreadLocal<>();
public static void setHttpServletRequest(HttpServletRequest request) {
ThreadLocalUtil.request.set(request);
}
public static HttpServletRequest getHttpServletRequest() {
return ThreadLocalUtil.request.get();
}
public static void clean() {
ThreadLocalUtil.request.remove();
}
}

View File

@@ -1,9 +1,11 @@
package com.zyplayer.doc.data.aspect; package com.zyplayer.doc.data.aspect;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.core.json.DocResponseJson; import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.core.json.HttpConst; import com.zyplayer.doc.core.json.HttpConst;
import com.zyplayer.doc.core.json.ResponseJson; import com.zyplayer.doc.core.json.ResponseJson;
import com.zyplayer.doc.core.util.ThreadLocalUtil;
import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.service.manage.UserAuthService; import com.zyplayer.doc.data.service.manage.UserAuthService;
@@ -18,6 +20,7 @@ import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Map; import java.util.Map;
@@ -28,7 +31,7 @@ public class AuthAspect {
@Resource @Resource
private UserAuthService userAuthService; private UserAuthService userAuthService;
@Around(value = "@annotation(AuthMan) || @within(AuthMan)") @Around(value = "@annotation(com.zyplayer.doc.core.annotation.AuthMan) || @within(com.zyplayer.doc.core.annotation.AuthMan)")
public Object authController(ProceedingJoinPoint pjp) throws Throwable { public Object authController(ProceedingJoinPoint pjp) throws Throwable {
AuthMan authMan = BeanUtil.getAnnotation(pjp, AuthMan.class); AuthMan authMan = BeanUtil.getAnnotation(pjp, AuthMan.class);
ResponseBody responseBody = BeanUtil.getAnnotation(pjp, ResponseBody.class); ResponseBody responseBody = BeanUtil.getAnnotation(pjp, ResponseBody.class);
@@ -42,7 +45,9 @@ public class AuthAspect {
if (isResponseBody) { if (isResponseBody) {
return DocResponseJson.failure(HttpConst.TOKEN_TIMEOUT, reason); return DocResponseJson.failure(HttpConst.TOKEN_TIMEOUT, reason);
} else if (returnType.isAssignableFrom(ModelAndView.class)) { } else if (returnType.isAssignableFrom(ModelAndView.class)) {
return new ModelAndView("redirect:/static/manage/login.html"); HttpServletRequest request = ThreadLocalUtil.getHttpServletRequest();
StringBuffer requestURL = request.getRequestURL();
return new ModelAndView("redirect:/static/manage/login.html?returnUrl=" + requestURL);
} else if (returnType.isAssignableFrom(Map.class)) { } else if (returnType.isAssignableFrom(Map.class)) {
return Maps.newHashMap(); return Maps.newHashMap();
} }

View File

@@ -71,7 +71,13 @@
<artifactId>commons-lang</artifactId> <artifactId>commons-lang</artifactId>
<version>2.6</version> <version>2.6</version>
</dependency> </dependency>
</dependencies> <dependency>
<groupId>com.zyplayer</groupId>
<artifactId>zyplayer-doc-core</artifactId>
<version>1.0.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

View File

@@ -1,16 +1,20 @@
package com.zyplayer.doc.db.controller; package com.zyplayer.doc.db.controller;
import java.io.File; import cn.hutool.core.io.IoUtil;
import java.util.HashMap; import cn.hutool.core.util.ZipUtil;
import java.util.LinkedList; import com.alibaba.fastjson.JSON;
import java.util.List; import com.zyplayer.doc.core.annotation.AuthMan;
import java.util.Map; import com.zyplayer.doc.db.controller.vo.DatabaseExportVo;
import java.util.Optional; import com.zyplayer.doc.db.controller.vo.TableColumnVo;
import java.util.Set; import com.zyplayer.doc.db.controller.vo.TableColumnVo.TableInfoVo;
import java.util.stream.Collectors; import com.zyplayer.doc.db.framework.db.bean.DatabaseFactoryBean;
import com.zyplayer.doc.db.framework.db.bean.DatabaseFactoryBean.DatabaseProduct;
import javax.servlet.http.HttpServletResponse; import com.zyplayer.doc.db.framework.db.bean.DatabaseRegistrationBean;
import com.zyplayer.doc.db.framework.db.dto.*;
import com.zyplayer.doc.db.framework.db.mapper.base.BaseMapper;
import com.zyplayer.doc.db.framework.db.mapper.mysql.MysqlMapper;
import com.zyplayer.doc.db.framework.json.DocDbResponseJson;
import com.zyplayer.doc.db.framework.json.ResponseJson;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -19,26 +23,10 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON; import javax.servlet.http.HttpServletResponse;
import com.zyplayer.doc.db.controller.vo.DatabaseExportVo; import java.io.File;
import com.zyplayer.doc.db.controller.vo.TableColumnVo; import java.util.*;
import com.zyplayer.doc.db.controller.vo.TableColumnVo.TableInfoVo; import java.util.stream.Collectors;
import com.zyplayer.doc.db.framework.db.bean.DatabaseFactoryBean;
import com.zyplayer.doc.db.framework.db.bean.DatabaseFactoryBean.DatabaseProduct;
import com.zyplayer.doc.db.framework.db.bean.DatabaseRegistrationBean;
import com.zyplayer.doc.db.framework.db.dto.ColumnInfoDto;
import com.zyplayer.doc.db.framework.db.dto.DatabaseInfoDto;
import com.zyplayer.doc.db.framework.db.dto.QueryTableColumnDescDto;
import com.zyplayer.doc.db.framework.db.dto.TableColumnDescDto;
import com.zyplayer.doc.db.framework.db.dto.TableDescDto;
import com.zyplayer.doc.db.framework.db.dto.TableInfoDto;
import com.zyplayer.doc.db.framework.db.mapper.base.BaseMapper;
import com.zyplayer.doc.db.framework.db.mapper.mysql.MysqlMapper;
import com.zyplayer.doc.db.framework.json.DocDbResponseJson;
import com.zyplayer.doc.db.framework.json.ResponseJson;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.ZipUtil;
/** /**
* 文档控制器 * 文档控制器
@@ -46,6 +34,7 @@ import cn.hutool.core.util.ZipUtil;
* @author 暮光:城中城 * @author 暮光:城中城
* @since 2018年8月8日 * @since 2018年8月8日
*/ */
@AuthMan
@RestController @RestController
@RequestMapping("/zyplayer-doc-db/doc-db") @RequestMapping("/zyplayer-doc-db/doc-db")
public class DatabaseDocController { public class DatabaseDocController {

View File

@@ -27,8 +27,11 @@ function deserialize(value) {
} }
function validateResult(result) { function validateResult(result) {
if(result.errCode == 200) { if (result.errCode == 200) {
return true; return true;
} else if (result.errCode == 400) {
var href = encodeURI(window.location.href);
window.location = "static/manage/login.html?returnUrl=" + href;
} else { } else {
Toast.error(result.errMsg); Toast.error(result.errMsg);
} }
@@ -147,7 +150,10 @@ function getObjectFirstAttributeIfOnly(data) {
function postService(url, param, success=function(){}, complete=function(){}){ function postService(url, param, success=function(){}, complete=function(){}){
ajaxTemp(url, "POST", "JSON", param, function(result){ ajaxTemp(url, "POST", "JSON", param, function(result){
if(result.errCode != "200"){ if (result.errCode == 400) {
var href = encodeURI(window.location.href);
window.location = "static/manage/login.html?returnUrl=" + href;
} else if (result.errCode != "200") {
Toast.warn(result.errMsg); Toast.warn(result.errMsg);
} else { } else {
success(result); success(result);
@@ -178,8 +184,13 @@ function ajaxTemp(url, dataSentType, dataReceiveType, paramsStr, successFunction
data : eval(paramsStr), data : eval(paramsStr),
contentType : "application/x-www-form-urlencoded; charset=UTF-8", contentType : "application/x-www-form-urlencoded; charset=UTF-8",
success : function(msg) { success : function(msg) {
if(typeof successFunction == "function") { if (msg.errCode == 400) {
successFunction(msg,id); var href = encodeURI(window.location.href);
window.location = "static/manage/login.html?returnUrl=" + href;
} else {
if (typeof successFunction == "function") {
successFunction(msg, id);
}
} }
}, },
beforeSend : function() { beforeSend : function() {

View File

@@ -27,8 +27,11 @@ function deserialize(value) {
} }
function validateResult(result) { function validateResult(result) {
if(result.errCode == 200) { if (result.errCode == 200) {
return true; return true;
} else if (result.errCode == 400) {
var href = encodeURI(window.location.href);
window.location = "static/manage/login.html?returnUrl=" + href;
} else { } else {
Toast.error(result.errMsg); Toast.error(result.errMsg);
} }
@@ -147,7 +150,10 @@ function getObjectFirstAttributeIfOnly(data) {
function postService(url, param, success=function(){}, complete=function(){}){ function postService(url, param, success=function(){}, complete=function(){}){
ajaxTemp(url, "POST", "JSON", param, function(result){ ajaxTemp(url, "POST", "JSON", param, function(result){
if(result.errCode != "200"){ if (result.errCode == 400) {
var href = encodeURI(window.location.href);
window.location = "static/manage/login.html?returnUrl=" + href;
} else if (result.errCode != "200") {
Toast.warn(result.errMsg); Toast.warn(result.errMsg);
} else { } else {
success(result); success(result);
@@ -178,8 +184,13 @@ function ajaxTemp(url, dataSentType, dataReceiveType, paramsStr, successFunction
data : eval(paramsStr), data : eval(paramsStr),
contentType : "application/x-www-form-urlencoded; charset=UTF-8", contentType : "application/x-www-form-urlencoded; charset=UTF-8",
success : function(msg) { success : function(msg) {
if(typeof successFunction == "function") { if (msg.errCode == 400) {
successFunction(msg,id); var href = encodeURI(window.location.href);
window.location = "static/manage/login.html?returnUrl=" + href;
} else {
if (typeof successFunction == "function") {
successFunction(msg, id);
}
} }
}, },
beforeSend : function() { beforeSend : function() {

View File

@@ -2,6 +2,7 @@ package com.zyplayer.doc.dubbo.controller;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.core.json.DocResponseJson; import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.dubbo.controller.param.DubboRequestParam; import com.zyplayer.doc.dubbo.controller.param.DubboRequestParam;
import com.zyplayer.doc.dubbo.controller.vo.DubboInfoVo; import com.zyplayer.doc.dubbo.controller.vo.DubboInfoVo;
@@ -47,6 +48,7 @@ import java.util.stream.Collectors;
* @author 暮光:城中城 * @author 暮光:城中城
* @since 2019年2月10日 * @since 2019年2月10日
*/ */
@AuthMan
@RestController @RestController
@RequestMapping("/zyplayer-doc-dubbo/doc-dubbo") @RequestMapping("/zyplayer-doc-dubbo/doc-dubbo")
public class DubboController { public class DubboController {

View File

@@ -27,8 +27,11 @@ function deserialize(value) {
} }
function validateResult(result) { function validateResult(result) {
if(result.errCode == 200) { if (result.errCode == 200) {
return true; return true;
} else if (result.errCode == 400) {
var href = encodeURI(window.location.href);
window.location = "static/manage/login.html?returnUrl=" + href;
} else { } else {
Toast.error(result.errMsg); Toast.error(result.errMsg);
} }
@@ -193,8 +196,13 @@ function ajaxTemp(url, dataSentType, dataReceiveType, paramsStr, successFunction
data : eval(paramsStr), data : eval(paramsStr),
contentType : "application/x-www-form-urlencoded; charset=UTF-8", contentType : "application/x-www-form-urlencoded; charset=UTF-8",
success : function(msg) { success : function(msg) {
if(typeof successFunction == "function") { if (msg.errCode == 400) {
successFunction(msg,id); var href = encodeURI(window.location.href);
window.location = "static/manage/login.html?returnUrl=" + href;
} else {
if (typeof successFunction == "function") {
successFunction(msg, id);
}
} }
}, },
beforeSend : function() { beforeSend : function() {

View File

@@ -3,9 +3,8 @@ package com.zyplayer.doc.grpc.controller;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.google.protobuf.ByteString; import com.google.protobuf.ByteString;
import com.nxest.grpc.client.GrpcChannelFactory;
import com.nxest.grpc.server.GrpcService;
import com.zyplayer.doc.core.exception.ConfirmException; import com.zyplayer.doc.core.exception.ConfirmException;
import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.core.json.DocResponseJson; import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.grpc.controller.po.ColumnInfo; import com.zyplayer.doc.grpc.controller.po.ColumnInfo;
import com.zyplayer.doc.grpc.controller.po.GrpcDocInfo; import com.zyplayer.doc.grpc.controller.po.GrpcDocInfo;
@@ -26,8 +25,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.HashMap; import java.util.HashMap;
@@ -43,6 +40,7 @@ import java.util.regex.Pattern;
* @author 暮光:城中城 * @author 暮光:城中城
* @since 2019年3月31日 * @since 2019年3月31日
*/ */
@AuthMan
@RestController @RestController
@RequestMapping("/zyplayer-doc-grpc") @RequestMapping("/zyplayer-doc-grpc")
public class GrpcDocController { public class GrpcDocController {

View File

@@ -27,8 +27,11 @@ function deserialize(value) {
} }
function validateResult(result) { function validateResult(result) {
if(result.errCode == 200) { if (result.errCode == 200) {
return true; return true;
} else if (result.errCode == 400) {
var href = encodeURI(window.location.href);
window.location = "static/manage/login.html?returnUrl=" + href;
} else { } else {
Toast.error(result.errMsg); Toast.error(result.errMsg);
} }
@@ -193,8 +196,13 @@ function ajaxTemp(url, dataSentType, dataReceiveType, paramsStr, successFunction
data : eval(paramsStr), data : eval(paramsStr),
contentType : "application/x-www-form-urlencoded; charset=UTF-8", contentType : "application/x-www-form-urlencoded; charset=UTF-8",
success : function(msg) { success : function(msg) {
if(typeof successFunction == "function") { if (msg.errCode == 400) {
successFunction(msg,id); var href = encodeURI(window.location.href);
window.location = "static/manage/login.html?returnUrl=" + href;
} else {
if (typeof successFunction == "function") {
successFunction(msg, id);
}
} }
}, },
beforeSend : function() { beforeSend : function() {

View File

@@ -1,5 +1,6 @@
package com.zyplayer.doc.manage.framework.interceptor; package com.zyplayer.doc.manage.framework.interceptor;
import com.zyplayer.doc.core.util.ThreadLocalUtil;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -8,6 +9,7 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.Optional;
/** /**
* 记录当前请求信息 * 记录当前请求信息
@@ -23,9 +25,13 @@ public class RequestInfoInterceptor implements HandlerInterceptor {
*/ */
@Override @Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object arg2, Exception arg3) { public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object arg2, Exception arg3) {
long startTime = startTimeThreadLocal.get(); Long startTime = startTimeThreadLocal.get();
startTime = Optional.ofNullable(startTime).orElse(System.currentTimeMillis());
long totalTime = System.currentTimeMillis() - startTime;// 结束时间 long totalTime = System.currentTimeMillis() - startTime;// 结束时间
logger.info("总耗时:{}msURI{}", totalTime, request.getRequestURI()); logger.info("总耗时:{}msURI{}", totalTime, request.getRequestURI());
ThreadLocalUtil.clean();
startTimeThreadLocal.remove();
} }
@Override @Override
@@ -38,6 +44,7 @@ public class RequestInfoInterceptor implements HandlerInterceptor {
@Override @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object obj) { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object obj) {
startTimeThreadLocal.set(System.currentTimeMillis()); startTimeThreadLocal.set(System.currentTimeMillis());
ThreadLocalUtil.setHttpServletRequest(request);
return true; return true;
} }

View File

@@ -2,7 +2,7 @@ package com.zyplayer.doc.manage.web.manage;
import com.zyplayer.doc.core.json.DocResponseJson; import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.core.json.ResponseJson; import com.zyplayer.doc.core.json.ResponseJson;
import com.zyplayer.doc.data.aspect.AuthMan; import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.repository.manage.entity.AuthInfo; import com.zyplayer.doc.data.repository.manage.entity.AuthInfo;

View File

@@ -1,6 +1,6 @@
package com.zyplayer.doc.manage.web.manage; package com.zyplayer.doc.manage.web.manage;
import com.zyplayer.doc.data.aspect.AuthMan; import com.zyplayer.doc.core.annotation.AuthMan;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
@@ -12,6 +12,11 @@ import org.springframework.web.servlet.ModelAndView;
@Controller @Controller
public class DocSystemController { public class DocSystemController {
@GetMapping("/")
public ModelAndView home() {
return new ModelAndView("redirect:/static/manage/home.html");
}
@GetMapping("/doc-wiki") @GetMapping("/doc-wiki")
public ModelAndView wiki() { public ModelAndView wiki() {
return new ModelAndView("/doc-wiki-v2.html"); return new ModelAndView("/doc-wiki-v2.html");

View File

@@ -3,7 +3,7 @@ package com.zyplayer.doc.manage.web.manage;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zyplayer.doc.core.json.DocResponseJson; import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.core.json.ResponseJson; import com.zyplayer.doc.core.json.ResponseJson;
import com.zyplayer.doc.data.aspect.AuthMan; import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.repository.manage.entity.AuthInfo; import com.zyplayer.doc.data.repository.manage.entity.AuthInfo;

View File

@@ -3,7 +3,7 @@ package com.zyplayer.doc.manage.web.manage;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zyplayer.doc.core.json.DocResponseJson; import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.core.json.ResponseJson; import com.zyplayer.doc.core.json.ResponseJson;
import com.zyplayer.doc.data.aspect.AuthMan; import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.repository.manage.entity.AuthInfo; import com.zyplayer.doc.data.repository.manage.entity.AuthInfo;

View File

@@ -46,9 +46,9 @@ zyplayer:
dubbo: dubbo:
# 优先使用zookeeper未配置时找nacos的配置 # 优先使用zookeeper未配置时找nacos的配置
zookeeper: zookeeper:
url: 127.0.0.1:2181 url: 10.248.224.18:2181
# 服务参数那些信息的服务地址dubbo7.0新特性 # 服务参数那些信息的服务地址dubbo7.0新特性
metadata-url: 127.0.0.1:2181 # metadata-url: 127.0.0.1:2181
nacos: nacos:
# url: http://127.0.0.1:8848/nacos # url: http://127.0.0.1:8848/nacos
# 服务名称,多个使用 ; 分割nacos没办法获取所有的服务列表所以需要指定 # 服务名称,多个使用 ; 分割nacos没办法获取所有的服务列表所以需要指定

View File

@@ -35,8 +35,11 @@ function deserialize(value) {
} }
function validateResult(result) { function validateResult(result) {
if(result.errCode == 200) { if (result.errCode == 200) {
return true; return true;
} else if (result.errCode == 400) {
var href = encodeURI(window.location.href);
window.location = "static/manage/login.html?returnUrl=" + href;
} else { } else {
alert(result.errMsg); alert(result.errMsg);
} }
@@ -222,8 +225,13 @@ function ajaxTemp(url, dataSentType, dataReceiveType, paramsStr, successFunction
data : eval(paramsStr), data : eval(paramsStr),
contentType : "application/x-www-form-urlencoded; charset=UTF-8", contentType : "application/x-www-form-urlencoded; charset=UTF-8",
success : function(msg) { success : function(msg) {
if(typeof successFunction == "function") { if (msg.errCode == 400) {
successFunction(msg,id); var href = encodeURI(window.location.href);
window.location = "static/manage/login.html?returnUrl=" + href;
} else {
if (typeof successFunction == "function") {
successFunction(msg, id);
}
} }
}, },
beforeSend : function() { beforeSend : function() {

View File

@@ -45,10 +45,10 @@
<li> <li>
<a href="#"><i class="icon icon-window-alt"></i> 文档查看页面</a> <a href="#"><i class="icon icon-window-alt"></i> 文档查看页面</a>
<ul> <ul>
<li><a target="_blank" href="../../doc-wiki.html"><i class="icon-book"></i> wiki文档</a></li> <li><a target="_blank" href="../../doc-wiki"><i class="icon-book"></i> wiki文档</a></li>
<li><a target="_blank" href="../../doc-dubbo.html"><i class="icon-node"></i> dubbo文档</a></li> <li><a target="_blank" href="../../doc-dubbo"><i class="icon-node"></i> dubbo文档</a></li>
<li><a target="_blank" href="../../doc-db.html"><i class="icon-database"></i> 数据库文档</a></li> <li><a target="_blank" href="../../doc-db"><i class="icon-database"></i> 数据库文档</a></li>
<li><a target="_blank" href="../../document.html"><i class="icon-file-code"></i> zyplayer-doc-swagger</a></li> <li><a target="_blank" href="../../doc-swagger"><i class="icon-file-code"></i> zyplayer-doc-swagger</a></li>
</ul> </ul>
</li> </li>
<li> <li>

View File

@@ -2,6 +2,7 @@ package com.zyplayer.doc.swagger.controller;
import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.core.json.DocResponseJson; import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.core.json.ResponseJson; import com.zyplayer.doc.core.json.ResponseJson;
import com.zyplayer.doc.swagger.controller.vo.LocationListVo; import com.zyplayer.doc.swagger.controller.vo.LocationListVo;
@@ -33,6 +34,7 @@ import java.util.stream.Collectors;
* @author 暮光:城中城 * @author 暮光:城中城
* @since 2018年8月21日 * @since 2018年8月21日
*/ */
@AuthMan
@RestController @RestController
@RequestMapping("/swagger-mg-ui/document") @RequestMapping("/swagger-mg-ui/document")
public class MgDocumentController { public class MgDocumentController {

View File

@@ -1,16 +1,16 @@
package com.zyplayer.doc.swagger.controller; package com.zyplayer.doc.swagger.controller;
import java.util.List; import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.swagger.framework.service.MgStorage;
import com.zyplayer.doc.swagger.framework.service.MgStorageService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.zyplayer.doc.core.json.DocResponseJson; import java.util.List;
import com.zyplayer.doc.swagger.framework.service.MgStorage;
import com.zyplayer.doc.swagger.framework.service.MgStorageService;
/** /**
* 后台存储服务控制器 * 后台存储服务控制器
@@ -18,6 +18,7 @@ import com.zyplayer.doc.swagger.framework.service.MgStorageService;
* @author 暮光:城中城 * @author 暮光:城中城
* @since 2018年8月21日 * @since 2018年8月21日
*/ */
@AuthMan
@RestController @RestController
@RequestMapping("/swagger-mg-ui/storage") @RequestMapping("/swagger-mg-ui/storage")
public class MgStorageController { public class MgStorageController {

View File

@@ -1,6 +1,7 @@
package com.zyplayer.doc.swagger.controller; package com.zyplayer.doc.swagger.controller;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.swagger.controller.vo.SwaggerResourcesInfoVo; import com.zyplayer.doc.swagger.controller.vo.SwaggerResourcesInfoVo;
import com.zyplayer.doc.swagger.framework.constant.Consts; import com.zyplayer.doc.swagger.framework.constant.Consts;
import com.zyplayer.doc.swagger.framework.constant.StorageKeys; import com.zyplayer.doc.swagger.framework.constant.StorageKeys;
@@ -26,6 +27,7 @@ import java.util.List;
* @author 暮光:城中城 * @author 暮光:城中城
* @since 2018年12月16日 * @since 2018年12月16日
*/ */
@AuthMan
@RestController @RestController
public class ZyplayerSwaggerController { public class ZyplayerSwaggerController {

View File

@@ -27,8 +27,11 @@ function deserialize(value) {
} }
function validateResult(result) { function validateResult(result) {
if(result.errCode == 200) { if (result.errCode == 200) {
return true; return true;
} else if (result.errCode == 400) {
var href = encodeURI(window.location.href);
window.location = "static/manage/login.html?returnUrl=" + href;
} else { } else {
Toast.error(result.errMsg); Toast.error(result.errMsg);
} }
@@ -192,8 +195,13 @@ function ajaxTemp(url, dataSentType, dataReceiveType, paramsStr, successFunction
data : eval(paramsStr), data : eval(paramsStr),
contentType : "application/x-www-form-urlencoded; charset=UTF-8", contentType : "application/x-www-form-urlencoded; charset=UTF-8",
success : function(msg) { success : function(msg) {
if(typeof successFunction == "function") { if (msg.errCode == 400) {
successFunction(msg,id); var href = encodeURI(window.location.href);
window.location = "static/manage/login.html?returnUrl=" + href;
} else {
if (typeof successFunction == "function") {
successFunction(msg, id);
}
} }
}, },
beforeSend : function() { beforeSend : function() {

View File

@@ -27,11 +27,14 @@ function deserialize(value) {
} }
function validateResult(result) { function validateResult(result) {
if(result.errCode == 200) { if (result.errCode == 200) {
return true; return true;
} else { } else if (result.errCode == 400) {
Toast.error(result.errMsg); var href = encodeURI(window.location.href);
} window.location = "static/manage/login.html?returnUrl=" + href;
} else {
Toast.error(result.errMsg);
}
return false; return false;
} }
@@ -175,7 +178,7 @@ function getObjectFirstAttributeIfOnly(data) {
/** /**
* ajax处理事件模板 * ajax处理事件模板
* *
* @url 后台处理的url即action * @url 后台处理的url即action
* @dataSentType 数据发送的方式有postget方式 * @dataSentType 数据发送的方式有postget方式
* @dataReceiveType 数据接收格式有html json text等 * @dataReceiveType 数据接收格式有html json text等
@@ -192,12 +195,17 @@ function ajaxTemp(url, dataSentType, dataReceiveType, paramsStr, successFunction
data : eval(paramsStr), data : eval(paramsStr),
contentType : "application/x-www-form-urlencoded; charset=UTF-8", contentType : "application/x-www-form-urlencoded; charset=UTF-8",
success : function(msg) { success : function(msg) {
if(typeof successFunction == "function") { if (msg.errCode == 400) {
successFunction(msg,id); var href = encodeURI(window.location.href);
window.location = "static/manage/login.html?returnUrl=" + href;
} else {
if (typeof successFunction == "function") {
successFunction(msg, id);
}
} }
}, },
beforeSend : function() { beforeSend : function() {
}, },
complete : function(msg) { complete : function(msg) {
if (msg.responseText.startWith("<!doctype html>")) { if (msg.responseText.startWith("<!doctype html>")) {
@@ -233,7 +241,7 @@ function postWithFile(url, paramsStr, successFunction, errorFunction, completeFu
} }
}, },
beforeSend: function () { beforeSend: function () {
}, },
complete: function (msg) { complete: function (msg) {
if (typeof completeFunction == "function") { if (typeof completeFunction == "function") {

View File

@@ -27,8 +27,11 @@ function deserialize(value) {
} }
function validateResult(result) { function validateResult(result) {
if(result.errCode == 200) { if (result.errCode == 200) {
return true; return true;
} else if (result.errCode == 400) {
var href = encodeURI(window.location.href);
window.location = "static/manage/login.html?returnUrl=" + href;
} else { } else {
Toast.error(result.errMsg); Toast.error(result.errMsg);
} }
@@ -192,8 +195,13 @@ function ajaxTemp(url, dataSentType, dataReceiveType, paramsStr, successFunction
data : eval(paramsStr), data : eval(paramsStr),
contentType : "application/x-www-form-urlencoded; charset=UTF-8", contentType : "application/x-www-form-urlencoded; charset=UTF-8",
success : function(msg) { success : function(msg) {
if(typeof successFunction == "function") { if (msg.errCode == 400) {
successFunction(msg,id); var href = encodeURI(window.location.href);
window.location = "static/manage/login.html?returnUrl=" + href;
} else {
if (typeof successFunction == "function") {
successFunction(msg, id);
}
} }
}, },
beforeSend : function() { beforeSend : function() {

View File

@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.zyplayer.doc.core.json.DocResponseJson; import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.core.json.ResponseJson; import com.zyplayer.doc.core.json.ResponseJson;
import com.zyplayer.doc.data.aspect.AuthMan; import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.repository.manage.entity.UserInfo; import com.zyplayer.doc.data.repository.manage.entity.UserInfo;

View File

@@ -4,7 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zyplayer.doc.core.json.DocResponseJson; import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.core.json.ResponseJson; import com.zyplayer.doc.core.json.ResponseJson;
import com.zyplayer.doc.data.aspect.AuthMan; import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.repository.manage.entity.*; import com.zyplayer.doc.data.repository.manage.entity.*;

View File

@@ -3,7 +3,7 @@ package com.zyplayer.doc.wiki.controller;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.zyplayer.doc.core.json.DocResponseJson; import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.core.json.ResponseJson; import com.zyplayer.doc.core.json.ResponseJson;
import com.zyplayer.doc.data.aspect.AuthMan; import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.repository.manage.entity.WikiPage; import com.zyplayer.doc.data.repository.manage.entity.WikiPage;

View File

@@ -3,7 +3,7 @@ package com.zyplayer.doc.wiki.controller;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.zyplayer.doc.core.json.DocResponseJson; import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.core.json.ResponseJson; import com.zyplayer.doc.core.json.ResponseJson;
import com.zyplayer.doc.data.aspect.AuthMan; import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.repository.manage.entity.*; import com.zyplayer.doc.data.repository.manage.entity.*;

View File

@@ -2,7 +2,7 @@ package com.zyplayer.doc.wiki.controller;
import com.zyplayer.doc.core.json.DocResponseJson; import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.core.json.ResponseJson; import com.zyplayer.doc.core.json.ResponseJson;
import com.zyplayer.doc.data.aspect.AuthMan; import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.repository.manage.entity.WikiPage; import com.zyplayer.doc.data.repository.manage.entity.WikiPage;

View File

@@ -3,7 +3,7 @@ package com.zyplayer.doc.wiki.controller;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.zyplayer.doc.core.json.DocResponseJson; import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.core.json.ResponseJson; import com.zyplayer.doc.core.json.ResponseJson;
import com.zyplayer.doc.data.aspect.AuthMan; import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.repository.manage.entity.WikiPage; import com.zyplayer.doc.data.repository.manage.entity.WikiPage;

View File

@@ -4,7 +4,7 @@ import cn.hutool.core.util.RandomUtil;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.zyplayer.doc.core.json.DocResponseJson; import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.core.json.ResponseJson; import com.zyplayer.doc.core.json.ResponseJson;
import com.zyplayer.doc.data.aspect.AuthMan; import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.repository.manage.entity.WikiSpace; import com.zyplayer.doc.data.repository.manage.entity.WikiSpace;

View File

@@ -8,7 +8,7 @@
<body> <body>
<div id="app"></div> <div id="app"></div>
<script type="text/javascript" src="manifest.js?022aa721bfefa1874f75"></script><script type="text/javascript" src="vendor.js?f23a64ebc49a36156887"></script><script type="text/javascript" src="index.js?787b2f00cf4c5f8dad65"></script></body> <script type="text/javascript" src="manifest.js?c21a0e200e1512cc230c"></script><script type="text/javascript" src="vendor.js?eff0aa0ca8e9746da131"></script><script type="text/javascript" src="index.js?d382a04a67c2d1c93dfc"></script></body>
</html> </html>

File diff suppressed because one or more lines are too long

View File

@@ -1,2 +1,2 @@
!function(e){function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}var r=window.webpackJsonp;window.webpackJsonp=function(t,c,u){for(var a,i,f,l=0,s=[];l<t.length;l++)i=t[l],o[i]&&s.push(o[i][0]),o[i]=0;for(a in c)Object.prototype.hasOwnProperty.call(c,a)&&(e[a]=c[a]);for(r&&r(t,c,u);s.length;)s.shift()();if(u)for(l=0;l<u.length;l++)f=n(n.s=u[l]);return f};var t={},o={2:0};n.e=function(e){function r(){a.onerror=a.onload=null,clearTimeout(i);var n=o[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),o[e]=void 0)}var t=o[e];if(0===t)return new Promise(function(e){e()});if(t)return t[2];var c=new Promise(function(n,r){t=o[e]=[n,r]});t[2]=c;var u=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,n.nc&&a.setAttribute("nonce",n.nc),a.src=n.p+""+e+".js?"+{0:"f23a64ebc49a36156887",1:"787b2f00cf4c5f8dad65"}[e];var i=setTimeout(r,12e4);return a.onerror=a.onload=r,u.appendChild(a),c},n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,r,t){n.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:t})},n.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(r,"a",r),r},n.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},n.p="",n.oe=function(e){throw console.error(e),e}}([]); !function(e){function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}var n=window.webpackJsonp;window.webpackJsonp=function(t,c,a){for(var u,i,f,l=0,s=[];l<t.length;l++)i=t[l],o[i]&&s.push(o[i][0]),o[i]=0;for(u in c)Object.prototype.hasOwnProperty.call(c,u)&&(e[u]=c[u]);for(n&&n(t,c,a);s.length;)s.shift()();if(a)for(l=0;l<a.length;l++)f=r(r.s=a[l]);return f};var t={},o={2:0};r.e=function(e){function n(){a.onerror=a.onload=null,clearTimeout(u);var r=o[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),o[e]=void 0)}if(0===o[e])return Promise.resolve();if(o[e])return o[e][2];var t=new Promise(function(r,n){o[e]=[r,n]});o[e][2]=t;var c=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,r.nc&&a.setAttribute("nonce",r.nc),a.src=r.p+""+e+".js?"+{0:"eff0aa0ca8e9746da131",1:"d382a04a67c2d1c93dfc"}[e];var u=setTimeout(n,12e4);return a.onerror=a.onload=n,c.appendChild(a),t},r.m=e,r.c=t,r.i=function(e){return e},r.d=function(e,n,t){r.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:t})},r.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(n,"a",n),n},r.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},r.p="",r.oe=function(e){throw console.error(e),e}}([]);
//# sourceMappingURL=manifest.js.map?022aa721bfefa1874f75 //# sourceMappingURL=manifest.js.map?c21a0e200e1512cc230c

File diff suppressed because one or more lines are too long

View File

@@ -29,6 +29,9 @@ function deserialize(value) {
function validateResult(result) { function validateResult(result) {
if (result.errCode == 200) { if (result.errCode == 200) {
return true; return true;
} else if (result.errCode == 400) {
var href = encodeURI(window.location.href);
window.location = "static/manage/login.html?returnUrl=" + href;
} else { } else {
Toast.error(result.errMsg); Toast.error(result.errMsg);
} }
@@ -208,8 +211,13 @@ function ajaxTemp(url, dataSentType, dataReceiveType, paramsStr, successFunction
data : eval(paramsStr), data : eval(paramsStr),
contentType : "application/x-www-form-urlencoded; charset=UTF-8", contentType : "application/x-www-form-urlencoded; charset=UTF-8",
success : function(msg) { success : function(msg) {
if(typeof successFunction == "function") { if (msg.errCode == 400) {
successFunction(msg,id); var href = encodeURI(window.location.href);
window.location = "static/manage/login.html?returnUrl=" + href;
} else {
if (typeof successFunction == "function") {
successFunction(msg, id);
}
} }
}, },
beforeSend : function() { beforeSend : function() {