springboot拦截器拦截器响应返回json数据给客户端
拦截器:package com.xmj.interceptor; import com.xmj.enums.BizCodeEnum; import com.xmj.model.LoginUser; import com.xmj.utils.CommonUtil; import com.xmj.utils.JWTUtil; import com.xmj.utils.JsonData; import io.jsonwebtoken.Claims; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @Slf4j public class LoginInterceptor implements HandlerInterceptor { /** * 进入方法之前 * @param request * @param response * @param handler * @return * @throws Exception */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 头部获取 String accessToken = request.getHeader("token"); //头部获取不到就url中获取 if (accessToken == null) { accessToken = request.getParameter("token"); } //不为空则解密 if (StringUtils.isNotBlank(accessToken)) { Claims claims = JWTUtil.checkJWT(accessToken); if (claims == null) { //未登录,返回未登录的json数据给前端 CommonUtil.sendJsonMessage(response, JsonData.buildResult(BizCodeEnum.ACCOUNT_UNLOGIN)); return false; } Long userId = Long.valueOf(claims.get("id").toString()); String headImg = (String)claims.get("head_img"); String name = (String)claims.get("name"); String mail = (String)claims.get("mail"); LoginUser loginUser = new LoginUser(); loginUser.setHeadImg(headImg); loginUser.setId(userId); loginUser.setMail(mail); loginUser.setName(name); return true; } CommonUtil.sendJsonMessage(response, JsonData.buildResult(BizCodeEnum.ACCOUNT_UNLOGIN)); return false; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } }
工具类:
CommonUtil/** * 响应json数据给前端 * * @param response * @param obj */ public static void sendJsonMessage(HttpServletResponse response, Object obj) { //Spring boot 默认/* ObjectMapper objectMapper = new ObjectMapper(); // response的头信息 response.setContentType("application/json;charset=utf-8"); try (PrintWriter writer = response.getWriter();){ writer.print(objectMapper.writeValueAsString(obj)); response.flushBuffer(); } catch (IOException e) { log.warn("响应json数据给前端异常:{}",e); } }
B站旗下bilipods与鬼灭之刃联名推出首款蓝牙耳机鞭牛士4月6日消息,今日,B站正式公布旗下自有耳机消费品牌bilipods,官方账号也在B站和微博同步上线。据官方介绍,bilipods作为B站旗下的耳机品牌,将通过经典造型声优台
Lexar推出256GBUHSIIV90记忆卡产品闪存解决方案厂商雷克沙近日宣布推出256GB容量的Professional2000xSDXCUHSII卡GOLD系列,读取速度最高可达300MBs,是专为单反相机和电影级摄像机设计
vivo新品发布会邀请函到来4月11日见证多款旗舰亮相手机中国新闻4月11日,vivo即将举办新品发布会。根据目前已知的消息来看,vivo将在本次发布会上推出vivoXNotevivoXFold以及vivoPad等产品。在发布会前,我
加密货币的未来究竟属于圈子还是大众?文毕舸加密货币的第二春热度不减,继去年比特币疯涨之后,美国加密货币平台Coinbase上市,首日市值达到600多亿美元,这也进一步助推加密货币市场迎集体狂欢。Wind数据显示,截至
国外看邮件赚美金是割韭菜吗?大家好,我是墨白,一个在互联网混迹四年的资深韭菜先唠唠嗑,我昨天不是说cpa网站要搞好了吗,我估摸着又要拖一段时间了,具体原因是因为支付系统,因为我营业执照是个体户,然后微信后h5
你知道比特币价格是如何决定的吗?比特币有数学特性的支持,例如持久性可互换性稀缺性等,并不依靠物理特性或者货币发行机构的信用背书。新的比特币通过挖矿产生。而比特币日常交易一般在欧易等交易所上进行。但由于存在2100
如何让电脑老机器运行如飞电脑升级换代非常快,一般来说,两年就要淘汰一批,要是赶上硬件和软件巨头竞争激烈的时代,一年淘汰一批甚至不到一年淘汰一批也是正常的。淘汰之后的老机器仍然能用,并不是直接进废品收购站。
华为,终于完成了近日,在中国信通院IMT2020(5G)推进组的指导下,华为完成了5G毫米波基站全部功能和外场性能测试项目,DDDSU帧结构下单用户下行峰值速率达到了7Gbps。所以这和我们普通人
买手机再等等?拒绝爱国绑架近日,高通骁龙推出最新款处理器骁龙8Gen1已经被联想旗下摩托罗拉首发,引起全网关注,支持鼓励者少,冷嘲热讽者多,众多手机博主纷纷下场,让消费者再等等,骁龙8Gen1是大火龙,不好
通信行业2022年投资策略5G组网完成,元宇宙启动(报告出品方作者太平洋证券李宏涛)121年回顾前低后高,市场逐步恢复2021年通信指数前低后高,capex和应用驱动景气今年以来,申万一级行业指数5个行业板块涨幅超过20。其中,通
OPPOReno7Pro口碑怎么样?想给家人买一台?如果年度有换机的打算,OPPOReno7Pro确实是非常不错的选择,从目前网上口碑来看的话,这款手机首销期间还是非常强势的。我大概看了一下,OPPOReno7Pro天猫评分达到4。
满分100分,你给荣耀V10打多少分?我给95分吧,可以说几乎完美了。拥有麒麟970加上EMUI8。0软硬AI相结合,更好的拍照,更快的快充,AIcamera等等,都让荣耀V10成为人工智能手机领域独一无二的存在。具体
该怎么和女朋友解释买了switch还要买PS5?这还要解释?她买化妆品要不要给你解释?我想买一个playstation5路由器,这样你看李佳琪或者卖糖水的就不卡了,能抢先一步买到自己的东西为什么要解释,花的她的钱?女朋友为啥要解
中国芯片没有ARM授权还可以设计吗?不是,获得指令集授权的,生产100年也没人管的了。就是不能按arm最新授权,新的指令集设计和制造了而已。例如华为获得的是armv8指令集永久授权。大不了就在v8基础上自己扩充指令集
什么时候可以买到华为MATE10pro?感谢您的阅读!这是华为的一款老款机型。当然,这款手机,它确实有着自己,独特之处,也让我们从这款手机中认识了华为的表现。华为mate10Pro,这款手机的外观设计延续了华为一贯以来的
创业做网站选择用node好还是php?用node和php都做过网站。性能,应该是node更好一些开发效率,php的同步代码方便理解,生态更加成熟。node异步代码写起来总感觉不好把控。部署,php一般是nginxfas
初中毕业学习大数据好吗?前景怎样?大数据是我的主要研究方向之一,目前也在指导大数据方向的研究生,所以我来回答一下这个问题。首先,初中生学习大数据还是具有一定难度的,但是由于大数据产业链比较长,除了数据分析之外,数据
美国又出手,中国光刻机企业遭制裁芯三板公众号(IDickey360)芯三板消息,当地时间2月7日,美国商务部工业与安全局(BIS)宣布,将33家中国实体加入出口管制未经核实名单(UnverifiedList,简称
存储空间不足?一键删除这些隐藏文件夹,手机释放30G当手机显示内存空间不足时,你会怎么办?相信小伙伴们会尝试去删除一些照片和视频,还会通过自带的手机管家进行清理,可是却没有起多大的效果,最多也只是清理了几G。其实,我们的手机里面隐藏
18块8元买32GU盘不吃亏Lexar磨砂金属U盘好价18块8买个U盘,不到一顿饭钱,买不了吃亏!雷克沙(Lexar)全新一代M25金属U盘32G款,雷克沙存储京东自营旗舰店仅售18。8元,隔日送达!雷克沙(Lexar)M25系列采用
美国失血!替换中国通信设备成本高昂对于美国运营商更换华为和中兴的网络设备的实际成本,最初的估计似乎有很大偏差。联邦通信委员会(FCC)刚刚结束了ripandreplace计划的第一轮申请,并表示它收到的申请总额几乎
冰箱小课堂冰箱怎么选?我们该怎么选择一款实用方便的冰箱呢?今天给大家敲一下重点第一选风冷还是直冷风冷优点是无霜制冷均匀,用起来真的省心,就是价格较直冷贵而直冷最大的优势就是性价比高,缺点是需要定期除霜。