diff --git a/pom.xml b/pom.xml index 1b0714e..e5da5f8 100644 --- a/pom.xml +++ b/pom.xml @@ -271,6 +271,12 @@ 2.3.28 compile + + org.springframework.boot + spring-boot-devtools + runtime + true + root diff --git a/src/main/java/com/yipin/liuwanr/config/AuthConfig.java b/src/main/java/com/yipin/liuwanr/config/AuthConfig.java new file mode 100644 index 0000000..a037081 --- /dev/null +++ b/src/main/java/com/yipin/liuwanr/config/AuthConfig.java @@ -0,0 +1,51 @@ +package com.yipin.liuwanr.config; + + + +import com.yipin.liuwanr.filter.AuthInterceptor; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +import java.util.List; + +/** + * @description + * @author: Mr.JK + * @create: 2021-06-03 16:24 + **/ +@Configuration +@ConfigurationProperties(prefix = "auth") +public class AuthConfig implements WebMvcConfigurer { + + //开启拦截字符串 + public static String openInterceptStr; + + //放行url + public static List permitUrl; + + @Value("${auth.openInterceptStr}") + public void setOpenInterceptStr(String openInterceptStr) { + AuthConfig.openInterceptStr = openInterceptStr; + } + + @Value("${auth.permitUrl}") + public void setPermitUrl(List permitUrl) { + AuthConfig.permitUrl = permitUrl; + } + + @Bean + public AuthInterceptor initAuthInterceptor(){ + return new AuthInterceptor(); + } + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(initAuthInterceptor()).addPathPatterns(openInterceptStr) + .excludePathPatterns(permitUrl); + } + +} \ No newline at end of file diff --git a/src/main/java/com/yipin/liuwanr/entity/UserInfo.java b/src/main/java/com/yipin/liuwanr/entity/UserInfo.java index 6949a8c..b1c0922 100644 --- a/src/main/java/com/yipin/liuwanr/entity/UserInfo.java +++ b/src/main/java/com/yipin/liuwanr/entity/UserInfo.java @@ -101,4 +101,7 @@ public class UserInfo { private Integer organizationRelationshipId; //登陆时间 private String dataTime; + + //鉴权token + private String loginToken; } diff --git a/src/main/java/com/yipin/liuwanr/filter/AuthInterceptor.java b/src/main/java/com/yipin/liuwanr/filter/AuthInterceptor.java new file mode 100644 index 0000000..70caa25 --- /dev/null +++ b/src/main/java/com/yipin/liuwanr/filter/AuthInterceptor.java @@ -0,0 +1,63 @@ +package com.yipin.liuwanr.filter; + + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.data.redis.core.ValueOperations; +import org.springframework.util.StringUtils; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Objects; +import java.util.concurrent.TimeUnit; + +/** + * @description + * @author: Mr.JK + * @create: 2021-06-03 16:19 + **/ +public class AuthInterceptor implements HandlerInterceptor { + + @Resource + StringRedisTemplate stringRedisTemplate; + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + response.setCharacterEncoding("UTF-8"); + response.setContentType("text/html;charset=utf-8"); + String token = request.getHeader("token"); + if (StringUtils.isEmpty(token)) { + response.getWriter().print("0");//用户未登录,请登录后操作! + return false; + } + + ValueOperations ops = stringRedisTemplate.opsForValue(); + Object loginStatus = ops.get(token); + //userid + String userId = request.getParameter("userId"); + if( Objects.isNull(loginStatus)){ + response.getWriter().print("1");//token错误 + return false; + }else { + if (!StringUtils.isEmpty(userId)){ + return userId.equals(loginStatus); + }else { + return true; + } + } + } + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { + + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + + } + +} diff --git a/src/main/java/com/yipin/liuwanr/service/UserInfoService.java b/src/main/java/com/yipin/liuwanr/service/UserInfoService.java index 977d0d9..fbda212 100644 --- a/src/main/java/com/yipin/liuwanr/service/UserInfoService.java +++ b/src/main/java/com/yipin/liuwanr/service/UserInfoService.java @@ -129,13 +129,13 @@ public class UserInfoService { userInfoMapper.userAddStudent(student); } int size = userProfilesList.size(); - if (size<=0){ +// if (size<=0){ for (int i = 0;i studentList = userInfoMapper.loginsGetStudentSchoolInfo(userId,schoolId); List studentList = userInfoMapper.loginsGetStudentSchoolInfo(userId,schoolId); obj.put("studentList",studentList); + + //鉴权,登录后将信息存入redis + ValueOperations redis = stringRedisTemplate.opsForValue(); + String loginToken = UUID.randomUUID().toString(); + redis.set(loginToken,user.getUserId().toString(),2, TimeUnit.HOURS); + obj.put("loginToken",loginToken); + resp.put("retcode", 200); resp.put("retvalue", obj); }else { @@ -546,6 +553,12 @@ public class UserInfoService { ValueOperations redis = stringRedisTemplate.opsForValue(); redis.set(token,lastLoginTime, 24, TimeUnit.HOURS); user.setDataTime(lastLoginTime); + + //鉴权,登录后将信息存入redis + String loginToken = UUID.randomUUID().toString(); + redis.set(loginToken,user.getUserId().toString(),2, TimeUnit.HOURS); + user.setLoginToken(loginToken); + resp.put("retvalue",user); resp.put("retcode", 200); } diff --git a/src/main/resources/application.properties b/src/main/resources/application-dev.properties similarity index 100% rename from src/main/resources/application.properties rename to src/main/resources/application-dev.properties diff --git a/src/main/resources/application-keda.properties b/src/main/resources/application-keda.properties index fa02aba..751e510 100644 --- a/src/main/resources/application-keda.properties +++ b/src/main/resources/application-keda.properties @@ -47,3 +47,10 @@ spring.servlet.multipart.maxRequestSize=10240MB pagehelper.reasonable=false +#ȫ,Ϊղ +#auth.openInterceptStr= +auth.openInterceptStr=/** +#Url +auth.permitUrl=/userInfo/adminLogins/**,/userInfo/loginSchoolClient/**,/province/queryProvince/**,/city/queryCity/**,/customer/querySchool/**,/userInfo/queryPhone/** + + diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties index 7895a9e..1ac71b4 100644 --- a/src/main/resources/application-prod.properties +++ b/src/main/resources/application-prod.properties @@ -1,49 +1,59 @@ -server.port=8090 -server.servlet.context-path=/liuwanr +# See http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html +spring.thymeleaf.cache=false +spring.main.show-banner=false -#\u6B63\u5F0F\u6570\u636E\u5E93\u8FDE\u63A5 -spring.datasource.url=jdbc:mysql://rm-wz90d92p0pf083nxzno.mysql.rds.aliyuncs.com:3306/huoran?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai +logging.level.jdbc=OFF +logging.level.jdbc.sqltiming=DEBUG +logging.level.jdbc.resultsettable=DEBUG +logging.level.com.yipin.liuwar.mapper=DEBUG +#ƴݿ 116.63.168.79 +spring.datasource.url=jdbc:mysql://192.168.0.99:3306/keda?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai spring.datasource.username=root -spring.datasource.password=HuoRan@2021 +spring.datasource.password=mssdk@028 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +#ݿ +#spring.datasource.url=jdbc:mysql://139.9.247.137:3306/keda?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai +#spring.datasource.username=root +#spring.datasource.password=123456 +#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver + +spring.mina.port=9123 +spring.mina.buffersize=2048 +spring.mina.idletime=15 -#redis\u914D\u7F6E spring.redis.database=0 spring.redis.host=127.0.0.1 -spring.redis.password= +spring.redis.password=msdw@2021 +#spring.redis.password= spring.redis.port=6379 spring.redis.timeout=3000 spring.redis.jedis.pool.max-idle=500 spring.redis.jedis.pool.min-idle=50 spring.redis.jedis.pool.max-active=2000 spring.redis.jedis.pool.max-wait=1000 - -#redis-cluster -redis.cluster.maxTotal=200 -redis.cluster.maxIdle=8 -redis.cluster.minIdle=3 -redis.cluster.nodes=192.168.136.191:8000,192.168.136.191:8001,192.168.136.191:8002 - -spring.mina.port=9123 -spring.mina.buffersize=2048 -spring.mina.idletime=15 -spring.main.show-banner=false - -#\u65E5\u5FD7\u7EA7\u522B -logging.level.jdbc=OFF -logging.level.jdbc.sqltiming=DEBUG -logging.level.jdbc.resultsettable=DEBUG -logging.level.com.yipin.liuwar.mapper=DEBUG -logging.level.com.yipin.liuwanr.mapper=DEBUG +#spring.redis.pool.max-idle=500 +#spring.redis.pool.min-idle=50 +#spring.redis.pool.max-active=2000 +#spring.redis.pool.max-wait=1000 spring.elasticsearch.rest.uris=http://es-cn-v641e944a0006xtwy.elasticsearch.aliyuncs.com:9200 spring.elasticsearch.rest.username=elastic spring.elasticsearch.rest.password=1qaz@WSX +pagehelper.reasonable=false + # maxFileSize \u5355\u4E2A\u6570\u636E\u5927\u5C0F spring.servlet.multipart.maxFileSize = 1024MB # maxRequestSize \u662F\u603B\u6570\u636E\u5927\u5C0F spring.servlet.multipart.maxRequestSize=10240MB -pagehelper.reasonable=false +logging.level.com.yipin.liuwanr.mapper=debug +#redis-cluster +redis.cluster.maxTotal=200 +redis.cluster.maxIdle=8 +redis.cluster.minIdle=3 +redis.cluster.nodes=192.168.136.191:8000,192.168.136.191:8001,192.168.136.191:8002 + +server.port=8090 +server.servlet.context-path= /liuwanr \ No newline at end of file diff --git a/src/main/resources/application-test.properties b/src/main/resources/application-test.properties index 3574706..e5f5ab9 100644 --- a/src/main/resources/application-test.properties +++ b/src/main/resources/application-test.properties @@ -47,3 +47,10 @@ spring.servlet.multipart.maxRequestSize=10240MB pagehelper.reasonable=false +#ȫ,Ϊղ +#auth.openInterceptStr= +auth.openInterceptStr=/** +#Url +auth.permitUrl=/userInfo/adminLogins/**,/userInfo/loginSchoolClient/**,/province/queryProvince/**,/city/queryCity/**,/customer/querySchool/**,/userInfo/queryPhone/** + + diff --git a/src/main/resources/application-test_keda.properties b/src/main/resources/application-test_keda.properties index a156057..9140623 100644 --- a/src/main/resources/application-test_keda.properties +++ b/src/main/resources/application-test_keda.properties @@ -47,3 +47,10 @@ spring.servlet.multipart.maxRequestSize=10240MB pagehelper.reasonable=false +#ȫ,Ϊղ +#auth.openInterceptStr= +auth.openInterceptStr=/** +#Url +auth.permitUrl=/userInfo/adminLogins/**,/userInfo/loginSchoolClient/**,/province/queryProvince/**,/city/queryCity/**,/customer/querySchool/**,/userInfo/queryPhone/** + + diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..90385b2 --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,3 @@ +spring: + profiles: + active: prod \ No newline at end of file