|
|
|
@ -0,0 +1,79 @@
|
|
|
|
|
package com.yami.shop.security.common.adapter;
|
|
|
|
|
|
|
|
|
|
import com.anji.captcha.service.CaptchaCacheService;
|
|
|
|
|
import com.yami.shop.common.util.RedisUtil;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* CaptchaCacheServiceRedisImpl类的主要作用是将验证码相关的数据存储适配到Redis中。
|
|
|
|
|
* 它实现了CaptchaCacheService接口,意味着需要按照该接口定义的方法规范来实现具体的功能,
|
|
|
|
|
* 从而为验证码服务提供基于Redis的缓存操作功能,例如存储验证码、判断验证码是否存在、删除验证码以及获取验证码等操作,
|
|
|
|
|
* 使得验证码相关的数据可以在Redis中进行有效的管理和操作。
|
|
|
|
|
*
|
|
|
|
|
* @author 菠萝凤梨
|
|
|
|
|
* @date 2022/3/25 17:33
|
|
|
|
|
*/
|
|
|
|
|
public class CaptchaCacheServiceRedisImpl implements CaptchaCacheService {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 此方法用于将指定的键值对存储到Redis中,并设置过期时间(以秒为单位)。
|
|
|
|
|
* 它调用了RedisUtil工具类中的set方法来实际执行向Redis存储数据的操作,
|
|
|
|
|
* 将传入的键(key)、值(value)以及过期时间(expiresInSeconds)传递给RedisUtil的对应方法进行处理。
|
|
|
|
|
*
|
|
|
|
|
* @param key 要存储到Redis中的键,用于唯一标识验证码相关的数据。
|
|
|
|
|
* @param value 要存储到Redis中的值,通常为验证码的具体内容等相关信息。
|
|
|
|
|
* @param expiresInSeconds 数据在Redis中的过期时间,单位为秒,超过这个时间后数据将自动从Redis中删除。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public void set(String key, String value, long expiresInSeconds) {
|
|
|
|
|
RedisUtil.set(key, value, expiresInSeconds);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 此方法用于判断在Redis中是否存在指定的键对应的验证码数据。
|
|
|
|
|
* 通过调用RedisUtil工具类中的hasKey方法来实现判断逻辑,
|
|
|
|
|
* 如果Redis中存在该键,则表示对应的验证码数据存在,返回true;否则返回false。
|
|
|
|
|
*
|
|
|
|
|
* @param key 要检查其是否存在的键,对应着可能存储在Redis中的验证码相关数据的标识。
|
|
|
|
|
* @return 如果Redis中存在该键对应的验证码数据,则返回true;否则返回false。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public boolean exists(String key) {
|
|
|
|
|
return RedisUtil.hasKey(key);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 此方法用于从Redis中删除指定键对应的验证码数据。
|
|
|
|
|
* 调用RedisUtil工具类中的del方法来执行从Redis中删除数据的实际操作,
|
|
|
|
|
* 使得对应的验证码相关信息在Redis中被移除,不再占用存储空间。
|
|
|
|
|
*
|
|
|
|
|
* @param key 要从Redis中删除其对应数据的键,即要删除的验证码相关数据在Redis中的标识。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public void delete(String key) {
|
|
|
|
|
RedisUtil.del(key);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 此方法用于从Redis中获取指定键对应的验证码数据的值(通常就是验证码的具体内容)。
|
|
|
|
|
* 借助RedisUtil工具类中的get方法来实现从Redis中查找并返回对应值的功能,
|
|
|
|
|
* 如果键存在,则返回对应的验证码数据的值;如果不存在,则返回相应的默认值(根据RedisUtil的实现来确定)。
|
|
|
|
|
*
|
|
|
|
|
* @param key 要从Redis中获取其对应值的键,即要获取的验证码相关数据在Redis中的标识。
|
|
|
|
|
* @return 从Redis中获取到的指定键对应的验证码数据的值,如果键不存在则返回相应结果(由RedisUtil决定)。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public String get(String key) {
|
|
|
|
|
return RedisUtil.get(key);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 此方法用于返回当前缓存服务所使用的存储类型,在这里明确返回“redis”,
|
|
|
|
|
* 表明本实现类是将验证码相关数据存储在Redis中的,方便外部代码知晓和区分不同的缓存存储实现方式。
|
|
|
|
|
*
|
|
|
|
|
* @return 始终返回“redis”,表示该缓存服务基于Redis进行数据存储。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public String type() {
|
|
|
|
|
return "redis";
|
|
|
|
|
}
|
|
|
|
|
}
|