提交 75cd10f9 编写于 作者: lakernote's avatar lakernote

(新增)[后端](引入流程引擎)

上级 293ecc27
......@@ -57,7 +57,15 @@ spring:
**前端**
纯静态的,可直接在浏览器运行,修改配置`web/Pear.../componet/pear/pear.js`
2种方式部署
**一、Spring Boot虚拟磁盘模式**
什么都不用做,直接访问`http://localhost:8080/admin`
**二、纯静态模式**
纯静态的,可直接在浏览器运行,修改配置`web/admin/componet/pear/pear.js`
```javascript
const EasyAdminContext = {
......@@ -65,7 +73,7 @@ const EasyAdminContext = {
};
```
直接在浏览器访问`web/Pear.../index.html`
直接在浏览器访问`web/admin/index.html`
......
......@@ -83,7 +83,7 @@
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot-starter</artifactId>
<version>1.15.2</version>
<version>1.24.0</version>
</dependency>
<!-- 应用监控 -->
......
package com.laker.admin.config;
import cn.dev33.satoken.interceptor.SaAnnotationInterceptor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
......@@ -26,7 +27,9 @@ public class WebMvcConfig implements WebMvcConfigurer {
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
//
// 注册注解拦截器,并排除不需要注解鉴权的接口地址 (与登录拦截器无关)
registry.addInterceptor(new SaAnnotationInterceptor()).addPathPatterns("/**")
.excludePathPatterns("/admin/**", "/admin/login.html", "/api/v1/login");
}
@Override
......
package com.laker.admin.framework.ext.satoken;
import cn.dev33.satoken.interceptor.SaAnnotationInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 对默认的做增强,默认拦截登录check
*/
public class LakerSaAnnotationInterceptor extends SaAnnotationInterceptor {
/**
* 每次请求之前触发的方法
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
// // 获取处理method
// if (handler instanceof HandlerMethod == false) {
// return true;
// }
// 判断是否登录
super.getStpLogic().checkLogin();
// 调用父类的默认方法
return super.preHandle(request, response, handler);
}
}
package com.laker.admin.framework.ext.satoken;
import cn.dev33.satoken.action.SaTokenActionDefaultImpl;
import cn.dev33.satoken.annotation.SaCheckLogin;
import cn.dev33.satoken.stp.StpUtil;
import org.springframework.stereotype.Component;
import java.lang.reflect.AnnotatedElement;
/**
* Sa-Token 逻辑代理接口 [默认实现类]
*
* @author kong
*/
@Component
public class SaTokenExtActionImpl extends SaTokenActionDefaultImpl {
/**
* 从指定元素校验注解
*
* @param target see note
*/
@Override
protected void validateAnnotation(AnnotatedElement target) {
super.validateAnnotation(target);
// 校验 @SaCheckLogin 注解
if (!target.isAnnotationPresent(SaCheckLogin.class)) {
StpUtil.checkLogin();
}
}
}
......@@ -3,8 +3,8 @@ package com.laker.admin.framework.handler;
import cn.dev33.satoken.exception.NotLoginException;
import cn.hutool.core.lang.Dict;
import com.laker.admin.framework.exception.BusinessException;
import com.laker.admin.framework.Response;
import com.laker.admin.framework.exception.BusinessException;
import com.laker.admin.utils.http.HttpServletRequestUtil;
import lombok.extern.slf4j.Slf4j;
import org.hibernate.validator.internal.engine.path.NodeImpl;
......@@ -134,7 +134,7 @@ public class GlobalExceptionHandler {
public Response handleMaxSizeException(NotLoginException e, HttpServletResponse response) throws IOException {
log.info(HttpServletRequestUtil.getAllRequestInfo());
log.error(e.getMessage(), e);
response.sendRedirect("/index.html");
response.sendRedirect("/admin/login.html");
return Response.error("401", e.getMessage());
}
......
package com.laker.admin.module.sys.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/admin")
public class IndexController {
@GetMapping({"", "/index", "/"})
public String adminIndex() {
return "redirect:/admin/index.html";
}
}
\ No newline at end of file
......@@ -40,7 +40,7 @@ public class LoginController {
if (sysUser == null) {
return Response.error("5001", "用户名或密码不正确");
}
StpUtil.setLoginId(1);
StpUtil.login(1);
return Response.ok(StpUtil.getTokenInfo());
}
......
......@@ -12,20 +12,6 @@ spring:
max-active: 300
test-on-borrow: true
validation-query: select 1
# sa-token配置
sa-token:
# token名称 (同时也是cookie名称)
token-name: LakerToken
# token有效期,单位s 默认30天, -1代表永不过期
# timeout: 1800
# token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
# activity-timeout: 3000
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
allow-concurrent-login: true
# 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
is-share: false
# token风格
token-style: simple-uuid
profiles:
active: dev
task:
......@@ -49,6 +35,20 @@ knife4j:
enable: true
javamelody:
enabled: true
# sa-token配置
sa-token:
# token名称 (同时也是cookie名称)
token-name: LakerToken
# token有效期,单位s 默认30天, -1代表永不过期
# timeout: 1800
# token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
# activity-timeout: 3000
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
allow-concurrent-login: true
# 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
is-share: false
# token风格
token-style: simple-uuid
video:
url: http://1.1.1.1
admin:
......
......@@ -87,13 +87,28 @@
var convert = layui.convert;
var popup = layui.popup;
var user = layui.data('user');
if (JSON.stringify(user) == "{}") {
location.href = "login.html";
}
console.log(user)
admin.setAvatar("admin/images/avatar.jpg", "就眠仪式");
admin.setConfigType("yml");
admin.setConfigPath("config/pear.config.yml");
console.log(admin.readConfig());
let readConfig = admin.readConfig();
readConfig.menu.data = EasyAdminContext.url + "/sys/menu/tree"
const menuUrl = EasyAdminContext.url + "/sys/menu/tree";
$.ajax({
url: menuUrl,
dataType: 'json',
success: function () {
},
error: function () {
location.href = "login.html";
}
});
readConfig.menu.data = menuUrl;
admin.render(readConfig);
// 登出逻辑
......
......@@ -61,12 +61,19 @@
type: 'post',
success: function (result) {
if (result.success) {
layui.data('user', {
key: result.data.tokenName
, value: result.data.tokenValue
});
// 动画
button.load({
elem: '.login',
time: 500,
done: function () {
popup.success("登录成功", function () {
location.href = "index.html"
});
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册