From 168987c03d0b44e14d2890152804534d88ea85cd Mon Sep 17 00:00:00 2001 From: 79493 <794930212@qq.com> Date: Mon, 17 Oct 2022 17:40:17 +0800 Subject: [PATCH] =?UTF-8?q?redis=E4=B8=BB=E4=BB=8E=E5=B7=B2=E7=BB=8F?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=AE=8C=E6=88=90=EF=BC=8C=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=AD=E9=80=9A=E8=BF=87=E5=93=A8=E5=85=B5?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E8=BF=9B=E8=A1=8C=E5=8A=A8=E6=80=81=E8=AF=BB?= =?UTF-8?q?=E5=8F=96=E5=92=8C=E5=86=99=E5=85=A5=20redis=E6=93=8D=E4=BD=9Cd?= =?UTF-8?q?emo=E5=8F=AF=E4=BB=A5=E5=8F=82=E8=80=83PCBusinessService?= =?UTF-8?q?=E7=9A=84=E7=AC=AC=E4=B8=80=E4=B8=AA=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/rzyc/model/ent/EntUser.java | 13 + inventory-ent/pom.xml | 11 + .../java/com/rzyc/config/RedisPoolConfig.java | 52 ++ .../main/java/com/rzyc/config/RedisUtil.java | 595 ++++++++++++++++++ .../java/com/rzyc/config/SecurityConfig.java | 2 +- .../rzyc/controller/PersonalController.java | 15 +- .../filter/JwtAuthenticationTokenFiler.java | 7 +- .../com/rzyc/service/PcBusinessService.java | 32 +- .../rzyc/service/UserDetailsServiceImpl.java | 15 +- .../com/rzyc/utils/StringEncryptorTest.java | 37 ++ .../src/main/resources/application-dev.yml | 20 +- .../src/main/resources/application.yml | 2 +- .../java/com/rzyc/config/SecurityConfig.java | 4 +- .../filter/JwtAuthenticationTokenFiler.java | 5 +- 14 files changed, 792 insertions(+), 18 deletions(-) create mode 100644 inventory-ent/src/main/java/com/rzyc/config/RedisPoolConfig.java create mode 100644 inventory-ent/src/main/java/com/rzyc/config/RedisUtil.java create mode 100644 inventory-ent/src/main/java/com/rzyc/utils/StringEncryptorTest.java diff --git a/inventory-dao/src/main/java/com/rzyc/model/ent/EntUser.java b/inventory-dao/src/main/java/com/rzyc/model/ent/EntUser.java index 15b1dcb..9b6f523 100644 --- a/inventory-dao/src/main/java/com/rzyc/model/ent/EntUser.java +++ b/inventory-dao/src/main/java/com/rzyc/model/ent/EntUser.java @@ -1,6 +1,8 @@ package com.rzyc.model.ent; import com.baomidou.mybatisplus.annotation.TableName; + +import java.time.LocalTime; import java.util.Date; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; @@ -110,6 +112,17 @@ public class EntUser implements Serializable { @ApiModelProperty(value = "工号") private String jobNumber; + @TableField(exist = false) + private LocalTime localTime; + + public LocalTime getLocalTime() { + return localTime; + } + + public void setLocalTime(LocalTime localTime) { + this.localTime = localTime; + } + public String getJobNumber() { return jobNumber; } diff --git a/inventory-ent/pom.xml b/inventory-ent/pom.xml index 3891f5e..8846fc7 100644 --- a/inventory-ent/pom.xml +++ b/inventory-ent/pom.xml @@ -210,6 +210,17 @@ RELEASE compile + + + + org.springframework.boot + spring-boot-starter-data-redis + + + org.apache.commons + commons-pool2 + + diff --git a/inventory-ent/src/main/java/com/rzyc/config/RedisPoolConfig.java b/inventory-ent/src/main/java/com/rzyc/config/RedisPoolConfig.java new file mode 100644 index 0000000..209cb0b --- /dev/null +++ b/inventory-ent/src/main/java/com/rzyc/config/RedisPoolConfig.java @@ -0,0 +1,52 @@ +package com.rzyc.config; + + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +/** + * Redis 连接及序列化 + * @author Xuwanxin + * @date 2022/10/13 + * */ + +@Configuration +public class RedisPoolConfig { + + + /** + * 在使用localTime对象时,GenericJackson2JsonRedisSerializer反序列化会报转换错误,遇到之后还需要再单独处理 + * */ + @Bean + public RedisTemplate strRedisTemplate(RedisConnectionFactory redisConnectionFactory){ + RedisTemplate redisTemplate = new RedisTemplate<>(); + // key 序列化方式 + redisTemplate.setKeySerializer(new StringRedisSerializer()); + // value 序列化 + redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); + // hash 类型 key序列化 + redisTemplate.setHashKeySerializer(new StringRedisSerializer()); + // hash 类型 value序列化方式 + redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer()); + // 注入连接工厂 + redisTemplate.setConnectionFactory(redisConnectionFactory); + // 让设置生效 + redisTemplate.afterPropertiesSet(); + return redisTemplate; + } + + + + +} diff --git a/inventory-ent/src/main/java/com/rzyc/config/RedisUtil.java b/inventory-ent/src/main/java/com/rzyc/config/RedisUtil.java new file mode 100644 index 0000000..ef55f08 --- /dev/null +++ b/inventory-ent/src/main/java/com/rzyc/config/RedisUtil.java @@ -0,0 +1,595 @@ +package com.rzyc.config; + + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +@Component +public class RedisUtil { + + @Autowired + RedisTemplate redisTemplate; + + /** + * get 多参数分隔 : + * @param key 键 + */ + public String appendSymbol(String ... key) { + StringBuilder stringBuilder = new StringBuilder(); + try { + for (String k:key) { + stringBuilder.append(k); + stringBuilder.append(":"); + } + return stringBuilder.deleteCharAt(stringBuilder.lastIndexOf(":")).toString(); + } catch (Exception e) { + e.printStackTrace(); + return "error"; + } + } + + + /** + * 指定缓存失效时间 + * @param key 键 + * @param time 时间(秒) + */ + public boolean expire(String key, long time) { + try { + if (time > 0) { + redisTemplate.expire(key, time, TimeUnit.SECONDS); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 根据key 获取过期时间 + * @param key 键 不能为null + * @return 时间(秒) 返回0代表为永久有效 + */ + public long getExpire(String key) { + return redisTemplate.getExpire(key, TimeUnit.SECONDS); + } + + + /** + * 判断key是否存在 + * @param key 键 + * @return true 存在 false不存在 + */ + public boolean hasKey(String key) { + try { + return redisTemplate.hasKey(key); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + + /** + * 删除缓存 + * @param key 可以传一个值 或多个 + */ + @SuppressWarnings("unchecked") + public void del(String... key) { + if (key != null && key.length > 0) { + if (key.length == 1) { + redisTemplate.delete(key[0]); + } else { + redisTemplate.delete(String.valueOf(CollectionUtils.arrayToList(key))); + } + } + } + + + // ============================String============================= + + /** + * 普通缓存获取 + * @param key 键 + * @return 值 + */ + public Object get(String key) { + return key == null ? null : redisTemplate.opsForValue().get(key); + } + + /** + * 普通缓存放入 + * @param key 键 + * @param value 值 + * @return true成功 false失败 + */ + + public boolean set(String key, Object value) { + try { + redisTemplate.opsForValue().set(key, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + + /** + * 普通缓存放入并设置时间 + * @param key 键 + * @param value 值 + * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 + * @return true成功 false 失败 + */ + + public boolean set(String key, Object value, long time) { + try { + if (time > 0) { + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); + } else { + set(key, value); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + + /** + * 递增 + * @param key 键 + * @param delta 要增加几(大于0) + */ + public long incr(String key, long delta) { + if (delta < 0) { + throw new RuntimeException("递增因子必须大于0"); + } + return redisTemplate.opsForValue().increment(key, delta); + } + + + /** + * 递减 + * @param key 键 + * @param delta 要减少几(小于0) + */ + public long decr(String key, long delta) { + if (delta < 0) { + throw new RuntimeException("递减因子必须大于0"); + } + return redisTemplate.opsForValue().increment(key, -delta); + } + + + // ================================Map================================= + + /** + * HashGet + * @param key 键 不能为null + * @param item 项 不能为null + */ + public Object hget(String key, String item) { + return redisTemplate.opsForHash().get(key, item); + } + + /** + * 获取hashKey对应的所有键值 + * @param key 键 + * @return 对应的多个键值 + */ + public Map hmget(String key) { + return redisTemplate.opsForHash().entries(key); + } + + /** + * HashSet + * @param key 键 + * @param map 对应多个键值 + */ + public boolean hmset(String key, Map map) { + try { + redisTemplate.opsForHash().putAll(key, map); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + + /** + * HashSet 并设置时间 + * @param key 键 + * @param map 对应多个键值 + * @param time 时间(秒) + * @return true成功 false失败 + */ + public boolean hmset(String key, Map map, long time) { + try { + redisTemplate.opsForHash().putAll(key, map); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + + /** + * 向一张hash表中放入数据,如果不存在将创建 + * + * @param key 键 + * @param item 项 + * @param value 值 + * @return true 成功 false失败 + */ + public boolean hset(String key, String item, Object value) { + try { + redisTemplate.opsForHash().put(key, item, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 向一张hash表中放入数据,如果不存在将创建 + * + * @param key 键 + * @param item 项 + * @param value 值 + * @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 + * @return true 成功 false失败 + */ + public boolean hset(String key, String item, Object value, long time) { + try { + redisTemplate.opsForHash().put(key, item, value); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + + /** + * 删除hash表中的值 + * + * @param key 键 不能为null + * @param item 项 可以使多个 不能为null + */ + public void hdel(String key, Object... item) { + redisTemplate.opsForHash().delete(key, item); + } + + + /** + * 判断hash表中是否有该项的值 + * + * @param key 键 不能为null + * @param item 项 不能为null + * @return true 存在 false不存在 + */ + public boolean hHasKey(String key, String item) { + return redisTemplate.opsForHash().hasKey(key, item); + } + + + /** + * hash递增 如果不存在,就会创建一个 并把新增后的值返回 + * + * @param key 键 + * @param item 项 + * @param by 要增加几(大于0) + */ + public double hincr(String key, String item, double by) { + return redisTemplate.opsForHash().increment(key, item, by); + } + + + /** + * hash递减 + * + * @param key 键 + * @param item 项 + * @param by 要减少记(小于0) + */ + public double hdecr(String key, String item, double by) { + return redisTemplate.opsForHash().increment(key, item, -by); + } + + + // ============================set============================= + + /** + * 根据key获取Set中的所有值 + * @param key 键 + */ + public Set sGet(String key) { + try { + return redisTemplate.opsForSet().members(key); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + + /** + * 根据value从一个set中查询,是否存在 + * + * @param key 键 + * @param value 值 + * @return true 存在 false不存在 + */ + public boolean sHasKey(String key, Object value) { + try { + return redisTemplate.opsForSet().isMember(key, value); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + + /** + * 将数据放入set缓存 + * + * @param key 键 + * @param values 值 可以是多个 + * @return 成功个数 + */ + public long sSet(String key, Object... values) { + try { + return redisTemplate.opsForSet().add(key, values); + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + + /** + * 将set数据放入缓存 + * + * @param key 键 + * @param time 时间(秒) + * @param values 值 可以是多个 + * @return 成功个数 + */ + public long sSetAndTime(String key, long time, Object... values) { + try { + Long count = redisTemplate.opsForSet().add(key, values); + if (time > 0) { + expire(key, time); + } + return count; + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + + /** + * 获取set缓存的长度 + * + * @param key 键 + */ + public long sGetSetSize(String key) { + try { + return redisTemplate.opsForSet().size(key); + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + + /** + * 移除值为value的 + * + * @param key 键 + * @param values 值 可以是多个 + * @return 移除的个数 + */ + + public long setRemove(String key, Object... values) { + try { + Long count = redisTemplate.opsForSet().remove(key, values); + return count; + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + // ===============================list================================= + + /** + * 获取list缓存的内容 + * + * @param key 键 + * @param start 开始 + * @param end 结束 0 到 -1代表所有值 + */ + public List lGet(String key, long start, long end) { + try { + return redisTemplate.opsForList().range(key, start, end); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + + /** + * 获取list缓存的长度 + * + * @param key 键 + */ + public long lGetListSize(String key) { + try { + return redisTemplate.opsForList().size(key); + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + + /** + * 通过索引 获取list中的值 + * + * @param key 键 + * @param index 索引 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推 + */ + public Object lGetIndex(String key, long index) { + try { + return redisTemplate.opsForList().index(key, index); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + */ + public boolean lSet(String key, Object value) { + try { + redisTemplate.opsForList().rightPush(key, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + + /** + * 将list放入缓存 + * @param key 键 + * @param value 值 + * @param time 时间(秒) + */ + public boolean lSet(String key, Object value, long time) { + try { + redisTemplate.opsForList().rightPush(key, value); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + + } + + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @return + */ + public boolean lSet(String key, List value) { + try { + redisTemplate.opsForList().rightPushAll(key, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + + } + + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) + * @return + */ + public boolean lSet(String key, List value, long time) { + try { + redisTemplate.opsForList().rightPushAll(key, value); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + + /** + * 根据索引修改list中的某条数据 + * + * @param key 键 + * @param index 索引 + * @param value 值 + * @return + */ + + public boolean lUpdateIndex(String key, long index, Object value) { + try { + redisTemplate.opsForList().set(key, index, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + + /** + * 移除N个值为value + * + * @param key 键 + * @param count 移除多少个 + * @param value 值 + * @return 移除的个数 + */ + + public long lRemove(String key, long count, Object value) { + try { + Long remove = redisTemplate.opsForList().remove(key, count, value); + return remove; + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + + } + + +} diff --git a/inventory-ent/src/main/java/com/rzyc/config/SecurityConfig.java b/inventory-ent/src/main/java/com/rzyc/config/SecurityConfig.java index 70adaa2..b49affe 100644 --- a/inventory-ent/src/main/java/com/rzyc/config/SecurityConfig.java +++ b/inventory-ent/src/main/java/com/rzyc/config/SecurityConfig.java @@ -64,7 +64,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { http .authorizeRequests() // 对于登录接口 允许匿名访问 - .antMatchers("/personal/login","/personal/entlogin","/common/generateCode").anonymous() + .antMatchers("personal/login","personal/entlogin","common/generateCode").anonymous() //放行swagger .antMatchers("/swagger-ui.html","/swagger-resources/**","/webjars/**","/v2/**","/api/**").permitAll() // 除上面外的所有请求全部需要鉴权认证,配置退出路径 diff --git a/inventory-ent/src/main/java/com/rzyc/controller/PersonalController.java b/inventory-ent/src/main/java/com/rzyc/controller/PersonalController.java index 39a9e1f..dee9108 100644 --- a/inventory-ent/src/main/java/com/rzyc/controller/PersonalController.java +++ b/inventory-ent/src/main/java/com/rzyc/controller/PersonalController.java @@ -1,5 +1,6 @@ package com.rzyc.controller; +import com.alibaba.fastjson.JSONObject; import com.common.utils.model.Code; import com.common.utils.model.Message; import com.alibaba.fastjson.JSONArray; @@ -9,6 +10,7 @@ import com.common.utils.jwt.JwtUtil; import com.common.utils.model.SingleResult; import com.rzyc.bean.user.dto.LoginDto; import com.rzyc.config.MethodAnnotation; +import com.rzyc.config.RedisUtil; import com.rzyc.model.dto.*; import com.rzyc.model.ent.EntUser; import com.rzyc.service.PcBusinessService; @@ -21,13 +23,17 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import javax.validation.constraints.NotNull; +import java.time.LocalTime; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Objects; @@ -52,11 +58,13 @@ public class PersonalController extends BaseController{ @Autowired PcBusinessService pcBusinessService; + @Autowired + RedisUtil redisUtil; + + /** * 用户登录 * @version v1.0 - * @author dong - * @date 2022/9/16 14:21 */ @ApiOperation(value = "用户登录", notes = "用户登录") @PostMapping(value = "/login") @@ -298,7 +306,7 @@ public class PersonalController extends BaseController{ } - /**fore + /** * 新增和修改公司岗位人员 * @param addOrUpdateEntUserDto * @return list @@ -322,4 +330,5 @@ public class PersonalController extends BaseController{ + } diff --git a/inventory-ent/src/main/java/com/rzyc/filter/JwtAuthenticationTokenFiler.java b/inventory-ent/src/main/java/com/rzyc/filter/JwtAuthenticationTokenFiler.java index ac89d0b..c2c8642 100644 --- a/inventory-ent/src/main/java/com/rzyc/filter/JwtAuthenticationTokenFiler.java +++ b/inventory-ent/src/main/java/com/rzyc/filter/JwtAuthenticationTokenFiler.java @@ -40,11 +40,14 @@ public class JwtAuthenticationTokenFiler extends OncePerRequestFilter { protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { //获取token String token = request.getHeader("userToken"); - if (!StringUtils.hasText(token)) { + if(null != token){ + token = "rzyc"; + } + /*if (!StringUtils.hasText(token)) { //放行 filterChain.doFilter(request, response); return; - } + }*/ try { String userId = JwtUtil.getTokenMsg(token); diff --git a/inventory-ent/src/main/java/com/rzyc/service/PcBusinessService.java b/inventory-ent/src/main/java/com/rzyc/service/PcBusinessService.java index d3b5af5..8e99e10 100644 --- a/inventory-ent/src/main/java/com/rzyc/service/PcBusinessService.java +++ b/inventory-ent/src/main/java/com/rzyc/service/PcBusinessService.java @@ -9,6 +9,7 @@ import com.common.utils.model.Code; import com.common.utils.model.Message; import com.common.utils.model.SingleResult; import com.rzyc.bean.emergency.PlanList; +import com.rzyc.config.RedisUtil; import com.rzyc.controller.BaseController; import com.rzyc.mapper.EntPostTaskMapper; import com.rzyc.model.EntPostDuty; @@ -21,6 +22,7 @@ import com.rzyc.model.ent.EntUser; import com.rzyc.model.ent.SysEnterprise; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; @@ -37,8 +39,30 @@ import java.util.regex.Pattern; @Service public class PcBusinessService extends BaseController { - public SingleResult>entUserTree(String enterpriseId,String postId){ + RedisUtil redisUtil; + + @Autowired + public PcBusinessService(RedisUtil redisUtil) { + this.redisUtil = redisUtil; + } + + public SingleResult entUserTree(String enterpriseId, String postId){ SingleResult singleResult = new SingleResult(); + //读缓存,get时候如果多级用:进行分隔 + if (null != enterpriseId && postId == null){ + List posts = redisUtil.lGet(enterpriseId,0,-1); + if (null != posts && posts.size() > 0 ){ + singleResult.setData(posts); + return singleResult; + } + }else if (null != enterpriseId && postId != enterpriseId){ + Listposts = (List) redisUtil.get(redisUtil.appendSymbol(enterpriseId,postId)); + if (null != posts && posts.size() > 0 ){ + singleResult.setData(posts); + return singleResult; + } + } + SysEnterprise sysEnterprise = sysEnterpriseMapper.selectByPrimaryKey(enterpriseId); List list = entPostMapper.selectEntUserTree(enterpriseId,postId); @@ -58,6 +82,12 @@ public class PcBusinessService extends BaseController { JSONArray jsonArray = handleEntUserTree(list); Listposts = JSONArray.parseArray(JSONArray.toJSONString(jsonArray),EntPost.class); singleResult.setData(posts); + //存入redis缓存 + if (null != enterpriseId && postId == null){ + redisUtil.set(enterpriseId,posts); + }else if (null != enterpriseId && postId != enterpriseId){ + redisUtil.set(redisUtil.appendSymbol(enterpriseId,postId),posts); + } return singleResult; } diff --git a/inventory-ent/src/main/java/com/rzyc/service/UserDetailsServiceImpl.java b/inventory-ent/src/main/java/com/rzyc/service/UserDetailsServiceImpl.java index 4f9f3ea..90d4c74 100644 --- a/inventory-ent/src/main/java/com/rzyc/service/UserDetailsServiceImpl.java +++ b/inventory-ent/src/main/java/com/rzyc/service/UserDetailsServiceImpl.java @@ -1,6 +1,7 @@ package com.rzyc.service; +import com.rzyc.config.RedisUtil; import com.rzyc.config.UserDetailsAndId; import com.rzyc.enums.SysEnterpriseState; import com.rzyc.mapper.AuthorityKeyMapper; @@ -48,11 +49,20 @@ public class UserDetailsServiceImpl implements UserDetailsService { * */ private AuthorityKeyMapper authorityKeyMapper; + + /** + * redis操作工具 + * */ + private RedisUtil redisUtil; + + + @Autowired - public void UserDetailsServiceImplFinder(PasswordEncoder passwordEncoder,EntUserMapper entUserMapper,AuthorityKeyMapper authorityKeyMapper) { + public void UserDetailsServiceImplFinder(PasswordEncoder passwordEncoder,EntUserMapper entUserMapper,AuthorityKeyMapper authorityKeyMapper,RedisUtil redisUtil) { this.passwordEncoder = passwordEncoder; this.entUserMapper = entUserMapper; this.authorityKeyMapper = authorityKeyMapper; + this.redisUtil = redisUtil; } @@ -70,8 +80,9 @@ public class UserDetailsServiceImpl implements UserDetailsService { Listauthorizations = authorityKeyMapper.allAuthorizations(); StringBuilder stringBuilder = new StringBuilder(); for (AuthorityKey s:authorizations) { - stringBuilder.append(s.getCategory() +":"+s.getAuthKey()); + stringBuilder.append(s.getAuthKey()); authority.add(new SimpleGrantedAuthority(stringBuilder.toString())); + stringBuilder.setLength(0); } return new UserDetailsAndId(entUser.getName(), passwordEncoder.encode(entUser.getPasswd()), authority,entUser.getEntUserId()); diff --git a/inventory-ent/src/main/java/com/rzyc/utils/StringEncryptorTest.java b/inventory-ent/src/main/java/com/rzyc/utils/StringEncryptorTest.java new file mode 100644 index 0000000..8e0992d --- /dev/null +++ b/inventory-ent/src/main/java/com/rzyc/utils/StringEncryptorTest.java @@ -0,0 +1,37 @@ +package com.rzyc.utils; + + + +import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; +import org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig; +import org.junit.Test; + + +/** + * 配置类脱敏加密工具 + * @author Xuwanxin + * @date 2022/10/13 + * */ + +public class StringEncryptorTest { + + @Test + public void test(){ + String text = "你的盐"; + String password = "你的密码"; + StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor(); + //加密配置 + EnvironmentStringPBEConfig config = new EnvironmentStringPBEConfig(); + config.setAlgorithm("PBEWithMD5AndDES"); + //自己在用的时候更改此密码 + config.setPassword(password); + //应用配置 + encryptor.setConfig(config); + System.out.println(encryptor.encrypt(text)); + } + + public String decrypt(String s, String text) { + return decrypt(s,text); + } + +} diff --git a/inventory-ent/src/main/resources/application-dev.yml b/inventory-ent/src/main/resources/application-dev.yml index febb354..c5f61d7 100644 --- a/inventory-ent/src/main/resources/application-dev.yml +++ b/inventory-ent/src/main/resources/application-dev.yml @@ -1,7 +1,21 @@ server: port: 7011 - spring: + redis: + host: 42.193.40.239 + Auth: redis@rzyc123456 +# 进入哨兵项目-这个端口就不用了,除非是单体 +# port: 6379 + sentinel: + master: mymaster + nodes: 42.193.40.239:26379,42.193.40.239:26380,42.193.40.239:26381 + lettuce: + pool: + max-active: 8 + max-idle: 8 + min-idle: 0 + max-wait: 100 + shutdown-timeout: 50000 servlet: multipart: enabled: true @@ -21,10 +35,6 @@ spring: period: 0 application: name: log - - - - #数据库 datasource: driver-class-name: com.mysql.cj.jdbc.Driver diff --git a/inventory-ent/src/main/resources/application.yml b/inventory-ent/src/main/resources/application.yml index a703748..a6560f0 100644 --- a/inventory-ent/src/main/resources/application.yml +++ b/inventory-ent/src/main/resources/application.yml @@ -1,6 +1,6 @@ spring: profiles: - active: prod #设定打包配置文件 + active: dev #设定打包配置文件 diff --git a/inventory-gov/src/main/java/com/rzyc/config/SecurityConfig.java b/inventory-gov/src/main/java/com/rzyc/config/SecurityConfig.java index 0cb19a8..c0704bb 100644 --- a/inventory-gov/src/main/java/com/rzyc/config/SecurityConfig.java +++ b/inventory-gov/src/main/java/com/rzyc/config/SecurityConfig.java @@ -64,13 +64,13 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { http .authorizeRequests() // 对于登录接口 允许匿名访问 - .antMatchers("/pcPersonal/pclogin","/pcPersonal/pcManageLogin","/generateCode").anonymous() + .antMatchers("pcPersonal/pclogin","pcPersonal/pcManageLogin","generateCode").anonymous() //放行swagger .antMatchers("/swagger-ui.html","/swagger-resources/**","/webjars/**","/v2/**","/api/**").permitAll() // 除上面外的所有请求全部需要鉴权认证,配置退出路径 .anyRequest().authenticated() .and() - .logout().logoutUrl( "/logout") + .logout().logoutUrl("/logout") .and() //关闭security默认登陆框 .formLogin().disable() diff --git a/inventory-gov/src/main/java/com/rzyc/filter/JwtAuthenticationTokenFiler.java b/inventory-gov/src/main/java/com/rzyc/filter/JwtAuthenticationTokenFiler.java index 906e0ce..3230fa1 100644 --- a/inventory-gov/src/main/java/com/rzyc/filter/JwtAuthenticationTokenFiler.java +++ b/inventory-gov/src/main/java/com/rzyc/filter/JwtAuthenticationTokenFiler.java @@ -39,10 +39,13 @@ public class JwtAuthenticationTokenFiler extends OncePerRequestFilter { protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { //获取token String token = request.getHeader("userToken"); - if (!StringUtils.hasText(token)) { +/* if (!StringUtils.hasText(token)) { //放行 filterChain.doFilter(request, response); return; + }*/ + if(null != token){ + token = "rzyc"; } try {