Browse Source

添加RedisUtil工具类失败

master
adiao 3 years ago
parent
commit
09a3a26f4e
  1. 1
      app-service/pom.xml
  2. 2
      app-service/src/main/java/com/depsystem/app/loginServer/CaptchaVO.java
  3. 221
      app-service/src/main/java/com/depsystem/app/systemServer/util/Cache.java
  4. 514
      app-service/src/main/java/com/depsystem/app/systemServer/util/CacheUtil.java
  5. 5
      app-start/pom.xml
  6. 65
      app-start/src/main/java/com/depsystem/app/securityServer/RedisConfig.java
  7. 10
      app-start/src/main/java/com/depsystem/app/securityServer/WebSecurityConfig.java
  8. 2
      app-start/src/main/java/com/depsystem/app/securityServer/entity/MyUser.java
  9. 3
      app-start/src/main/java/com/depsystem/app/securityServer/entity/MyUserDetails.java
  10. 2
      app-start/src/main/java/com/depsystem/app/securityServer/exception/CaptchaVerifyException.java
  11. 2
      app-start/src/main/java/com/depsystem/app/securityServer/handler/AuthenticationsFailureHandler.java
  12. 13
      app-start/src/main/java/com/depsystem/app/securityServer/handler/AuthenticationsSuccessHandler.java
  13. 5
      app-start/src/main/java/com/depsystem/app/securityServer/securityFilter/AuthenticationServerImpl.java
  14. 12
      app-start/src/main/java/com/depsystem/app/securityServer/securityFilter/JwtAuthenticationTokenFilter.java
  15. 1
      app-start/src/main/resources/application.properties
  16. 34
      app-start/src/test/java/com/depsystem/app/AppApplicationTests.java
  17. 1
      app-web/pom.xml
  18. 6
      app-web/src/main/java/com/depsystem/app/demos/web/BasicController.java

1
app-service/pom.xml

@ -110,6 +110,7 @@ @@ -110,6 +110,7 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.5.4</version>
</dependency>
</dependencies>

2
app-service/src/main/java/com/depsystem/app/systemServer/securityServer/securityVO/CaptchaVO.java → app-service/src/main/java/com/depsystem/app/loginServer/CaptchaVO.java

@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
* @apiNote
*/
package com.depsystem.app.systemServer.securityServer.securityVO;
package com.depsystem.app.loginServer;
import lombok.Data;

221
app-service/src/main/java/com/depsystem/app/systemServer/util/Cache.java

@ -0,0 +1,221 @@ @@ -0,0 +1,221 @@
/**
* @author JOJO
* @class Cache
* @date 2023/4/24
* @apiNote
*/
package com.depsystem.app.systemServer.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.util.StringUtils;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.concurrent.TimeUnit;
public class Cache {
@Autowired
private StringRedisTemplate redisTemplate;
private final String DEFAULT_KEY_PREFIX = "";
private final int EXPIRE_TIME = 1;
private final TimeUnit EXPIRE_TIME_TYPE = TimeUnit.DAYS;
/**
* 数据缓存至redis
*
* @param key
* @param value
* @return
*/
public <K, V> void add(K key, V value) {
try {
if (value != null) {
redisTemplate
.opsForValue()
.set(DEFAULT_KEY_PREFIX + key, JSON.toJSONString(value));
}
} catch (Exception e) {
throw new RuntimeException("数据缓存至redis失败"+ e.getMessage());
}
}
/**
* 数据缓存至redis并设置过期时间
*
* @param key
* @param value
* @return
*/
public <K, V> void add(K key, V value, int timeout, TimeUnit unit) {
try {
if (redisTemplate == null){
if (value != null) {
redisTemplate
.opsForValue()
.set(DEFAULT_KEY_PREFIX + key, JSON.toJSONString(value), timeout, unit);
}
}
} catch (Exception e) {
throw new RuntimeException("数据缓存至redis失败");
}
}
/**
* 写入 hash-set,已经是key-value的键值不能再写入为hash-set
*
* @param key must not be {@literal null}.
* @param subKey must not be {@literal null}.
* @param value 写入的值
*/
public <K, SK, V> void addHashCache(K key, SK subKey, V value) {
redisTemplate.opsForHash().put(DEFAULT_KEY_PREFIX + key, subKey, value);
}
/**
* 写入 hash-set,并设置过期时间
*
* @param key must not be {@literal null}.
* @param subKey must not be {@literal null}.
* @param value 写入的值
*/
public <K, SK, V> void addHashCache(K key, SK subKey, V value, long timeout, TimeUnit unit) {
redisTemplate.opsForHash().put(DEFAULT_KEY_PREFIX + key, subKey, value);
redisTemplate.expire(DEFAULT_KEY_PREFIX + key, timeout, unit);
}
/**
* 获取 hash-setvalue
*
* @param key must not be {@literal null}.
* @param subKey must not be {@literal null}.
*/
public <K, SK> Object getHashCache(K key, SK subKey) {
return redisTemplate.opsForHash().get(DEFAULT_KEY_PREFIX + key, subKey);
}
/**
* 从redis中获取缓存数据转成对象
*
* @param key must not be {@literal null}.
* @param clazz 对象类型
*
*/
public <K, V> V getObject(K key, Class<V> clazz) {
String value = this.get(key);
V result = null;
if (!StringUtils.isEmpty(value)) {
result = JSONObject.parseObject(value, clazz);
}
return result;
}
/**
* 从redis中获取缓存数据转成list
*
* @param key must not be {@literal null}.
* @param clazz 对象类型
* @return
*/
public <K, V> List<V> getList(K key, Class<V> clazz) {
String value = this.get(key);
List<V> result = Collections.emptyList();
if (!StringUtils.isEmpty(value)) {
result = JSONArray.parseArray(value, clazz);
}
return result;
}
/**
* 功能描述Get the value of {@code key}.
*
* @param key must not be {@literal null}.
* @return java.lang.String
* @date 2021/9/19
**/
public <K> String get(K key) {
String value;
try {
value = redisTemplate.opsForValue().get(DEFAULT_KEY_PREFIX + key);
} catch (Exception e) {
throw new RuntimeException("从redis缓存中获取缓存数据失败");
}
return value;
}
/**
* 删除key
*/
public void delete(String key) {
redisTemplate.delete(key);
}
/**
* 批量删除key
*/
public void delete(Collection<String> keys) {
redisTemplate.delete(keys);
}
/**
* 序列化key
*/
public byte[] dump(String key) {
return redisTemplate.dump(key);
}
/**
* 是否存在key
*/
public Boolean hasKey(String key) {
return redisTemplate.hasKey(key);
}
/**
* 设置过期时间
*/
public Boolean expire(String key, long timeout, TimeUnit unit) {
return redisTemplate.expire(key, timeout, unit);
}
/**
* 设置过期时间
*/
public Boolean expireAt(String key, Date date) {
return redisTemplate.expireAt(key, date);
}
/**
* 移除 key 的过期时间key 将持久保持
*/
public Boolean persist(String key) {
return redisTemplate.persist(key);
}
/**
* 返回 key 的剩余的过期时间
*/
public Long getExpire(String key, TimeUnit unit) {
return redisTemplate.getExpire(key, unit);
}
/**
* 返回 key 的剩余的过期时间
*/
public Long getExpire(String key) {
return redisTemplate.getExpire(key);
}
}

514
app-service/src/main/java/com/depsystem/app/systemServer/util/CacheUtil.java

@ -0,0 +1,514 @@ @@ -0,0 +1,514 @@
/**
* @author JOJO
* @class CacheUtil
* @date 2023/4/24
* @apiNote
*/
package com.depsystem.app.systemServer.util;
import jakarta.annotation.Resource;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
/**
* @author youxin
* @program redis-study
* @description redis常用工具类
* @date 2021-11-22 17:24
*/
@Component
public class CacheUtil {
@Resource
@Qualifier("myRedisTemplate")
private RedisTemplate<String, Object> redisTemplate;
// =============================common============================
/**
* 指定缓存失效时间
* @param key
* @param time 时间()
* @return
*/
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((Collection<String>) 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)
* @return
*/
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)
* @return
*/
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
* @return
*/
public Object hget(String key, String item) {
return redisTemplate.opsForHash().get(key, item);
}
/**
* 获取hashKey对应的所有键值
* @param key
* @return 对应的多个键值
*/
public Map<Object, Object> hmget(String key) {
return redisTemplate.opsForHash().entries(key);
}
/**
* HashSet
* @param key
* @param map 对应多个键值
* @return true 成功 false 失败
*/
public boolean hmset(String key, Map<String, Object> 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<String, Object> 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)
* @return
*/
public double hincr(String key, String item, double by) {
return redisTemplate.opsForHash().increment(key, item, by);
}
/**
* hash递减
* @param key
* @param item
* @param by 要减少记(小于0)
* @return
*/
public double hdecr(String key, String item, double by) {
return redisTemplate.opsForHash().increment(key, item, -by);
}
// ============================set=============================
/**
* 根据key获取Set中的所有值
* @param key
* @return
*/
public Set<Object> 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
* @return
*/
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代表所有值
* @return
*/
public List<Object> 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
* @return
*/
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倒数第二个元素依次类推
* @return
*/
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
* @return
*/
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 时间()
* @return
*/
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<Object> 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<Object> 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;
}
}
}

5
app-start/pom.xml

@ -28,6 +28,11 @@ @@ -28,6 +28,11 @@
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
</dependencies>
<build>

65
app-start/src/main/java/com/depsystem/app/securityServer/RedisConfig.java

@ -0,0 +1,65 @@ @@ -0,0 +1,65 @@
/**
* @author JOJO
* @class RedisConfig
* @date 2023/4/24
* @apiNote
*/
package com.depsystem.app.securityServer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
@Configuration
public class RedisConfig {
//@Bean(name = "myRedisTemplate")
//public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory connectionFactory){
// //创建RedisTemplate对象
// RedisTemplate<String, Object> template = new RedisTemplate<>();
// //设置连接工厂
// template.setConnectionFactory(connectionFactory);
// //创建JSON序列化工具
// GenericJackson2JsonRedisSerializer jsonRedisSerializer=new GenericJackson2JsonRedisSerializer();
// //设置Key的序列化
// template.setKeySerializer(RedisSerializer.string());
// template.setHashKeySerializer(RedisSerializer.string());
// //设置value的序列化
// template.setValueSerializer(jsonRedisSerializer);
// template.setHashValueSerializer(jsonRedisSerializer);
// //返回
// return template;
//}
@Bean
public RedisConnectionFactory redisConnectionFactory() {
RedisStandaloneConfiguration controlRedis = new RedisStandaloneConfiguration();
controlRedis.setDatabase(0);
controlRedis.setPassword("adiao");
controlRedis.setPort(6379);
controlRedis.setHostName("47.113.147.38");
return new LettuceConnectionFactory(controlRedis);
}
@Bean
public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
StringRedisTemplate template = new StringRedisTemplate();
template.setConnectionFactory(redisConnectionFactory);
return template;
}
//@Bean("stringRedis")
//public StringRedisTemplate stringRedisTemplate() {
// RedisConnectionFactory factory = new LettuceConnectionFactory("localhost", 6379);
// return new StringRedisTemplate(factory);
//}
}

10
app-service/src/main/java/com/depsystem/app/systemServer/config/WebSecurityConfig.java → app-start/src/main/java/com/depsystem/app/securityServer/WebSecurityConfig.java

@ -5,12 +5,14 @@ @@ -5,12 +5,14 @@
* @apiNote
*/
package com.depsystem.app.systemServer.config;
package com.depsystem.app.securityServer;
import cn.hutool.json.JSONUtil;
import com.depsystem.app.systemServer.securityServer.securityFilter.AuthenticationServerImpl;
import com.depsystem.app.systemServer.securityServer.handler.AuthenticationsFailureHandler;
import com.depsystem.app.systemServer.securityServer.handler.AuthenticationsSuccessHandler;
import com.depsystem.app.securityServer.handler.AuthenticationsFailureHandler;
import com.depsystem.app.securityServer.handler.AuthenticationsSuccessHandler;
import com.depsystem.app.securityServer.securityFilter.AuthenticationServerImpl;
import com.depsystem.app.systemServer.util.ResponseResult;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;

2
app-service/src/main/java/com/depsystem/app/systemServer/securityServer/entity/MyUser.java → app-start/src/main/java/com/depsystem/app/securityServer/entity/MyUser.java

@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
* @apiNote
*/
package com.depsystem.app.systemServer.securityServer.entity;
package com.depsystem.app.securityServer.entity;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.User;

3
app-service/src/main/java/com/depsystem/app/systemServer/securityServer/entity/MyUserDetails.java → app-start/src/main/java/com/depsystem/app/securityServer/entity/MyUserDetails.java

@ -5,11 +5,10 @@ @@ -5,11 +5,10 @@
* @apiNote
*/
package com.depsystem.app.systemServer.securityServer.entity;
package com.depsystem.app.securityServer.entity;
import com.alibaba.fastjson2.annotation.JSONField;
import com.depsystem.app.loginServer.Login;
import jakarta.annotation.Nullable;
import jakarta.annotation.Resource;
import lombok.Data;
import lombok.NoArgsConstructor;

2
app-service/src/main/java/com/depsystem/app/systemServer/securityServer/exception/CaptchaVerifyException.java → app-start/src/main/java/com/depsystem/app/securityServer/exception/CaptchaVerifyException.java

@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
* @apiNote
*/
package com.depsystem.app.systemServer.securityServer.exception;
package com.depsystem.app.securityServer.exception;
import org.springframework.security.core.AuthenticationException;

2
app-service/src/main/java/com/depsystem/app/systemServer/securityServer/handler/AuthenticationsFailureHandler.java → app-start/src/main/java/com/depsystem/app/securityServer/handler/AuthenticationsFailureHandler.java

@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
* @apiNote
*/
package com.depsystem.app.systemServer.securityServer.handler;
package com.depsystem.app.securityServer.handler;
import cn.hutool.json.JSONUtil;
import com.depsystem.app.systemServer.util.ResponseResult;

13
app-service/src/main/java/com/depsystem/app/systemServer/securityServer/handler/AuthenticationsSuccessHandler.java → app-start/src/main/java/com/depsystem/app/securityServer/handler/AuthenticationsSuccessHandler.java

@ -5,11 +5,11 @@ @@ -5,11 +5,11 @@
* @apiNote
*/
package com.depsystem.app.systemServer.securityServer.handler;
package com.depsystem.app.securityServer.handler;
import com.depsystem.app.systemServer.securityServer.entity.MyUserDetails;
import com.depsystem.app.securityServer.entity.MyUserDetails;
import com.depsystem.app.systemServer.util.CacheUtil;
import com.depsystem.app.systemServer.util.JwtUtil;
import com.depsystem.app.systemServer.util.RedisUtil;
import com.depsystem.app.systemServer.util.ResponseResult;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.servlet.ServletException;
@ -17,6 +17,7 @@ import jakarta.servlet.http.HttpServletRequest; @@ -17,6 +17,7 @@ import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.security.core.Authentication;
import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@ -27,6 +28,10 @@ import java.util.Map; @@ -27,6 +28,10 @@ import java.util.Map;
* @author adiao
*/
public class AuthenticationsSuccessHandler implements AuthenticationSuccessHandler {
CacheUtil redisUtil = new CacheUtil();
/**
* @param request 请求
* @param response 响应
@ -52,7 +57,7 @@ public class AuthenticationsSuccessHandler implements AuthenticationSuccessHandl @@ -52,7 +57,7 @@ public class AuthenticationsSuccessHandler implements AuthenticationSuccessHandl
userinfo.put("name",principal.getUsername());
userinfo.put("role",principal.getRoles());
userinfo.put("path",principal.getPath().toString());
RedisUtil redisUtil = new RedisUtil();
//RedisUtil redisUtil = new RedisUtil();
redisUtil.set("userinfo:",userinfo);
response.setCharacterEncoding("utf-8");

5
app-service/src/main/java/com/depsystem/app/systemServer/securityServer/securityFilter/AuthenticationServerImpl.java → app-start/src/main/java/com/depsystem/app/securityServer/securityFilter/AuthenticationServerImpl.java

@ -5,17 +5,16 @@ @@ -5,17 +5,16 @@
* @apiNote
*/
package com.depsystem.app.systemServer.securityServer.securityFilter;
package com.depsystem.app.securityServer.securityFilter;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.depsystem.app.loginServer.Login;
import com.depsystem.app.loginServer.LoginDAO;
import com.depsystem.app.loginServer.LoginMapper;
import com.depsystem.app.systemServer.securityServer.entity.MyUserDetails;
import com.depsystem.app.securityServer.entity.MyUserDetails;
import com.depsystem.app.systemServer.util.ResultConvert;
import jakarta.annotation.Resource;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;

12
app-service/src/main/java/com/depsystem/app/systemServer/securityServer/securityFilter/JwtAuthenticationTokenFilter.java → app-start/src/main/java/com/depsystem/app/securityServer/securityFilter/JwtAuthenticationTokenFilter.java

@ -5,22 +5,18 @@ @@ -5,22 +5,18 @@
* @apiNote
*/
package com.depsystem.app.systemServer.securityServer.securityFilter;
package com.depsystem.app.securityServer.securityFilter;
import cn.hutool.core.util.StrUtil;
import com.depsystem.app.loginServer.Login;
import com.depsystem.app.systemServer.securityServer.entity.MyUserDetails;
import com.depsystem.app.securityServer.entity.MyUserDetails;
import com.depsystem.app.systemServer.util.CacheUtil;
import com.depsystem.app.systemServer.util.JwtUtil;
import com.depsystem.app.systemServer.util.RedisUtil;
import io.jsonwebtoken.Claims;
import jakarta.annotation.Resource;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.filter.OncePerRequestFilter;
@ -29,7 +25,7 @@ import java.util.Objects; @@ -29,7 +25,7 @@ import java.util.Objects;
public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
@Resource
RedisUtil redisUtil;
CacheUtil redisUtil;
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
String token = request.getHeader("token");

1
app-start/src/main/resources/application.properties

@ -22,7 +22,6 @@ spring.data.redis.database=0 @@ -22,7 +22,6 @@ spring.data.redis.database=0
spring.data.redis.host=47.113.147.38
# Redis服务器连接端口
spring.data.redis.port=6379
spring.data.redis.client-name=auth
# Redis服务器连接密码(默认为空)
spring.data.redis.password=adiao
# 连接池最大连接数(使用负值表示没有限制) 默认 8

34
app-start/src/test/java/com/depsystem/app/AppApplicationTests.java

@ -9,21 +9,20 @@ import cn.hutool.jwt.JWTUtil; @@ -9,21 +9,20 @@ import cn.hutool.jwt.JWTUtil;
import com.depsystem.app.loginServer.Login;
import com.depsystem.app.loginServer.LoginDAO;
import com.depsystem.app.loginServer.LoginMapper;
import com.depsystem.app.systemServer.securityServer.entity.MyUserDetails;
import com.depsystem.app.securityServer.entity.MyUserDetails;
import com.depsystem.app.systemServer.util.Cache;
import com.depsystem.app.systemServer.util.CacheUtil;
import com.depsystem.app.systemServer.util.JwtUtil;
import com.depsystem.app.systemServer.util.ResultConvert;
import io.jsonwebtoken.Claims;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import java.io.UnsupportedEncodingException;
import java.util.*;
import java.util.concurrent.TimeUnit;
@SpringBootTest
class AppApplicationTests {
@ -140,4 +139,23 @@ class AppApplicationTests { @@ -140,4 +139,23 @@ class AppApplicationTests {
}
//@Resource
//CacheUtil cacheUtil;
@Test
void CacheUtils() {
Map<String,Object> map = new HashMap<>();
map.put("name","ds-dds");
map.put("age",23);
map.put("iphone", "12312312123");
//cacheUtil.set("sss",map,30);
//Object sss = cacheUtil.get("sss");
//System.out.println(sss.toString());
System.out.println("**************************************");
Cache println = new Cache();
println.add("myKey",map,10, TimeUnit.MINUTES);
String myKey = println.get("myKey");
System.out.println(myKey);
}
}

1
app-web/pom.xml

@ -20,6 +20,7 @@ @@ -20,6 +20,7 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.5.4</version>
</dependency>
<dependency>
<groupId>com.github.whvcse</groupId>

6
app-web/src/main/java/com/depsystem/app/demos/web/BasicController.java

@ -16,10 +16,10 @@ @@ -16,10 +16,10 @@
package com.depsystem.app.demos.web;
import com.depsystem.app.loginServer.CaptchaVO;
import com.depsystem.app.loginServer.Login;
import com.depsystem.app.loginServer.LoginServerImpl;
import com.depsystem.app.systemServer.securityServer.securityVO.*;
import com.depsystem.app.systemServer.util.RedisUtil;
import com.depsystem.app.systemServer.util.CacheUtil;
import com.depsystem.app.systemServer.util.ResponseResult;
import com.wf.captcha.SpecCaptcha;
import jakarta.annotation.Resource;
@ -55,7 +55,7 @@ public class BasicController { @@ -55,7 +55,7 @@ public class BasicController {
SpecCaptcha captcha = new SpecCaptcha(200,100,5);
String code = captcha.text().toLowerCase();
String key = UUID.randomUUID().toString();
RedisUtil redisUtil = new RedisUtil();
CacheUtil redisUtil = new CacheUtil();
redisUtil.set(key,code,3);
CaptchaVO captchaVO = new CaptchaVO();
captchaVO.setId(key);

Loading…
Cancel
Save