From 8110d9945175081169e55a39d20ddedb6b9ac91b Mon Sep 17 00:00:00 2001 From: shimingxy Date: Mon, 6 Jan 2020 21:36:51 +0800 Subject: [PATCH] add banner add banner --- build.gradle | 2 +- .../java/org/maxkey/web}/ImageEndpoint.java | 4 +- .../maxkey/web/endpoint/LogoutEndpoint.java | 2 - .../web/interceptor/PermissionAdapter.java | 3 +- .../src/main/resources/application.properties | 3 + .../src/main/resources/banner.txt | 7 + .../src/main/resources/log4j2.xml | 7 +- .../resources/spring/maxkey-mgt-security.xml | 29 ++-- .../resources/templates/views/layout/left.ftl | 2 - .../templates/views/layout/nav_primary.ftl | 84 ----------- .../templates/views/layout/nav_second.ftl | 1 - .../templates/views/layout/nav_third.ftl | 0 .../main/java/org/maxkey/MaxKeyConfig.java | 24 +++ .../contorller/OneTimePasswordController.java | 43 +++--- .../maxkey/web/endpoint/ImageEndpoint.java | 138 ------------------ .../web/interceptor/PermissionAdapter.java | 3 +- .../src/main/resources/application.properties | 3 + .../src/main/resources/banner.txt | 7 + .../src/main/resources/log4j2.xml | 7 +- .../main/resources/spring/maxkey-security.xml | 80 ++-------- .../resources/templates/views/layout/left.ftl | 2 - .../templates/views/layout/nav_third.ftl | 0 22 files changed, 102 insertions(+), 349 deletions(-) rename {maxkey-web-manage/src/main/java/org/maxkey/web/endpoint => maxkey-core/src/main/java/org/maxkey/web}/ImageEndpoint.java (97%) create mode 100644 maxkey-web-manage/src/main/resources/banner.txt delete mode 100644 maxkey-web-manage/src/main/resources/templates/views/layout/left.ftl delete mode 100644 maxkey-web-manage/src/main/resources/templates/views/layout/nav_primary.ftl delete mode 100644 maxkey-web-manage/src/main/resources/templates/views/layout/nav_second.ftl delete mode 100644 maxkey-web-manage/src/main/resources/templates/views/layout/nav_third.ftl delete mode 100644 maxkey-web-maxkey/src/main/java/org/maxkey/web/endpoint/ImageEndpoint.java create mode 100644 maxkey-web-maxkey/src/main/resources/banner.txt delete mode 100644 maxkey-web-maxkey/src/main/resources/templates/views/layout/left.ftl delete mode 100644 maxkey-web-maxkey/src/main/resources/templates/views/layout/nav_third.ftl diff --git a/build.gradle b/build.gradle index e9b0830f..516cd5fe 100644 --- a/build.gradle +++ b/build.gradle @@ -147,7 +147,7 @@ subprojects { compile group: 'org.apache.httpcomponents', name: 'httpcore', version: '4.4.10' compile group: 'org.apache.velocity', name: 'velocity', version: '1.7' compile group: 'velocity', name: 'velocity-dep', version: '1.4' - compile group: 'org.freemarker', name: 'freemarker', version: '2.3.28' + compile group: 'org.freemarker', name: 'freemarker', version: '2.3.29' compile group: 'org.apache.commons', name: 'not-yet-commons-ssl', version: '0.3.9' //logs compile group: 'org.apache.logging.log4j', name: 'log4j-1.2-api', version: "${log4jVersion}" diff --git a/maxkey-web-manage/src/main/java/org/maxkey/web/endpoint/ImageEndpoint.java b/maxkey-core/src/main/java/org/maxkey/web/ImageEndpoint.java similarity index 97% rename from maxkey-web-manage/src/main/java/org/maxkey/web/endpoint/ImageEndpoint.java rename to maxkey-core/src/main/java/org/maxkey/web/ImageEndpoint.java index 02028e81..b31c8cd3 100644 --- a/maxkey-web-manage/src/main/java/org/maxkey/web/endpoint/ImageEndpoint.java +++ b/maxkey-core/src/main/java/org/maxkey/web/ImageEndpoint.java @@ -1,4 +1,4 @@ -package org.maxkey.web.endpoint; +package org.maxkey.web; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; @@ -52,7 +52,7 @@ public class ImageEndpoint { response.setContentType("image/jpeg"); // create the text for the image String capText = captchaProducer.createText(); - _logger.debug("Sesssion id " + request.getSession().getId() + " , Captcha Text is " + capText); + _logger.trace("Sesssion id " + request.getSession().getId() + " , Captcha Text is " + capText); // store the text in the session request.getSession().setAttribute(WebConstants.KAPTCHA_SESSION_KEY, capText); // create the image with the text diff --git a/maxkey-web-manage/src/main/java/org/maxkey/web/endpoint/LogoutEndpoint.java b/maxkey-web-manage/src/main/java/org/maxkey/web/endpoint/LogoutEndpoint.java index 5e761641..1a8aef9b 100644 --- a/maxkey-web-manage/src/main/java/org/maxkey/web/endpoint/LogoutEndpoint.java +++ b/maxkey-web-manage/src/main/java/org/maxkey/web/endpoint/LogoutEndpoint.java @@ -3,8 +3,6 @@ package org.maxkey.web.endpoint; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.maxkey.authn.realm.AbstractAuthenticationRealm; import org.maxkey.web.WebConstants; import org.maxkey.web.WebContext; diff --git a/maxkey-web-manage/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java b/maxkey-web-manage/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java index b7b80a76..cf475aed 100644 --- a/maxkey-web-manage/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java +++ b/maxkey-web-manage/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java @@ -36,10 +36,11 @@ public class PermissionAdapter extends HandlerInterceptorAdapter { */ @Override public boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler) throws Exception { - _logger.debug("PermissionAdapter preHandle"); + _logger.trace("PermissionAdapter preHandle"); //判断用户是否登录 if(WebContext.getAuthentication()==null||WebContext.getAuthentication().getAuthorities()==null){//判断用户和角色,判断用户是否登录用户 + _logger.trace("No Authentication ... forward to /login"); RequestDispatcher dispatcher = request.getRequestDispatcher("/login"); dispatcher.forward(request, response); return false; diff --git a/maxkey-web-manage/src/main/resources/application.properties b/maxkey-web-manage/src/main/resources/application.properties index 9eecebdd..93275b76 100644 --- a/maxkey-web-manage/src/main/resources/application.properties +++ b/maxkey-web-manage/src/main/resources/application.properties @@ -5,6 +5,9 @@ server.port=9521 #web app context path server.servlet.context-path=/maxkey-mgt +application.name=MaxKey-Mgt +application.formatted-version=v1.1 GA + #for freemarker spring.freemarker.template-loader-path=classpath:/templates/views spring.freemarker.cache=false diff --git a/maxkey-web-manage/src/main/resources/banner.txt b/maxkey-web-manage/src/main/resources/banner.txt new file mode 100644 index 00000000..34211c3a --- /dev/null +++ b/maxkey-web-manage/src/main/resources/banner.txt @@ -0,0 +1,7 @@ + __ ___ __ __ + / |/ /__ ___ __ / //_/__ __ __ + / /|_/ / _ `/\ \ // ,< / -_) // / +/_/ /_/\_,_//_\_\/_/|_|\__/\_, / + /___/ + ${application.formatted-version} + :: Spring Boot :: ${spring-boot.formatted-version} \ No newline at end of file diff --git a/maxkey-web-manage/src/main/resources/log4j2.xml b/maxkey-web-manage/src/main/resources/log4j2.xml index 09399541..2ac6eab4 100644 --- a/maxkey-web-manage/src/main/resources/log4j2.xml +++ b/maxkey-web-manage/src/main/resources/log4j2.xml @@ -1,5 +1,8 @@ - + + @@ -31,4 +34,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/maxkey-web-manage/src/main/resources/spring/maxkey-mgt-security.xml b/maxkey-web-manage/src/main/resources/spring/maxkey-mgt-security.xml index 49ead5b8..a297a77b 100644 --- a/maxkey-web-manage/src/main/resources/spring/maxkey-mgt-security.xml +++ b/maxkey-web-manage/src/main/resources/spring/maxkey-mgt-security.xml @@ -58,25 +58,18 @@ - - - - - - - - - + + + + + + + + + + + - - - - - - - - - diff --git a/maxkey-web-manage/src/main/resources/templates/views/layout/left.ftl b/maxkey-web-manage/src/main/resources/templates/views/layout/left.ftl deleted file mode 100644 index 139597f9..00000000 --- a/maxkey-web-manage/src/main/resources/templates/views/layout/left.ftl +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/maxkey-web-manage/src/main/resources/templates/views/layout/nav_primary.ftl b/maxkey-web-manage/src/main/resources/templates/views/layout/nav_primary.ftl deleted file mode 100644 index 7f38f270..00000000 --- a/maxkey-web-manage/src/main/resources/templates/views/layout/nav_primary.ftl +++ /dev/null @@ -1,84 +0,0 @@ - - - \ No newline at end of file diff --git a/maxkey-web-manage/src/main/resources/templates/views/layout/nav_second.ftl b/maxkey-web-manage/src/main/resources/templates/views/layout/nav_second.ftl deleted file mode 100644 index cbdae528..00000000 --- a/maxkey-web-manage/src/main/resources/templates/views/layout/nav_second.ftl +++ /dev/null @@ -1 +0,0 @@ -
diff --git a/maxkey-web-manage/src/main/resources/templates/views/layout/nav_third.ftl b/maxkey-web-manage/src/main/resources/templates/views/layout/nav_third.ftl deleted file mode 100644 index e69de29b..00000000 diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyConfig.java b/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyConfig.java index 27a1089f..5dbea8d1 100644 --- a/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyConfig.java +++ b/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyConfig.java @@ -2,11 +2,15 @@ package org.maxkey; import org.maxkey.authz.oauth2.provider.endpoint.TokenEndpointAuthenticationFilter; import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.web.server.ConfigurableWebServerFactory; +import org.springframework.boot.web.server.ErrorPage; +import org.springframework.boot.web.server.WebServerFactoryCustomizer; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; import org.springframework.context.annotation.PropertySource; +import org.springframework.http.HttpStatus; @Configuration @ImportResource(locations={"classpath:spring/maxkey.xml"}) @@ -32,4 +36,24 @@ public class MaxKeyConfig { registration.setOrder(1); return registration; } + + /** + * 配置默认错误页面(仅用于内嵌tomcat启动时) + * 使用这种方式,在打包为war后不起作用 + * + * @return + */ + @Bean + public WebServerFactoryCustomizer webServerFactoryCustomizer() { + return new WebServerFactoryCustomizer() { + @Override + public void customize(ConfigurableWebServerFactory factory) { + ErrorPage errorPage400 = new ErrorPage(HttpStatus.BAD_REQUEST,"/error-400"); + ErrorPage errorPage404 = new ErrorPage(HttpStatus.NOT_FOUND,"/error-404"); + ErrorPage errorPage500 = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR,"/error-500"); + factory.addErrorPages(errorPage400, errorPage404,errorPage500); + + } + }; + } } diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/OneTimePasswordController.java b/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/OneTimePasswordController.java index e8377da8..bc40e2ce 100644 --- a/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/OneTimePasswordController.java +++ b/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/OneTimePasswordController.java @@ -12,7 +12,7 @@ import org.maxkey.dao.service.UserInfoService; import org.maxkey.domain.UserInfo; import org.maxkey.util.RQCodeUtils; import org.maxkey.web.WebContext; -import org.maxkey.web.endpoint.ImageEndpoint; +import org.maxkey.web.ImageEndpoint; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -36,34 +36,25 @@ public class OneTimePasswordController { private UserInfoService userInfoService; @Autowired - @Qualifier("timeBasedKeyUriFormat") - KeyUriFormat timeBasedKeyUriFormat; - - @Autowired - @Qualifier("counterBasedKeyUriFormat") - KeyUriFormat counterBasedKeyUriFormat; - - @Autowired - @Qualifier("hotpKeyUriFormat") - KeyUriFormat hotpKeyUriFormat; + @Qualifier("keyUriFormat") + KeyUriFormat keyUriFormat; @Autowired @Qualifier("passwordReciprocal") PasswordReciprocal passwordReciprocal; - @RequestMapping(value={"/timebased"}) public ModelAndView timebased(){ ModelAndView modelAndView=new ModelAndView("safe/timeBased"); UserInfo userInfo=WebContext.getUserInfo(); String sharedSecret=passwordReciprocal.decoder(userInfo.getSharedSecret()); - timeBasedKeyUriFormat.setSecret(sharedSecret); - String otpauth=timeBasedKeyUriFormat.format(userInfo.getUsername()); + keyUriFormat.setSecret(sharedSecret); + String otpauth=keyUriFormat.format(userInfo.getUsername()); byte[] byteSharedSecret=Base32Utils.decode(sharedSecret); String hexSharedSecret=Hex.encodeHexString(byteSharedSecret); modelAndView.addObject("id", genRQCode(otpauth)); modelAndView.addObject("userInfo", userInfo); - modelAndView.addObject("format", timeBasedKeyUriFormat); + modelAndView.addObject("format", keyUriFormat); modelAndView.addObject("sharedSecret", sharedSecret); modelAndView.addObject("hexSharedSecret", hexSharedSecret); return modelAndView; @@ -72,7 +63,7 @@ public class OneTimePasswordController { @RequestMapping(value={"gen/timebased"}) public ModelAndView gentimebased(){ UserInfo userInfo=WebContext.getUserInfo(); - byte[] byteSharedSecret=OTPSecret.generate(timeBasedKeyUriFormat.getCrypto()); + byte[] byteSharedSecret=OTPSecret.generate(keyUriFormat.getCrypto()); String sharedSecret=Base32Utils.encode(byteSharedSecret); sharedSecret=passwordReciprocal.encode(sharedSecret); userInfo.setSharedSecret(sharedSecret); @@ -87,15 +78,15 @@ public class OneTimePasswordController { ModelAndView modelAndView=new ModelAndView("safe/counterBased"); UserInfo userInfo=WebContext.getUserInfo(); String sharedSecret=passwordReciprocal.decoder(userInfo.getSharedSecret()); - counterBasedKeyUriFormat.setSecret(sharedSecret); - counterBasedKeyUriFormat.setCounter(Long.parseLong(userInfo.getSharedCounter())); - String otpauth=counterBasedKeyUriFormat.format(userInfo.getUsername()); + keyUriFormat.setSecret(sharedSecret); + keyUriFormat.setCounter(Long.parseLong(userInfo.getSharedCounter())); + String otpauth=keyUriFormat.format(userInfo.getUsername()); byte[] byteSharedSecret=Base32Utils.decode(sharedSecret); String hexSharedSecret=Hex.encodeHexString(byteSharedSecret); modelAndView.addObject("id", genRQCode(otpauth)); modelAndView.addObject("userInfo", userInfo); - modelAndView.addObject("format", counterBasedKeyUriFormat); + modelAndView.addObject("format", keyUriFormat); modelAndView.addObject("sharedSecret", sharedSecret); modelAndView.addObject("hexSharedSecret", hexSharedSecret); return modelAndView; @@ -105,7 +96,7 @@ public class OneTimePasswordController { @RequestMapping(value={"gen/counterbased"}) public ModelAndView gencounterbased(){ UserInfo userInfo=WebContext.getUserInfo(); - byte[] byteSharedSecret=OTPSecret.generate(counterBasedKeyUriFormat.getCrypto()); + byte[] byteSharedSecret=OTPSecret.generate(keyUriFormat.getCrypto()); String sharedSecret=Base32Utils.encode(byteSharedSecret); sharedSecret=passwordReciprocal.encode(sharedSecret); userInfo.setSharedSecret(sharedSecret); @@ -120,14 +111,14 @@ public class OneTimePasswordController { ModelAndView modelAndView=new ModelAndView("safe/hotp"); UserInfo userInfo=WebContext.getUserInfo(); String sharedSecret=passwordReciprocal.decoder(userInfo.getSharedSecret()); - hotpKeyUriFormat.setSecret(sharedSecret); - hotpKeyUriFormat.setCounter(Long.parseLong(userInfo.getSharedCounter())); - String otpauth=hotpKeyUriFormat.format(userInfo.getUsername()); + keyUriFormat.setSecret(sharedSecret); + keyUriFormat.setCounter(Long.parseLong(userInfo.getSharedCounter())); + String otpauth=keyUriFormat.format(userInfo.getUsername()); byte[] byteSharedSecret=Base32Utils.decode(sharedSecret); String hexSharedSecret=Hex.encodeHexString(byteSharedSecret); modelAndView.addObject("id", genRQCode(otpauth)); modelAndView.addObject("userInfo", userInfo); - modelAndView.addObject("format", hotpKeyUriFormat); + modelAndView.addObject("format", keyUriFormat); modelAndView.addObject("sharedSecret", sharedSecret); modelAndView.addObject("hexSharedSecret", hexSharedSecret); return modelAndView; @@ -137,7 +128,7 @@ public class OneTimePasswordController { @RequestMapping(value={"gen/hotp"}) public ModelAndView genhotp(){ UserInfo userInfo=WebContext.getUserInfo(); - byte[] byteSharedSecret=OTPSecret.generate(hotpKeyUriFormat.getCrypto()); + byte[] byteSharedSecret=OTPSecret.generate(keyUriFormat.getCrypto()); String sharedSecret=Base32Utils.encode(byteSharedSecret); sharedSecret=passwordReciprocal.encode(sharedSecret); userInfo.setSharedSecret(sharedSecret); diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/endpoint/ImageEndpoint.java b/maxkey-web-maxkey/src/main/java/org/maxkey/web/endpoint/ImageEndpoint.java deleted file mode 100644 index 02028e81..00000000 --- a/maxkey-web-maxkey/src/main/java/org/maxkey/web/endpoint/ImageEndpoint.java +++ /dev/null @@ -1,138 +0,0 @@ -package org.maxkey.web.endpoint; - -import java.awt.image.BufferedImage; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; - -import javax.imageio.ImageIO; -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.maxkey.web.WebConstants; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; - -import com.google.code.kaptcha.Producer; - -/** - * @author Crystal.Sea - * - */ -@Controller -public class ImageEndpoint { - private static final Logger _logger = LoggerFactory.getLogger(ImageEndpoint.class); - - @Autowired - private Producer captchaProducer; - - /** - * captcha image Producer - * @param request - * @param response - */ - @RequestMapping(value = "/captcha") - public void captchaHandleRequest(HttpServletRequest request,HttpServletResponse response){ - try{ - // Set to expire far in the past. - response.setDateHeader("Expires", 0); - // Set standard HTTP/1.1 no-cache headers. - response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate"); - // Set IE extended HTTP/1.1 no-cache headers (use addHeader). - response.addHeader("Cache-Control", "post-check=0, pre-check=0"); - // Set standard HTTP/1.0 no-cache header. - response.setHeader("Pragma", "no-cache"); - // return a jpeg - response.setContentType("image/jpeg"); - // create the text for the image - String capText = captchaProducer.createText(); - _logger.debug("Sesssion id " + request.getSession().getId() + " , Captcha Text is " + capText); - // store the text in the session - request.getSession().setAttribute(WebConstants.KAPTCHA_SESSION_KEY, capText); - // create the image with the text - BufferedImage bi = captchaProducer.createImage(capText); - ServletOutputStream out = response.getOutputStream(); - // write the data out - ImageIO.write(bi, "jpg", out); - - out.flush(); - out.close(); - }catch(Exception e) { - _logger.error("captcha Producer Error " + e.getMessage()); - } - } - - /** - * image Producer - * @param request - * @param response - * @return - * @throws Exception - */ - - @RequestMapping("/image/{id}") - public void imageHandleRequest(HttpServletRequest request,HttpServletResponse response,@PathVariable("id") String id) throws Exception { - // Set to expire far in the past. - response.setDateHeader("Expires", 0); - // Set standard HTTP/1.1 no-cache headers. - response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate"); - // Set IE extended HTTP/1.1 no-cache headers (use addHeader). - response.addHeader("Cache-Control", "post-check=0, pre-check=0"); - // Set standard HTTP/1.0 no-cache header. - response.setHeader("Pragma", "no-cache"); - // return a jpeg/gif - response.setContentType("image/gif"); - // create the text for the image - byte[]image=(byte[]) request.getSession().getAttribute(id); - //request.getSession().removeAttribute(id); - // create the image with the text - if(image!=null){ - ServletOutputStream out = response.getOutputStream(); - // write the data out - ImageIO.write(byte2BufferedImage(image), "gif", out); - try{ - out.flush(); - }finally{ - out.close(); - } - } - } - - public static BufferedImage byte2BufferedImage(byte[]imageByte){ - try { - InputStream in = new ByteArrayInputStream(imageByte); - BufferedImage bufferedImage = ImageIO.read(in); - return bufferedImage; - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } - - public static byte[] bufferedImage2Byte(BufferedImage bufferedImage ){ - try { - ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream(); - ImageIO.write(bufferedImage,"gif",byteArrayOutputStream); - return byteArrayOutputStream.toByteArray(); - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } - - public Producer getCaptchaProducer() { - return captchaProducer; - } - - public void setCaptchaProducer(Producer captchaProducer) { - this.captchaProducer = captchaProducer; - } - - -} diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java b/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java index f61539c7..934c3256 100644 --- a/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java +++ b/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java @@ -36,9 +36,10 @@ public class PermissionAdapter extends HandlerInterceptorAdapter { */ @Override public boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler) throws Exception { - _logger.debug("PermissionAdapter preHandle"); + _logger.trace("PermissionAdapter preHandle"); //判断用户是否登录 if(WebContext.getAuthentication()==null||WebContext.getAuthentication().getAuthorities()==null){//判断用户和角色,判断用户是否登录用户 + _logger.trace("No Authentication ... forward to /login"); RequestDispatcher dispatcher = request.getRequestDispatcher("/login"); dispatcher.forward(request, response); return false; diff --git a/maxkey-web-maxkey/src/main/resources/application.properties b/maxkey-web-maxkey/src/main/resources/application.properties index dda4f0bb..f6d2b698 100644 --- a/maxkey-web-maxkey/src/main/resources/application.properties +++ b/maxkey-web-maxkey/src/main/resources/application.properties @@ -5,6 +5,9 @@ server.port=80 #web app context path server.servlet.context-path=/maxkey +application.name=MaxKey +application.formatted-version=v1.1 GA + #for freemarker spring.freemarker.template-loader-path=classpath:/templates/views spring.freemarker.cache=false diff --git a/maxkey-web-maxkey/src/main/resources/banner.txt b/maxkey-web-maxkey/src/main/resources/banner.txt new file mode 100644 index 00000000..34211c3a --- /dev/null +++ b/maxkey-web-maxkey/src/main/resources/banner.txt @@ -0,0 +1,7 @@ + __ ___ __ __ + / |/ /__ ___ __ / //_/__ __ __ + / /|_/ / _ `/\ \ // ,< / -_) // / +/_/ /_/\_,_//_\_\/_/|_|\__/\_, / + /___/ + ${application.formatted-version} + :: Spring Boot :: ${spring-boot.formatted-version} \ No newline at end of file diff --git a/maxkey-web-maxkey/src/main/resources/log4j2.xml b/maxkey-web-maxkey/src/main/resources/log4j2.xml index 994aeeb7..f0638b91 100644 --- a/maxkey-web-maxkey/src/main/resources/log4j2.xml +++ b/maxkey-web-maxkey/src/main/resources/log4j2.xml @@ -1,5 +1,8 @@ - + + @@ -31,4 +34,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/maxkey-web-maxkey/src/main/resources/spring/maxkey-security.xml b/maxkey-web-maxkey/src/main/resources/spring/maxkey-security.xml index 4719f262..9152c50c 100644 --- a/maxkey-web-maxkey/src/main/resources/spring/maxkey-security.xml +++ b/maxkey-web-maxkey/src/main/resources/spring/maxkey-security.xml @@ -25,15 +25,14 @@ - - - - - - - - - + + + + + + + + @@ -77,32 +76,15 @@ - + - - + + - - - - - - - - - - - - - - - - - @@ -150,40 +132,8 @@ - - - - - - - + - + diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/layout/left.ftl b/maxkey-web-maxkey/src/main/resources/templates/views/layout/left.ftl deleted file mode 100644 index 139597f9..00000000 --- a/maxkey-web-maxkey/src/main/resources/templates/views/layout/left.ftl +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/layout/nav_third.ftl b/maxkey-web-maxkey/src/main/resources/templates/views/layout/nav_third.ftl deleted file mode 100644 index e69de29b..00000000