feat(新增): 🚀 返回图片验证码接口
This commit is contained in:
parent
e202c10336
commit
0d218cd7ba
|
@ -30,8 +30,11 @@ public class WebMvcConfiguration implements WebMvcConfigurer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addInterceptors(InterceptorRegistry registry) {
|
public void addInterceptors(InterceptorRegistry registry) {
|
||||||
String[] excludeList = {"/api/checkCode", "/api/sendEmailCode", "/api/register", "/api/login", "/api/article/loadArticle/**"};
|
|
||||||
log.info("WebMvcConfiguration===>开始注册自定义拦截器...");
|
log.info("WebMvcConfiguration===>开始注册自定义拦截器...");
|
||||||
|
|
||||||
|
String[] excludeList = {"/api/checkCode", "/api/sendEmailCode", "/api/register", "/api/login",};
|
||||||
|
registry.addInterceptor(userTokenInterceptor).excludePathPatterns(excludeList);
|
||||||
|
|
||||||
// TODO 如果想使用普通JWT可以使用这个,不使用 SpringSecurity6
|
// TODO 如果想使用普通JWT可以使用这个,不使用 SpringSecurity6
|
||||||
// registry.addInterceptor(userTokenInterceptor).addPathPatterns("/api/**").excludePathPatterns(excludeList);
|
// registry.addInterceptor(userTokenInterceptor).addPathPatterns("/api/**").excludePathPatterns(excludeList);
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,8 +88,9 @@ public class WebSecurityConfig {
|
||||||
// 排出鉴定路径
|
// 排出鉴定路径
|
||||||
@Bean
|
@Bean
|
||||||
public WebSecurityCustomizer webSecurityCustomizer() {
|
public WebSecurityCustomizer webSecurityCustomizer() {
|
||||||
String[] annotations = {"/", "/test/**", "/diagram-viewer/**", "/editor-app/**", "/*.html",
|
String[] annotations = {"/", "/test/**", "/*.html", "/*/*/noAuth/**", "/*/noAuth/**", "/favicon.ico", "/swagger-resources/**", "/swagger-ui.html/**",
|
||||||
"/*/*/noAuth/**", "/*/noAuth/**", "/favicon.ico", "/swagger-resources/**", "/webjars/**", "/v3/**", "/swagger-ui.html/**", "/doc.html"};
|
"/api/**"
|
||||||
|
};
|
||||||
return web -> web.ignoring().requestMatchers(annotations);
|
return web -> web.ignoring().requestMatchers(annotations);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
package cn.bunny.service.controller;
|
||||||
|
|
||||||
|
import cn.bunny.service.service.LoginService;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@Tag(name = "web相关接口")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api")
|
||||||
|
public class WebController {
|
||||||
|
@Autowired
|
||||||
|
private LoginService loginService;
|
||||||
|
|
||||||
|
@Operation(summary = "生成验证码", description = "生成验证码")
|
||||||
|
@GetMapping("checkCode")
|
||||||
|
public ResponseEntity<byte[]> checkCode() {
|
||||||
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
headers.setContentType(MediaType.IMAGE_JPEG);
|
||||||
|
|
||||||
|
byte[] image = loginService.checkCode();
|
||||||
|
return new ResponseEntity<byte[]>(image, headers, HttpStatus.OK);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
package cn.bunny.service.service;
|
||||||
|
|
||||||
|
public interface LoginService {
|
||||||
|
/**
|
||||||
|
* * 生成验证码
|
||||||
|
*
|
||||||
|
* @return 验证码图片数组
|
||||||
|
*/
|
||||||
|
byte[] checkCode();
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
package cn.bunny.service.service.impl;
|
||||||
|
|
||||||
|
import cn.bunny.service.service.LoginService;
|
||||||
|
import cn.hutool.captcha.CaptchaUtil;
|
||||||
|
import cn.hutool.captcha.CircleCaptcha;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class LoginServiceImpl implements LoginService {
|
||||||
|
/**
|
||||||
|
* * 生成验证码
|
||||||
|
*
|
||||||
|
* @return 验证码图片数组
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public byte[] checkCode() {
|
||||||
|
// 生成验证码
|
||||||
|
CircleCaptcha captcha = CaptchaUtil.createCircleCaptcha(150, 48, 4, 2);
|
||||||
|
return captcha.getImageBytes();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue