From 1c5e244a9595f4b6cb458875076803536e3d6a21 Mon Sep 17 00:00:00 2001 From: xiongfeng Date: Wed, 6 Jul 2022 15:41:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E7=A8=8B=E5=BA=8F=E5=86=85?= =?UTF-8?q?=E9=9D=99=E6=80=81=E9=A1=B5=E9=9D=A2=E8=B7=B3=E8=BD=AC=20?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0dockerfile=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 14 +++++++ pom.xml | 12 ++++-- .../common/utils/ApplicationContextUtils.java | 36 ++++++++++++++++ .../basedemo/controller/LoginController.java | 42 +++++++++++++++++++ .../basedemo/controller/UserController.java | 2 +- .../interceptor/InterceptorConfig.java | 2 +- .../interceptor/TokenInterceptor.java | 14 ++++--- .../service/impl/UserServiceImpl.java | 1 + src/main/resources/application-dev.yml | 28 ++++++------- src/main/resources/application.yml | 2 +- src/main/resources/templates/login.html | 5 +-- src/main/resources/templates/success.html | 2 +- 12 files changed, 130 insertions(+), 30 deletions(-) create mode 100644 Dockerfile create mode 100644 src/main/java/cn/xf/basedemo/common/utils/ApplicationContextUtils.java create mode 100644 src/main/java/cn/xf/basedemo/controller/LoginController.java diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..87829bc --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +# java8运行环境 +FROM openjdk:8-jdk-alpine +# 作者名称 +MAINTAINER xiongfeng + +# 切换工作目录 +WORKDIR /root/java + +# 添加demo-start-1.0.0.jar文件到docker环境内 +ADD xf-boot-base.jar /root/java/xf-boot-base.jar +# 暴露端口8080 +EXPOSE 8080 +# 运行命令 +ENTRYPOINT ["java", "-server", "-Xms512m", "-Xmx512m", "-jar", "/root/java/xf-boot-base.jar"] \ No newline at end of file diff --git a/pom.xml b/pom.xml index 2d03abb..fad689c 100644 --- a/pom.xml +++ b/pom.xml @@ -9,10 +9,10 @@ cn.xf - spring-boot-base-demo + xf-boot-base 0.0.1-SNAPSHOT - spring-boot-base-demo - spring-boot-base-demo + xf-boot-base + xf-boot-base 1.8 @@ -97,7 +97,11 @@ 2.0.8 - + + + org.springframework.boot + spring-boot-starter-thymeleaf + diff --git a/src/main/java/cn/xf/basedemo/common/utils/ApplicationContextUtils.java b/src/main/java/cn/xf/basedemo/common/utils/ApplicationContextUtils.java new file mode 100644 index 0000000..ec79a21 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/common/utils/ApplicationContextUtils.java @@ -0,0 +1,36 @@ +package cn.xf.basedemo.common.utils; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * @program: xf-boot-base + * @ClassName ApplicationContextUtils + * @description: + * @author: xiongfeng + * @create: 2022-07-06 14:13 + **/ +@Component +public class ApplicationContextUtils implements ApplicationContextAware { + //放置在获取bean的时候提示空指针,将其定义为静态变量 + private static ApplicationContext context; + + //类初始化完成之后调用setApplicationContext()方法进行操作 + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + ApplicationContextUtils.context = applicationContext; + } + + public static ApplicationContext geteContext(){ + return context; + } + + public static Object getBean(String beanName){ + //在这一步的时候一定要注意,此时可调用这个方法的时候 + //context可能为空,会提示空指针异常,需要将其定义成静态的,这样类加载的时候 + //context就已经存在了 + return context.getBean(beanName); + } +} diff --git a/src/main/java/cn/xf/basedemo/controller/LoginController.java b/src/main/java/cn/xf/basedemo/controller/LoginController.java new file mode 100644 index 0000000..283eb49 --- /dev/null +++ b/src/main/java/cn/xf/basedemo/controller/LoginController.java @@ -0,0 +1,42 @@ +package cn.xf.basedemo.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * @program: xf-boot-base + * @ClassName LoginController + * @description: 页面跳转转发控制器 + * @author: xiongfeng + * @create: 2022-07-06 11:51 + **/ +@Controller +@RequestMapping("web") +public class LoginController { + + /** + * @Description 进入登录页面 + * @Author xiongfeng + * @Date 2022/7/6 + * @Param [] + * @return java.lang.String + **/ + @RequestMapping(value = "/login") + public String login() { + return "login"; + } + + /** + * @Description 静态页面跳转统一入口 + * @Author xiongfeng + * @Date 2022/7/6 + * @Param [url] + * @return java.lang.String + **/ + @RequestMapping(value = "/{url}") + public String skipUrl(@PathVariable(name = "url") String url) { + return url; + } + +} diff --git a/src/main/java/cn/xf/basedemo/controller/UserController.java b/src/main/java/cn/xf/basedemo/controller/UserController.java index 4d4c251..84621e6 100644 --- a/src/main/java/cn/xf/basedemo/controller/UserController.java +++ b/src/main/java/cn/xf/basedemo/controller/UserController.java @@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.RestController; /** * @program: xf-boot-base * @ClassName UserController - * @description: + * @description: 用户控制器 * @author: xiongfeng * @create: 2022-06-28 09:17 **/ diff --git a/src/main/java/cn/xf/basedemo/interceptor/InterceptorConfig.java b/src/main/java/cn/xf/basedemo/interceptor/InterceptorConfig.java index 99c1c9c..92cdda3 100644 --- a/src/main/java/cn/xf/basedemo/interceptor/InterceptorConfig.java +++ b/src/main/java/cn/xf/basedemo/interceptor/InterceptorConfig.java @@ -19,6 +19,6 @@ public class InterceptorConfig implements WebMvcConfigurer { public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new TokenInterceptor()) //登录逻辑拦截类 .addPathPatterns("/**") //需要拦截的请求(设置的全部拦截) - .excludePathPatterns("`/user/login","/user/register`"); //忽略的请求 + .excludePathPatterns("/user/**","/web/**"); //忽略的请求 } } diff --git a/src/main/java/cn/xf/basedemo/interceptor/TokenInterceptor.java b/src/main/java/cn/xf/basedemo/interceptor/TokenInterceptor.java index f6b9992..4afa245 100644 --- a/src/main/java/cn/xf/basedemo/interceptor/TokenInterceptor.java +++ b/src/main/java/cn/xf/basedemo/interceptor/TokenInterceptor.java @@ -1,9 +1,11 @@ package cn.xf.basedemo.interceptor; import cn.xf.basedemo.common.model.LoginUser; +import cn.xf.basedemo.common.utils.ApplicationContextUtils; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.web.servlet.HandlerInterceptor; @@ -22,15 +24,15 @@ import java.util.concurrent.TimeUnit; **/ public class TokenInterceptor implements HandlerInterceptor { - @Autowired - private StringRedisTemplate redisTemplate; + RedisTemplate redisTemplate = + (RedisTemplate) ApplicationContextUtils.getBean("redisTemplate"); @Autowired private ObjectMapper objectMapper; //不拦截的请求列表 - private static final List EXCLUDE_PATH_LIST = Arrays.asList("/user/login"); + private static final List EXCLUDE_PATH_LIST = Arrays.asList("/user/login","/web/login"); @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { @@ -43,8 +45,10 @@ public class TokenInterceptor implements HandlerInterceptor { String token = request.getHeader("Authorization"); if(StringUtils.isEmpty(token)) token = request.getParameter("token"); - - String value = redisTemplate.opsForValue().get(token); + if(StringUtils.isEmpty(token)){ + return false; + } + String value = (String) redisTemplate.opsForValue().get("token:" + token); if(StringUtils.isEmpty(value)){ return false; } diff --git a/src/main/java/cn/xf/basedemo/service/impl/UserServiceImpl.java b/src/main/java/cn/xf/basedemo/service/impl/UserServiceImpl.java index 0da37c9..7145663 100644 --- a/src/main/java/cn/xf/basedemo/service/impl/UserServiceImpl.java +++ b/src/main/java/cn/xf/basedemo/service/impl/UserServiceImpl.java @@ -63,6 +63,7 @@ public class UserServiceImpl implements UserService { loginInfo = objectMapper.readValue(loginJson, LoginInfo.class); } catch (JsonProcessingException e) { e.printStackTrace(); + return RetObj.error("账号或密码错误"); } if (StringUtils.isNotBlank(loginInfo.check())) { return RetObj.error(loginInfo.check()); diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 1291ac5..a6f860a 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -42,20 +42,20 @@ global: rsaPrivateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAL8XlRALVBay7dCwRJAHP0z4YMD0C2bSpVK_AizLnryXJEuL6erdW--eaCuUvjJNueAXPJ9vYOfflw0IewG8hoa4Jjf8-nM-ozNWnGvZCUSSERf1q2clDWtZ7FLxB5m0-OmIjChCsKFPNeMP-xhSQOupLKQWmXKK9_Q1I7ZaoIF3AgMBAAECgYBxTUA61Ry0oL7U_86HP2TO9G4ZuhmQi9EucMaPXOPvmgYRLRIzCbDbMKc_P-BN3zwYnG57cgSZNz9OoPqeGvP_oVTnkoEpVkCSV-JP2p_DK09LdbDqszJXMrxAkPmWGUw8IRMcTJT1xJJcgzFE6T0CmTo-Vk47AnmqfJD4U6o74QJBAPRjVUJKZnrMSnSqKPDL2ThgTo8h7-KFxl_Z-g724lTOFiCmBpi6nCWAcuacFRrrYqxF-r9c4zdIyR7AvLROql8CQQDIK_kRF52dVtwShciZhyeUBLoi0nWV9F8mMGt60NTEER9zPEgPsv2aVn8h97KMWOwmd2Da4EPm25QxOuaKQC_pAkBczcfXp5co9KElkmR_pHl1jiTm97U3qSM-zPDHc_tYxvXiKgoBP4QCPbfkWMsu8MoEr4Jb3vMt0EcHlZtTQTgzAkAfmNla-lhV4sUgY1_T5EK6GbjsED6hag6u74u3ukkrnexR-10ApWdkumydBwV3I_464DM4uZfeVCDjWIHVpuYpAkEA6QLPztGD4V8Q1PqTEeSF3i68CKPM8vO1_mCH2JD7qsqDQcIKkczj5rTg7hlOKwB9V6gSw4CbnOF6moTooRD-cQ ##redis -redis: - datasource: - token: - database: 1 - host: 122.112.153.128 - port: 6379 - password: 'redis' - lettuce: - pool: - max-active: 8 - max-wait: -1ms - max-idle: 8 - min-idle: 0 - timeout: 3000ms +#redis: +# datasource: +# token: +# database: 1 +# host: 122.112.153.128 +# port: 6379 +# password: 'redis' +# lettuce: +# pool: +# max-active: 8 +# max-wait: -1ms +# max-idle: 8 +# min-idle: 0 +# timeout: 3000ms #oss: # name: alioss diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 671e309..e9fa59d 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -6,7 +6,7 @@ spring: profiles: active: dev application: - name: spring-boot-base-demo + name: xf-boot-base servlet: multipart: max-file-size: 20MB diff --git a/src/main/resources/templates/login.html b/src/main/resources/templates/login.html index 91b2b20..3648628 100644 --- a/src/main/resources/templates/login.html +++ b/src/main/resources/templates/login.html @@ -24,7 +24,6 @@ -
@@ -63,8 +62,8 @@ var data = response.data; if (data.code == 200) { //中文需要进行两次encodeURI转码( encodeURI:把URI字符串采用UTF-8编码格式转化成escape格式的字符串) - var param = "?token=" + data.data.token + "&name=" + encodeURI(encodeURI(data.data.name)); - window.location.href ="success.html" + param + var param = "?token=" + data.data.token + "&name=" + encodeURI(encodeURI(data.data.name)); + window.location.href = "success" + param } else { alert(data.message) } diff --git a/src/main/resources/templates/success.html b/src/main/resources/templates/success.html index 175dcac..9e70912 100644 --- a/src/main/resources/templates/success.html +++ b/src/main/resources/templates/success.html @@ -22,7 +22,7 @@ el: '#app', data: { token: '', - name:'' + name: '' }, mounted: function () { this.token = this.getData("token");