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 5b21e4d5..9960a94a 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 @@ -464,6 +464,8 @@ public class SpringBootCallable implements Callable { File base = new File(root.getAbsolutePath(), "base"); base.mkdirs(); + File auth = new File(root.getAbsolutePath(), "auth"); + auth.mkdirs(); File freemarker = new File(root.getAbsolutePath(), "freemarker"); freemarker.mkdirs(); File utils = new File(root.getAbsolutePath(), "utils"); @@ -471,6 +473,10 @@ public class SpringBootCallable implements Callable { File validation = new File(root.getAbsolutePath(), "validation"); validation.mkdirs(); + //auth + freeMarkerManager.outputTemp(new File(auth.getAbsolutePath(), "LocalData.java"), option + "/java/frame/auth/LocalData.java", ctx); + freeMarkerManager.outputTemp(new File(auth.getAbsolutePath(), "Verification.java"), option + "/java/frame/auth/Verification.java", ctx); + //base freeMarkerManager.outputTemp(new File(base.getAbsolutePath(), "BaseEntity.java"), option + "/java/frame/base/BaseEntity.java", ctx); freeMarkerManager.outputTemp(new File(base.getAbsolutePath(), "BaseFindRequest.java"), option + "/java/frame/base/BaseFindRequest.java", ctx); @@ -504,7 +510,6 @@ public class SpringBootCallable implements Callable { freeMarkerManager.outputTemp(new File(utils.getAbsolutePath(), "RSAUtil.java"), option + "/java/frame/utils/RSAUtil.java", ctx); freeMarkerManager.outputTemp(new File(utils.getAbsolutePath(), "ValidationUtil.java"), option + "/java/frame/utils/ValidationUtil.java", ctx); freeMarkerManager.outputTemp(new File(utils.getAbsolutePath(), "WebUtils.java"), option + "/java/frame/utils/WebUtils.java", ctx); - freeMarkerManager.outputTemp(new File(utils.getAbsolutePath(), "LocalData.java"), option + "/java/frame/utils/LocalData.java", ctx); freeMarkerManager.outputTemp(new File(utils.getAbsolutePath(), "IDgenerator.java"), option + "/java/frame/utils/IDgenerator.java", ctx); freeMarkerManager.outputTemp(new File(utils.getAbsolutePath(), "Message.java"), option + "/java/frame/utils/Message.java", ctx); diff --git a/src/main/resources/modules/SpringBoot/java/action/AjaxController.ftl b/src/main/resources/modules/SpringBoot/java/action/AjaxController.ftl index 7d835def..578cfff3 100644 --- a/src/main/resources/modules/SpringBoot/java/action/AjaxController.ftl +++ b/src/main/resources/modules/SpringBoot/java/action/AjaxController.ftl @@ -13,7 +13,7 @@ import java.io.InputStreamReader; import ${basePackage}.module.${m.moduleName}.req.*; import ${basePackage}.module.${m.moduleName}.mgr.*; -import ${basePackage}.frame.utils.LocalData; +import ${basePackage}.frame.auth.LocalData; import ${basePackage}.frame.utils.MapperUtil; import ${basePackage}.frame.utils.Message; import ${basePackage}.frame.base.BaseResponse; diff --git a/src/main/resources/modules/SpringBoot/java/action/FeignController.ftl b/src/main/resources/modules/SpringBoot/java/action/FeignController.ftl index d1831cd7..86c8231e 100644 --- a/src/main/resources/modules/SpringBoot/java/action/FeignController.ftl +++ b/src/main/resources/modules/SpringBoot/java/action/FeignController.ftl @@ -13,7 +13,7 @@ import java.io.InputStreamReader; import ${basePackage}.module.${m.moduleName}.req.*; import ${basePackage}.module.${m.moduleName}.mgr.*; -import ${basePackage}.frame.utils.LocalData; +import ${basePackage}.frame.auth.LocalData; import ${basePackage}.frame.utils.MapperUtil; import ${basePackage}.frame.utils.Message; import ${basePackage}.frame.base.BaseResponse; diff --git a/src/main/resources/modules/SpringBoot/java/action/GlobalController.ftl b/src/main/resources/modules/SpringBoot/java/action/GlobalController.ftl index 2ba4b81d..491f7077 100644 --- a/src/main/resources/modules/SpringBoot/java/action/GlobalController.ftl +++ b/src/main/resources/modules/SpringBoot/java/action/GlobalController.ftl @@ -4,7 +4,7 @@ import ${basePackage}.frame.base.FileUploadResponse; import ${basePackage}.frame.base.BaseResponse; import ${basePackage}.frame.base.ErrorType; import ${basePackage}.frame.base.Screen; -import ${basePackage}.frame.utils.LocalData; +import ${basePackage}.frame.auth.LocalData; import ${basePackage}.config.ActionConfig; import org.springframework.beans.BeansException; import org.apache.commons.io.FileUtils; diff --git a/src/main/resources/modules/SpringBoot/java/config/SecurityConfig.java b/src/main/resources/modules/SpringBoot/java/config/SecurityConfig.java index 81d7ad5d..7ae03bba 100644 --- a/src/main/resources/modules/SpringBoot/java/config/SecurityConfig.java +++ b/src/main/resources/modules/SpringBoot/java/config/SecurityConfig.java @@ -9,9 +9,9 @@ import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.core.Authentication; -import xyz.wbsite.frame.base.Token; -import xyz.wbsite.frame.utils.CookieUtil; -import xyz.wbsite.frame.auth.LocalData; +import ${basePackage}.frame.base.Token; +import ${basePackage}.frame.utils.CookieUtil; +import ${basePackage}.frame.auth.LocalData; import javax.servlet.http.HttpServletRequest; @Configuration @@ -20,6 +20,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { @Value("${r"${web.url.auth.excluded}"}") private String[] excluded; + @Value("${r"${spring.mvc.static-path-pattern}"}") + private String[] staticPath; @Override protected void configure(HttpSecurity http) throws Exception { diff --git a/src/main/resources/modules/SpringBoot/java/config/WebMvcConfig.java b/src/main/resources/modules/SpringBoot/java/config/WebMvcConfig.java index 94d66f92..317f59b1 100644 --- a/src/main/resources/modules/SpringBoot/java/config/WebMvcConfig.java +++ b/src/main/resources/modules/SpringBoot/java/config/WebMvcConfig.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import ${basePackage}.frame.base.Token; -import ${basePackage}.frame.utils.LocalData; +import ${basePackage}.frame.auth.LocalData; import ${basePackage}.frame.utils.LogUtil; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; diff --git a/src/main/resources/modules/SpringBoot/java/frame/auth/LocalData.java b/src/main/resources/modules/SpringBoot/java/frame/auth/LocalData.java new file mode 100644 index 00000000..54e11e21 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/frame/auth/LocalData.java @@ -0,0 +1,84 @@ +package ${basePackage}.frame.auth; + +import ${basePackage}.frame.base.Token; +import org.springframework.context.ApplicationContext; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.context.support.WebApplicationContextUtils; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * LocalData - 本地数据存放类 + * + * @author wangbing + * @version 0.0.1 + * @since 2017-01-01 + */ +public class LocalData { + + private static Token temp = null; + + private static Token system = null; + + static { + // 组装临时Token和系统Token + temp = new Token(); + temp.setId(-1); + temp.setUserId(-1); + temp.setUserName("游客"); + temp.putResource("ajax.system.admin.login"); + system = new Token(); + system.setId(0); + system.setUserId(0); + system.setUserName("system"); + system.putResource(".*"); + } + + public static Token getTempToken() { + return temp; + } + + public static Token getSysToken() { + return system; + } + + /** + * 当请求目标 target = '/aa/bb' + */ + private static final ThreadLocal targetHolder = new ThreadLocal(); + + public static String getTarget() { + return targetHolder.get(); + } + + public static void setTarget(String target) { + targetHolder.set(target); + } + + /** + * 当前用户的通行证 + */ + private static final ThreadLocal tokenHolder = new ThreadLocal(); + + public static Token getToken() { + return tokenHolder.get(); + } + + public static void setToken(Token token) { + tokenHolder.set(token); + } + + public static HttpServletRequest getRequest() { + return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + } + + public static HttpServletResponse getResponse() { + return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse(); + } + + public static ApplicationContext getApplicationContext() { + return WebApplicationContextUtils.getWebApplicationContext(getRequest().getServletContext()); + } +} diff --git a/src/main/resources/modules/SpringBoot/java/frame/auth/Verification.java b/src/main/resources/modules/SpringBoot/java/frame/auth/Verification.java new file mode 100644 index 00000000..c2204c54 --- /dev/null +++ b/src/main/resources/modules/SpringBoot/java/frame/auth/Verification.java @@ -0,0 +1,17 @@ +package ${basePackage}.frame.auth; + +import ${basePackage}.frame.validation.DictValidator; + +import javax.validation.Constraint; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Constraint(validatedBy = DictValidator.class) +public @interface Verification { + String name() default ""; + +} diff --git a/src/main/resources/modules/SpringBoot/java/frame/freemarker/Layout.java b/src/main/resources/modules/SpringBoot/java/frame/freemarker/Layout.java index b56c424b..f4c2db77 100644 --- a/src/main/resources/modules/SpringBoot/java/frame/freemarker/Layout.java +++ b/src/main/resources/modules/SpringBoot/java/frame/freemarker/Layout.java @@ -17,7 +17,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Locale; import ${basePackage}.frame.base.Control; -import ${basePackage}.frame.utils.LocalData; +import ${basePackage}.frame.auth.LocalData; /** * 布局帮助类 diff --git a/src/main/resources/modules/SpringBoot/java/frame/freemarker/ViewNameTranslator.java b/src/main/resources/modules/SpringBoot/java/frame/freemarker/ViewNameTranslator.java index d802e806..d6ee420c 100644 --- a/src/main/resources/modules/SpringBoot/java/frame/freemarker/ViewNameTranslator.java +++ b/src/main/resources/modules/SpringBoot/java/frame/freemarker/ViewNameTranslator.java @@ -1,6 +1,6 @@ package ${basePackage}.frame.freemarker; -import ${basePackage}.frame.utils.LocalData; +import ${basePackage}.frame.auth.LocalData; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.servlet.DispatcherServlet; diff --git a/src/main/resources/modules/SpringBoot/resources/templates/403.ftl b/src/main/resources/modules/SpringBoot/resources/templates/403.ftl index 82dc04a6..9ce0223a 100644 --- a/src/main/resources/modules/SpringBoot/resources/templates/403.ftl +++ b/src/main/resources/modules/SpringBoot/resources/templates/403.ftl @@ -1,210 +1,85 @@ + + + - + - @keyframes eye { - 0% { - opacity: 0; - transform: translateX(0) - } - 5% { - opacity: 0; - } - 15% { - opacity: 1; - transform: translateX(0) - } - 20% { - transform: translateX(15px) - } - 35% { - transform: translateX(15px) - } - 40% { - transform: translateX(-15px) - } - 60% { - transform: translateX(-15px) - } - 65% { - transform: translateX(0) - } - } + +
+
+ + + +
- @keyframes flux { - 0%, - 100% { - text-shadow: 0 0 5px #00FFC6, 0 0 15px #00FFC6, 0 0 50px #00FFC6, 0 0 50px #00FFC6, 0 0 2px #B9FFE8, 2px 2px 3px #12E29C; - color: #4BFFEF; - } - 50% { - text-shadow: 0 0 3px #00B58D, 0 0 7px #00B58D, 0 0 25px #00B58D, 0 0 25px #00B58D, 0 0 2px #00B58D, 2px 2px 3px #006A60; - color: #63D3AE; - } - } +
+

抱歉!您尚未登录或登录信息已失效,或尚未授权!

+
- + 返回上页 登录 +
+ +
+ + + + + +
@@ -246,4 +129,6 @@
- \ No newline at end of file + + + diff --git a/src/main/resources/modules/SpringBoot/resources/templates/404.ftl b/src/main/resources/modules/SpringBoot/resources/templates/404.ftl index 8de2c9eb..7c0f8000 100644 --- a/src/main/resources/modules/SpringBoot/resources/templates/404.ftl +++ b/src/main/resources/modules/SpringBoot/resources/templates/404.ftl @@ -1,1696 +1,78 @@ - + - - 404 - + - @-moz-keyframes triforce-float { - 0% { - -moz-transform: translate(0px, 0px) scale(0.90) - } - 65% { - -moz-transform: translate(0px, 30px) scale(1.0); - } - 100% { - -moz-transform: translate(0px, 0px) scale(0.90); - } - } + +
+
+ + + +
- @-o-keyframes triforce-float { - 0% { - -o-transform: translate(0px, 0px) scale(0.90) - } - 65% { - -o-transform: translate(0px, 30px) scale(1.0); - } - 100% { - -o-transform: translate(0px, 0px) scale(0.90); - } - } +
+

抱歉,您所请求的页面不存在或暂时不可用、也可能已被永久移除!

- @keyframes triforce-float { - 0% { - -webkit-transform: translate(0px, 0px) scale(0.90); - -moz-transform: translate(0px, 0px) scale(0.90); - -ms-transform: translate(0px, 0px) scale(0.90); - transform: translate(0px, 0px) scale(0.90); - } - 65% { - -webkit-transform: translate(0px, 30px) scale(1.0); - -moz-transform: translate(0px, 30px) scale(1.0); - -ms-transform: translate(0px, 30px) scale(1.0); - transform: translate(0px, 30px) scale(1.0); - } - 100% { - -webkit-transform: translate(0px, 0px) scale(0.90); - -moz-transform: translate(0px, 0px) scale(0.90); - -ms-transform: translate(0px, 0px) scale(0.90); - transform: translate(0px, 0px) scale(0.90); - } - } +
- [not-existing] { - zoom: 1; - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 返回上页 返回首页 +
- +
- \ No newline at end of file + diff --git a/src/main/resources/modules/SpringBoot/resources/templates/500.ftl b/src/main/resources/modules/SpringBoot/resources/templates/500.ftl index 120de0f5..183dfeec 100644 --- a/src/main/resources/modules/SpringBoot/resources/templates/500.ftl +++ b/src/main/resources/modules/SpringBoot/resources/templates/500.ftl @@ -1,40 +1,80 @@ + + - - +
-

- ${msg} -

-
+
+ + + +
+ +
+

服务器内部错误,错误信息如下:

+ +

${msg}

- \ No newline at end of file +
+ + 返回上页 返回首页 +
+ + + + diff --git a/src/main/resources/templates/404.ftl b/src/main/resources/templates/404.ftl index 8de2c9eb..7c0f8000 100644 --- a/src/main/resources/templates/404.ftl +++ b/src/main/resources/templates/404.ftl @@ -1,1696 +1,78 @@ - + - - 404 - + - @-moz-keyframes triforce-float { - 0% { - -moz-transform: translate(0px, 0px) scale(0.90) - } - 65% { - -moz-transform: translate(0px, 30px) scale(1.0); - } - 100% { - -moz-transform: translate(0px, 0px) scale(0.90); - } - } + +
+
+ + + +
- @-o-keyframes triforce-float { - 0% { - -o-transform: translate(0px, 0px) scale(0.90) - } - 65% { - -o-transform: translate(0px, 30px) scale(1.0); - } - 100% { - -o-transform: translate(0px, 0px) scale(0.90); - } - } +
+

抱歉,您所请求的页面不存在或暂时不可用、也可能已被永久移除!

- @keyframes triforce-float { - 0% { - -webkit-transform: translate(0px, 0px) scale(0.90); - -moz-transform: translate(0px, 0px) scale(0.90); - -ms-transform: translate(0px, 0px) scale(0.90); - transform: translate(0px, 0px) scale(0.90); - } - 65% { - -webkit-transform: translate(0px, 30px) scale(1.0); - -moz-transform: translate(0px, 30px) scale(1.0); - -ms-transform: translate(0px, 30px) scale(1.0); - transform: translate(0px, 30px) scale(1.0); - } - 100% { - -webkit-transform: translate(0px, 0px) scale(0.90); - -moz-transform: translate(0px, 0px) scale(0.90); - -ms-transform: translate(0px, 0px) scale(0.90); - transform: translate(0px, 0px) scale(0.90); - } - } +
- [not-existing] { - zoom: 1; - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 返回上页 返回首页 +
- +
- \ No newline at end of file + diff --git a/src/main/resources/templates/500.ftl b/src/main/resources/templates/500.ftl index 120de0f5..183dfeec 100644 --- a/src/main/resources/templates/500.ftl +++ b/src/main/resources/templates/500.ftl @@ -1,40 +1,80 @@ + + - - +
-

- ${msg} -

-
+
+ + + +
+ +
+

服务器内部错误,错误信息如下:

+ +

${msg}

- \ No newline at end of file +
+ + 返回上页 返回首页 +
+ + + +