diff --git a/pom.xml b/pom.xml
index 682c3bc..44efdcd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
cloud.tianai.captcha
tianai-captcha
- 1.4.1
+ 1.4.2
tianai-captcha
行为验证码
diff --git a/src/main/java/cloud/tianai/captcha/generator/AbstractImageCaptchaGenerator.java b/src/main/java/cloud/tianai/captcha/generator/AbstractImageCaptchaGenerator.java
index 5092920..6c37b2e 100644
--- a/src/main/java/cloud/tianai/captcha/generator/AbstractImageCaptchaGenerator.java
+++ b/src/main/java/cloud/tianai/captcha/generator/AbstractImageCaptchaGenerator.java
@@ -122,7 +122,7 @@ public abstract class AbstractImageCaptchaGenerator implements ImageCaptchaGener
protected ResourceMap requiredRandomGetTemplate(String type, String tag) {
ResourceMap templateMap = imageCaptchaResourceManager.randomGetTemplate(type, tag);
- if (CollectionUtils.isEmpty(templateMap)) {
+ if (templateMap == null || CollectionUtils.isEmpty(templateMap.getResourceMap())) {
throw new ImageCaptchaException("随机获取模板资源失败, 获取到的资源为空, type=" + type + ",tag=" + tag);
}
return templateMap;
@@ -137,7 +137,7 @@ public abstract class AbstractImageCaptchaGenerator implements ImageCaptchaGener
}
- protected InputStream getTemplateFile(Map templateImages, String imageName) {
+ protected InputStream getTemplateFile(ResourceMap templateImages, String imageName) {
Resource resource = templateImages.get(imageName);
if (resource == null) {
throw new IllegalArgumentException("查找模板异常, 该模板下未找到 ".concat(imageName));
@@ -145,7 +145,7 @@ public abstract class AbstractImageCaptchaGenerator implements ImageCaptchaGener
return getResourceInputStream(resource, null);
}
- protected BufferedImage getTemplateImage(Map templateImages, String imageName) {
+ protected BufferedImage getTemplateImage(ResourceMap templateImages, String imageName) {
InputStream stream = getTemplateFile(templateImages, imageName);
BufferedImage bufferedImage = CaptchaImageUtils.wrapFile2BufferedImage(stream);
closeStream(stream);
@@ -190,7 +190,7 @@ public abstract class AbstractImageCaptchaGenerator implements ImageCaptchaGener
return stream;
}
- protected Optional getTemplateImageOfOptional(Map templateImages, String imageName) {
+ protected Optional getTemplateImageOfOptional(ResourceMap templateImages, String imageName) {
Optional optional = getTemplateFileOfOptional(templateImages, imageName);
if (optional.isPresent()) {
InputStream inputStream = optional.get();
@@ -201,7 +201,7 @@ public abstract class AbstractImageCaptchaGenerator implements ImageCaptchaGener
return Optional.empty();
}
- protected Optional getTemplateFileOfOptional(Map templateImages, String imageName) {
+ protected Optional getTemplateFileOfOptional(ResourceMap templateImages, String imageName) {
Resource resource = templateImages.get(imageName);
if (resource == null) {
return Optional.empty();
diff --git a/src/main/java/cloud/tianai/captcha/resource/common/model/dto/ResourceMap.java b/src/main/java/cloud/tianai/captcha/resource/common/model/dto/ResourceMap.java
index cb03db4..31a74ff 100644
--- a/src/main/java/cloud/tianai/captcha/resource/common/model/dto/ResourceMap.java
+++ b/src/main/java/cloud/tianai/captcha/resource/common/model/dto/ResourceMap.java
@@ -1,10 +1,10 @@
package cloud.tianai.captcha.resource.common.model.dto;
-import cloud.tianai.captcha.resource.common.model.dto.Resource;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.HashMap;
+import java.util.Map;
/**
* @Author: 天爱有情
@@ -12,24 +12,47 @@ import java.util.HashMap;
* @Description 存储一组Resource的Map, 增加tag标记
*/
@Data
-@EqualsAndHashCode(callSuper = true)
-public class ResourceMap extends HashMap {
+@EqualsAndHashCode
+public class ResourceMap {
+ private Map resourceMap;
private String tag;
public ResourceMap(String tag) {
this.tag = tag;
+ this.resourceMap = new HashMap<>();
}
public ResourceMap(String tag, int initialCapacity) {
- super(initialCapacity);
this.tag = tag;
+ this.resourceMap = new HashMap<>(initialCapacity);
}
public ResourceMap(int initialCapacity) {
- super(initialCapacity);
+ this.resourceMap = new HashMap<>(initialCapacity);
}
public ResourceMap() {
}
+
+ private Map getResourceMapOfCreate() {
+ if (resourceMap == null) {
+ resourceMap = new HashMap<>(2);
+ }
+ return resourceMap;
+ }
+
+ // ================== Map ==================
+
+ public Resource put(String key, Resource value) {
+ return getResourceMapOfCreate().put(key, value);
+ }
+
+ public Resource get(Object key) {
+ return getResourceMapOfCreate().get(key);
+ }
+ public Resource remove(Object key) {
+ return getResourceMapOfCreate().remove(key);
+ }
+
}