diff --git a/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java b/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java index 8a6fec29..605e91b9 100644 --- a/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java +++ b/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java @@ -97,7 +97,6 @@ public class SpringBootCallable implements Callable { return true; } - /** * 生成POM.xml * @@ -213,7 +212,7 @@ public class SpringBootCallable implements Callable { ctxss.put("module", module.getName()); File m = Tool.createPath(msvr, module.getName()); for (Table table : module.getTables()) { - if (!table.getMsvr()){ + if (!table.getMsvr()) { continue; } ctxss.put("table", table); @@ -283,7 +282,10 @@ public class SpringBootCallable implements Callable { File ent = Tool.createPath(Tool.createPath(root, module.getName()), "ent"); File mpr = Tool.createPath(Tool.createPath(root, module.getName()), "mpr"); File mgr = Tool.createPath(Tool.createPath(root, module.getName()), "mgr"); - File svr = Tool.createPath(Tool.createPath(root, module.getName()), "svr"); + File svr = null; + if (project.isNeedCloud()) { + svr = Tool.createPath(Tool.createPath(root, module.getName()), "svr"); + } File req = Tool.createPath(Tool.createPath(root, module.getName()), "req"); File rsp = Tool.createPath(Tool.createPath(root, module.getName()), "rsp"); @@ -315,8 +317,10 @@ public class SpringBootCallable implements Callable { freeMarkerManager.outputTemp(Tool.createFile(mgr, Tool.ABB2Abb(table.getTableName()) + "ManagerImpl" + ".java"), "SpringBoot/java/module/mgr/managerImpl_NSYS.ftl", ctx); } - freeMarkerManager.outputTemp(Tool.createFile(svr, Tool.ABB2Abb(table.getTableName()) + "Service" + ".java"), "SpringBoot/java/module/svr/Service.java", ctx); - freeMarkerManager.outputTemp(Tool.createFile(svr, Tool.ABB2Abb(table.getTableName()) + "ServiceImpl" + ".java"), "SpringBoot/java/module/svr/ServiceImpl.java", ctx); + if (project.isNeedCloud()) { + freeMarkerManager.outputTemp(Tool.createFile(svr, Tool.ABB2Abb(table.getTableName()) + "Service" + ".java"), "SpringBoot/java/module/svr/Service.java", ctx); + freeMarkerManager.outputTemp(Tool.createFile(svr, Tool.ABB2Abb(table.getTableName()) + "ServiceImpl" + ".java"), "SpringBoot/java/module/svr/ServiceImpl.java", ctx); + } if (table.getCreate()) { freeMarkerManager.outputTemp(Tool.createFile(req, Tool.ABB2Abb(table.getTableName()) + "CreateRequest" + ".java"), "SpringBoot/java/module/req/createRequestClass.ftl", ctx); diff --git a/src/main/resources/modules/SpringBoot/java/action/GlobalController.java b/src/main/resources/modules/SpringBoot/java/action/GlobalController.java index 7a901921..1480c989 100644 --- a/src/main/resources/modules/SpringBoot/java/action/GlobalController.java +++ b/src/main/resources/modules/SpringBoot/java/action/GlobalController.java @@ -1,10 +1,31 @@ package ${domain}.action; +import ${domain}.config.ActionConfig; +import ${domain}.frame.auth.LocalData; +import ${domain}.frame.auth.Token; +import ${domain}.frame.base.BaseRequest; +import ${domain}.frame.base.BaseResponse; +import ${domain}.frame.base.ErrorType; +import ${domain}.frame.base.Screen; +import ${domain}.frame.sse.Sser; +import ${domain}.frame.utils.AESUtil; +import ${domain}.frame.utils.LogUtil; +import ${domain}.frame.utils.MD5Util; +import ${domain}.frame.utils.MapperUtil; +import ${domain}.frame.utils.RequestUtil; +import ${domain}.frame.utils.StringUtil; +import ${domain}.module.wsys.ent.Visitor; +import ${domain}.module.wsys.mgr.LogerrManager; +import ${domain}.module.wsys.mgr.TokensManager; +import ${domain}.module.wsys.mgr.VisitorManager; +import ${domain}.module.wsys.req.TokensBuildRequest; +import ${domain}.module.wsys.req.VisitorFindRequest; +import ${domain}.module.wsys.rsp.TokensBuildResponse; +import ${domain}.module.wsys.rsp.VisitorFindResponse; import com.fasterxml.jackson.core.TreeNode; import org.springframework.beans.BeansException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; @@ -20,45 +41,17 @@ import org.springframework.web.servlet.LocaleResolver; import org.springframework.web.servlet.View; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; import org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver; -import ${domain}.config.ActionConfig; -import ${domain}.frame.auth.LocalData; -import ${domain}.frame.auth.Token; -import ${domain}.frame.base.BaseRequest; -import ${domain}.frame.base.BaseResponse; -import ${domain}.frame.base.ErrorType; -import ${domain}.frame.base.Screen; -import ${domain}.frame.sse.Sser; -import ${domain}.frame.utils.AESUtil; -import ${domain}.frame.utils.LogUtil; -import ${domain}.frame.utils.MD5Util; -import ${domain}.frame.utils.MapperUtil; -import ${domain}.frame.utils.StringUtil; -import ${domain}.module.wsys.mgr.LogerrManager; -<#if project.frameValue() = 1> -import ${domain}.module.wsys.ent.Visitor; -import ${domain}.module.wsys.mgr.VisitorManager; -import ${domain}.module.wsys.req.VisitorFindRequest; -import ${domain}.module.wsys.req.TokensBuildRequest; -import ${domain}.module.wsys.rsp.VisitorFindResponse; -import ${domain}.module.wsys.mgr.TokensManager; -import ${domain}.module.wsys.req.TokensBuildRequest; -import ${domain}.module.wsys.rsp.TokensBuildResponse; -#if> import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; -import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Parameter; import java.util.Locale; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - /** * 全局请求Controller,如果无特殊请求,则不需再增加其他Controller - * 全局htm后缀入口{@link GlobalController#action(Model, HttpServletRequest, HttpServletResponse)} + * 全局htm后缀入口{@link GlobalController#page(Model, HttpServletRequest, HttpServletResponse)} * 全局ajax入口{@link GlobalController#ajax(String, String, String, HttpServletRequest, HttpServletResponse, String, MultipartFile)} * 全局消息订阅{@link GlobalController#sse(String)} *
@@ -101,34 +94,26 @@ public class GlobalController {
* @param request
*/
@RequestMapping({"/**/*.htm"})
- public String action(Model model, HttpServletRequest request, HttpServletResponse response) {
+ public String page(Model model, HttpServletRequest request, HttpServletResponse response) {
String servletPath = request.getServletPath();// /**/*.htm
String layout = "/layout/default";
- String action = LocalData.getAction();// **/*
-
- Pattern compile = Pattern.compile("^/(.+)\\.htm");
- Matcher matcher = compile.matcher(servletPath);
- if (matcher.find()) {
- action = matcher.group(1);
- LocalData.setAction(action);
- }
+ String page = RequestUtil.getPage();
try {
LocaleResolver localeResolver = (LocaleResolver) request.getAttribute(DispatcherServlet.LOCALE_RESOLVER_ATTRIBUTE);
Locale locale = localeResolver.resolveLocale(request);
{//查询screen
- String[] split = action.split("/");
- layout = "screen" + File.separator + String.join(File.separator, split);
+ layout = "screen/" + page;
View view = viewResolver.resolveViewName(layout, locale);
if (view == null) {
- response.sendError(HttpServletResponse.SC_NOT_FOUND,"");
+ response.sendError(HttpServletResponse.SC_NOT_FOUND, "");
return null;
}
// 尝试执行Screen执行器(服务器渲染),并返回视图模板
try {
- String beanClassName = (ActionConfig.SCREEN_PREFIX + action).toLowerCase();
+ String beanClassName = (ActionConfig.SCREEN_PREFIX + page).toLowerCase();
Screen screenExec = LocalData.getApplicationContext().getBean(beanClassName, Screen.class);
screenExec.exec(model, request, response);
@@ -142,7 +127,7 @@ public class GlobalController {
}
{//查找layout
- String[] split = action.split("/");
+ String[] split = page.split("/");
int lt = split.length;
while (lt > 0) {
diff --git a/src/main/resources/modules/SpringBoot/java/config/FreeMarkerConfig.java b/src/main/resources/modules/SpringBoot/java/config/FreeMarkerConfig.java
index 8987393a..9d9af398 100644
--- a/src/main/resources/modules/SpringBoot/java/config/FreeMarkerConfig.java
+++ b/src/main/resources/modules/SpringBoot/java/config/FreeMarkerConfig.java
@@ -1,5 +1,9 @@
package ${domain}.config;
+import ${domain}.frame.auth.LocalData;
+import ${domain}.frame.base.Control;
+import ${domain}.frame.utils.RequestUtil;
+import ${domain}.frame.utils.UrlUtil;
import freemarker.template.SimpleScalar;
import freemarker.template.TemplateMethodModelEx;
import freemarker.template.TemplateModelException;
@@ -14,9 +18,6 @@ import org.springframework.web.servlet.DispatcherServlet;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.View;
import org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver;
-import ${domain}.frame.auth.LocalData;
-import ${domain}.frame.base.Control;
-import ${domain}.frame.utils.UrlUtil;
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
@@ -25,8 +26,8 @@ import java.io.File;
import java.util.List;
import java.util.Locale;
-import static ${domain}.config.ActionConfig.CONTROL_PREFIX;
-import static ${domain}.config.ActionConfig.SCREEN_PREFIX;
+import static com.example.config.ActionConfig.CONTROL_PREFIX;
+import static com.example.config.ActionConfig.SCREEN_PREFIX;
@Configuration
public class FreeMarkerConfig {
@@ -55,28 +56,15 @@ public class FreeMarkerConfig {
try {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
LocaleResolver localeResolver = (LocaleResolver) request.getAttribute(DispatcherServlet.LOCALE_RESOLVER_ATTRIBUTE);
- String servletPath = LocalData.getAction();
- servletPath = servletPath.replaceAll("^/", "");
-
- String[] split = servletPath.split("/");
- StringBuilder sb = new StringBuilder("");
-
- // 分割组装路径
- for (int i = 0; i < split.length; i++) {
- sb.append(split[i]);
- if (i != split.length - 1) {
- sb.append(File.separator);
- }
- }
-
+ String page = RequestUtil.getPage();
Locale locale = localeResolver.resolveLocale(request);
- String viewName = "screen" + File.separator + sb.toString();
+ String viewName = "screen/" + page;
View view = viewResolver.resolveViewName(viewName, locale);
//无法找到对应screen
if (view == null) {
return "";
} else {
- return SCREEN_PREFIX + servletPath + suffix;
+ return SCREEN_PREFIX + page + suffix;
}
} catch (Exception e) {
e.printStackTrace();
diff --git a/src/main/resources/modules/SpringBoot/java/config/SecurityConfig.java b/src/main/resources/modules/SpringBoot/java/config/SecurityConfig.java
index 1e302745..8dbc47a3 100644
--- a/src/main/resources/modules/SpringBoot/java/config/SecurityConfig.java
+++ b/src/main/resources/modules/SpringBoot/java/config/SecurityConfig.java
@@ -15,6 +15,7 @@ import org.springframework.security.web.access.intercept.FilterSecurityIntercept
import ${domain}.frame.auth.LocalData;
import ${domain}.frame.auth.Token;
import ${domain}.frame.utils.CookieUtil;
+import ${domain}.frame.utils.RequestUtil;
import ${domain}.module.wsys.mgr.TokensManager;
import ${domain}.module.wsys.req.TokensBuildRequest;
import ${domain}.module.wsys.rsp.TokensBuildResponse;
@@ -73,10 +74,16 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
+ // 1优先获取参数中的token
String token = request.getParameter("token");
+ // 2其次获取Cookie中的token
if (token == null || token.isEmpty()) {
token = CookieUtil.getCookieValue(request.getCookies(), "token");
}
+ // 3其次获取Header中的token
+ if (token == null || token.isEmpty()) {
+ token = RequestUtil.getHeader("token");
+ }
// 组装Token ~ 这边根据实际的业务组装Token
if (token != null) {
@@ -89,14 +96,6 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
LocalData.setToken(null);
}
- // Action
- String servletPath = request.getServletPath().toLowerCase();
- Pattern compile = Pattern.compile("^/(.+)\\.htm");
- Matcher matcher = compile.matcher(servletPath);
- if (matcher.find()) {
- LocalData.setAction(matcher.group(1));
- }
-
try {
filterChain.doFilter(servletRequest, servletResponse);
} catch (AccessDeniedException e) {
diff --git a/src/main/resources/modules/SpringBoot/java/frame/auth/LocalData.java b/src/main/resources/modules/SpringBoot/java/frame/auth/LocalData.java
index 7a3d2cab..2ed3bcf9 100644
--- a/src/main/resources/modules/SpringBoot/java/frame/auth/LocalData.java
+++ b/src/main/resources/modules/SpringBoot/java/frame/auth/LocalData.java
@@ -35,19 +35,6 @@ public class LocalData {
return system;
}
- /**
- * 当请求目标 target = '/aa/bb'
- */
- private static final ThreadLocal