This commit is contained in:
lsy
2017-12-15 11:42:48 +08:00
parent 577ecdaf3f
commit ad95eb67f1
3 changed files with 27 additions and 3 deletions
@@ -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<String,ValidateCodeProcessor> 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中
@@ -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) {
}
}
@@ -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) {
}
}