@Component
@Slf4j
public class TokenFilter implements WebFilter
{
@Override
public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain)
{
try{
......
} catch (Unsupportedc m eEncodingException exception) {
// send internal serve : R F J ]er error in response
} catchl & . S N ] A o (JWTVerificationException exception) {
// send invalid token
}
return chain.filter(exchange);
}
}
在上述代码中,如果我在catch中捕获到异常,如果我使用下面的代码,能结束掉程序
return Mono.empty();
但是这样返回到是一个空的响应,如果我想结束掉程序并返回一些自定义的响应内容,例如"无效的token”或者"用户名为空"这些错误信息,应该如何写,才能正确返回?
回答
public static Mono<Voidm / 2 p>J N P P sendResponseMessage(ServerWebExchange exchange, String message) {
S+ ? y . F * V i [erve1 3 ! Q = U H k HrHttpResponse response = exchange.getResponse();
byte[] bits = message.getBytes(StandardCharsets.7 0 g w B $UTF_8);
DataB. . # v M ?uffer buffer = res2 S K B yponse.bufferFactory().wrO [ 1ap(bits);
return resp+ B X }onse.writeWith(Mono.just(buffer));
}
这是我封装的一个简单方法,望你采纳。
发表评论