diff --git a/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/validate/code/controller/ValidateCodeController.java b/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/validate/code/controller/ValidateCodeController.java index 86dc1ca..387d8ae 100644 --- a/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/validate/code/controller/ValidateCodeController.java +++ b/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/validate/code/controller/ValidateCodeController.java @@ -4,6 +4,7 @@ import com.micro.fast.security.core.master.SecurityProperties; import com.micro.fast.security.core.validate.code.constant.ValidateCodeConst; import com.micro.fast.security.core.validate.code.pojo.ImageCode; import com.micro.fast.security.core.validate.code.pojo.ValidateCode; +import com.micro.fast.security.core.validate.code.processor.ValidateCodeProcessor; import com.micro.fast.security.core.validate.code.service.SendSmsCode; import com.micro.fast.security.core.validate.code.util.ValidateCodeUtil; import org.springframework.beans.factory.annotation.Autowired; @@ -12,6 +13,7 @@ import org.springframework.social.connect.web.SessionStrategy; import org.springframework.web.bind.ServletRequestBindingException; import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.context.request.ServletWebRequest; @@ -19,6 +21,7 @@ import javax.imageio.ImageIO; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.Map; /** * 图片验证码控制层 @@ -38,10 +41,19 @@ public class ValidateCodeController { @Autowired private SendSmsCode sendSmsCode; + /** + * Collect all objects that implement {@link ValidateCodeProcessor} interface + * 收集所有实现了{@link ValidateCodeProcessor} 接口的类 + */ + @Autowired + private Map validateCodeProcessors; + private SessionStrategy sessionStrategy = new HttpSessionSessionStrategy(); @GetMapping("/code/{type}") - public void createCode(HttpServletResponse response, HttpServletRequest request) throws IOException { + public void createCode(HttpServletResponse response, HttpServletRequest request,@PathVariable("type") String type) throws IOException { + //create save send ValidateCode + validateCodeProcessors.get(type+"ValidateCodeProcessor").create(new ServletWebRequest(request,response)); ImageCode imageCode = (ImageCode) imageCodeUtil.createValidateCode(new ServletWebRequest(request)); ValidateCode validateCode = new ValidateCode(imageCode.getCode(),imageCode.getExpireTime()); //将验证码对象写入session中 diff --git a/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/validate/code/processor/impl/ImageValidateCodeProcessor.java b/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/validate/code/processor/impl/ImageValidateCodeProcessor.java index 363408b..36e1aa6 100644 --- a/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/validate/code/processor/impl/ImageValidateCodeProcessor.java +++ b/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/validate/code/processor/impl/ImageValidateCodeProcessor.java @@ -1,10 +1,16 @@ package com.micro.fast.security.core.validate.code.processor.impl; +import com.micro.fast.security.core.validate.code.pojo.ValidateCode; import org.springframework.stereotype.Component; +import org.springframework.web.context.request.ServletWebRequest; /** * 图片验证码逻辑类 */ @Component("imageValidateCodeProcessor") -public class ImageValidateCodeProcessor { +public class ImageValidateCodeProcessor extends AbstractValidateCodeProcessor { + @Override + public void send(ServletWebRequest servletWebRequest, ValidateCode validateCode) { + + } } diff --git a/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/validate/code/processor/impl/SmsValidateCodeProcessor.java b/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/validate/code/processor/impl/SmsValidateCodeProcessor.java index 8775c23..89ef9d4 100644 --- a/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/validate/code/processor/impl/SmsValidateCodeProcessor.java +++ b/boot-starter/boot-starter-security/boot-starter-security-core/src/main/java/com/micro/fast/security/core/validate/code/processor/impl/SmsValidateCodeProcessor.java @@ -1,8 +1,14 @@ package com.micro.fast.security.core.validate.code.processor.impl; +import com.micro.fast.security.core.validate.code.pojo.ValidateCode; import org.springframework.stereotype.Component; +import org.springframework.web.context.request.ServletWebRequest; @Component("smsValidateCodeProcessor") -public class SmsValidateCodeProcessor { +public class SmsValidateCodeProcessor extends AbstractValidateCodeProcessor{ + @Override + public void send(ServletWebRequest servletWebRequest, ValidateCode validateCode) { + + } }