Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Pig
提交
1e6f8795
P
Pig
项目概览
int
/
Pig
上一次同步 大约 1 年
通知
8
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Pig
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1e6f8795
编写于
5月 16, 2020
作者:
O
owen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
替换"inappropriate blocking method call"代码
上级
9d62eafb
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
35 addition
and
20 deletion
+35
-20
pig-gateway/src/main/java/com/pig4cloud/pig/gateway/filter/ValidateCodeGatewayFilter.java
...g4cloud/pig/gateway/filter/ValidateCodeGatewayFilter.java
+14
-8
pig-gateway/src/main/java/com/pig4cloud/pig/gateway/handler/ImageCodeHandler.java
...a/com/pig4cloud/pig/gateway/handler/ImageCodeHandler.java
+21
-12
未找到文件。
pig-gateway/src/main/java/com/pig4cloud/pig/gateway/filter/ValidateCodeGatewayFilter.java
浏览文件 @
1e6f8795
...
...
@@ -32,6 +32,7 @@ import lombok.SneakyThrows;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.cloud.gateway.filter.GatewayFilter
;
import
org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory
;
import
org.springframework.core.io.buffer.DataBuffer
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.MediaType
;
...
...
@@ -82,14 +83,19 @@ public class ValidateCodeGatewayFilter extends AbstractGatewayFilterFactory {
}
catch
(
Exception
e
)
{
ServerHttpResponse
response
=
exchange
.
getResponse
();
response
.
setStatusCode
(
HttpStatus
.
PRECONDITION_REQUIRED
);
response
.
getHeaders
().
setContentType
(
MediaType
.
APPLICATION_JSON
);
try
{
return
response
.
writeWith
(
Mono
.
just
(
response
.
bufferFactory
()
.
wrap
(
objectMapper
.
writeValueAsBytes
(
R
.
failed
(
e
.
getMessage
())))));
}
catch
(
JsonProcessingException
e1
)
{
log
.
error
(
"对象输出异常"
,
e1
);
}
response
.
getHeaders
().
setContentType
(
MediaType
.
APPLICATION_JSON
);
return
response
.
writeWith
(
Mono
.
create
(
monoSink
->
{
try
{
byte
[]
bytes
=
objectMapper
.
writeValueAsBytes
(
R
.
failed
(
e
.
getMessage
()));
DataBuffer
dataBuffer
=
response
.
bufferFactory
().
wrap
(
bytes
);
monoSink
.
success
(
dataBuffer
);
}
catch
(
JsonProcessingException
jsonProcessingException
)
{
log
.
error
(
"对象输出异常"
,
jsonProcessingException
);
monoSink
.
error
(
jsonProcessingException
);
}
}));
}
return
chain
.
filter
(
exchange
);
...
...
pig-gateway/src/main/java/com/pig4cloud/pig/gateway/handler/ImageCodeHandler.java
浏览文件 @
1e6f8795
...
...
@@ -22,7 +22,8 @@ import com.google.code.kaptcha.Producer;
import
com.pig4cloud.pig.common.core.constant.CommonConstants
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.core.io.ByteArrayResource
;
import
org.springframework.core.io.buffer.DefaultDataBuffer
;
import
org.springframework.core.io.buffer.DefaultDataBufferFactory
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.MediaType
;
...
...
@@ -53,6 +54,23 @@ public class ImageCodeHandler implements HandlerFunction<ServerResponse> {
@Override
public
Mono
<
ServerResponse
>
handle
(
ServerRequest
serverRequest
)
{
return
ServerResponse
.
status
(
HttpStatus
.
OK
)
.
contentType
(
MediaType
.
IMAGE_JPEG
)
.
body
(
BodyInserters
.
fromDataBuffers
(
Mono
.
create
(
monoSink
->
{
try
{
byte
[]
bytes
=
createCodeImage
(
serverRequest
);
DefaultDataBuffer
dataBuffer
=
new
DefaultDataBufferFactory
().
wrap
(
bytes
);
monoSink
.
success
(
dataBuffer
);
}
catch
(
IOException
e
)
{
log
.
error
(
"ImageIO write err"
,
e
);
monoSink
.
error
(
e
);
}
})));
}
private
byte
[]
createCodeImage
(
ServerRequest
serverRequest
)
throws
IOException
{
//生成验证码
String
text
=
producer
.
createText
();
BufferedImage
image
=
producer
.
createImage
(
text
);
...
...
@@ -63,16 +81,7 @@ public class ImageCodeHandler implements HandlerFunction<ServerResponse> {
// 转换流信息写出
FastByteArrayOutputStream
os
=
new
FastByteArrayOutputStream
();
try
{
ImageIO
.
write
(
image
,
"jpeg"
,
os
);
}
catch
(
IOException
e
)
{
log
.
error
(
"ImageIO write err"
,
e
);
return
Mono
.
error
(
e
);
}
return
ServerResponse
.
status
(
HttpStatus
.
OK
)
.
contentType
(
MediaType
.
IMAGE_JPEG
)
.
body
(
BodyInserters
.
fromResource
(
new
ByteArrayResource
(
os
.
toByteArray
())));
ImageIO
.
write
(
image
,
"jpeg"
,
os
);
return
os
.
toByteArray
();
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录