springcloud gateway网关直接给前端返回json数据

项目场景:

最近项目的网关会做鉴权操作,鉴权失败想直接给前端请求返回json数据,但是response对象中好像没有直接操作response的方法,借鉴各位大佬的经验,发现想要给response加上json数据,涉及到流的知识,这以后也得巩固基础,去掌握,在这里我自己封装了一个工具类供大家参考使用。

工具类详情:

public class ResponeUtils {


    public DataBuffer getResponeBuffer( ServerHttpResponse response){


		
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",-1);
		//把json对象转换成字节数组
        byte[] bits = jsonObject.toJSONString().getBytes(StandardCharsets.UTF_8);
		//把字节数据转换成一个DataBuffer
        DataBuffer buffer = response.bufferFactory().wrap(bits);

        return buffer ;


    }

在filter中的代码简略如下

DataBuffer buffer = responeUtils.getResponeBuffer(response);

return response.writeWith(Mono.just(buffer));

这样就能把json数据写入返回体中,在网关直接给前端返回数据

这里涉及一些网络io操作的知识,奈何基础薄弱,暂时不懂,日后定好好学习
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页