当前位置: 首页 > news >正文

济南企业网站朝阳区网站开发公司

济南企业网站,朝阳区网站开发公司,企业网络推广网站,wordpress文章出问题前后端分离项目中#xff0c;在不使用 SpringSecurity、Shiro 安全框架的情况下#xff0c;后端是如何处理前段传递的 token 的呢#xff1f; 简单说一个场景#xff0c;在一个非常小的项目中#xff0c;由于业务逻辑比较简单#xff0c;也没有啥安全要求#xff0c;所以… 前后端分离项目中在不使用 SpringSecurity、Shiro 安全框架的情况下后端是如何处理前段传递的 token 的呢 简单说一个场景在一个非常小的项目中由于业务逻辑比较简单也没有啥安全要求所以决定不采用 SpringSecurity、Shiro 等安全框架但由于大部分方法都会用到当前的用户信息所以决定对前端传递的用户token进行一次公共处理。 解决思路采用自定义注解方式将token对应的数据自动注入到相应实体中。 最终实现效果如下带有 CurrentUser 注解的 UserModel 实体会自动注入用户信息。 RequestMapping(value  getUserInfo, method  {RequestMethod.POST})ApiOperation(value  我是某方法)public ResultUserModel getUserInfo(CurrentUser UserModel user){    return ResultUtil.success(user);} 1、自定义解析器 实现自定义解析器需要实现 HandlerMethodArgumentResolver 接口该接口包含两个方法supportsParameter resolveArgument。 简单说一下这两个方法的作用 supportsParameter用于判定参数是否需要进行分解处理说白了就是一个过滤方法如果返回true则表示需要并会去调用 resolveArgument() 方法。 resolveArgument真正处理参数分解的方法返回的Object对象为Controller中的参数类型对象本文中为 UserModel。 正式开始我们创建一个 class 取名为 CurrentUserMethodArgumentResolver实现上边提到的这两个方法 Componentpublic class CurrentUserMethodArgumentResolver implements HandlerMethodArgumentResolver {    Autowired    private UserDao userDao;    Override    public boolean supportsParameter(MethodParameter parameter) {        /**如果参数类型是User并且有CurrentUser注解则支持**/        if (parameter.getParameterType().isAssignableFrom(UserModel.class)                 parameter.hasParameterAnnotation(CurrentUser.class)) {            return true;        }        return false;    }    Override    public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {        /**取出前端Header或者是参数中携带的token如下二选一**/        String token  webRequest.getHeader(token);        String token  webRequest.getParameter(token);        if (token ! null) {            /**对token进行解析比如从redis中取出token所对应的用户标识**/            /**总之就是从token中得到用户的唯一标识然后从数据库中查询并返回**/            User user  userDao.findByUserId(用户唯一标识userId);            UserModel result  new UserModel();            BeanUtils.copyProperties(user, result);            return result;        }        return null;    }}     2、简单说一下上方方法 supportsParameter通过 UserModel 类型判断 CurrentUser 注解判断验证是否返回 true。 resolveArgument主要通过 webRequest 获取 Header 或者是 Parmeter 中的 token 参数取到参数后首先对 token 进行处理换取用户的唯一标识拿到用户唯一标识后再去数据库查询相应的用户信息然后进行一个格式转换毕竟有些数据还是不要直接返回给前台的好「用户密码等」。 至于怎么使用最开始已经贴过代码了只要在 UserModel 加入 CurrentUser 注解即可实现数据注入了当然前端势必要加入 token 参数才可以 RequestMapping(value  getUserInfo, method  {RequestMethod.POST})ApiOperation(value  我是某方法)public ResultUserModel getUserInfo(CurrentUser UserModel user){    return ResultUtil.success(user);} 最后 博客地址https://www.cgblog.com/niceyoo 如果觉得这篇文章有丶东西不放关注一下我关注是对我最大的鼓励~ 18年专科毕业后期间一度迷茫最近我创建了一个公众号用来记录自己的成长。
http://www.yutouwan.com/news/279335/

相关文章:

  • 英文介绍做美食视频网站网站创建流程教程
  • 网站建设优化服务器可以做网站开个写手公司
  • 临湘网站长沙免费模板建站
  • 遵义网站制作如何收费云加速应用于html网站
  • 网站没备案可以做淘宝客吗关方网站买微信
  • 企业网站建设研究校园网站的建设作用
  • 网站提示建设中织梦网站地图插件utf-8
  • 网站建设与维护的试题卷判断题关键词一般是指什么
  • 网站查询域名ip入口学校如何建设网站首页
  • 百度商桥怎么添加到网站网站建设项目实战实训报告
  • 凡科网站空间慢计算机培训班包就业
  • 网站如何做好用户体验建一个英文网站需要多少钱
  • 哈尔滨模板自助建站wordpress显示用户称谓
  • 网站建设国内排行怎么制作网站横幅
  • 哪个网站专门做二手电脑手机的广告网站建设最专业
  • 旅游网站制作方案服务器免费
  • 高端娱乐网站建设东莞如何制作免费的网页
  • 做cpa推广的网站怎么弄建筑工程最新规范查询
  • 做网站必须要认证吗摄影网站制作
  • 响应式网站的制作莱芜大众网
  • 专门做油站数据的网站企业展厅建设公司
  • 离石市网站建设公司织梦网站如何播放mp4
  • 网站关键词优化互点wordpress交易网站
  • 南京建设网站中山网站排名
  • 表格比较多得网站这么做响应式iis如何发布asp.net网站
  • 网站左边logo图标怎么做企业开发小程序公司
  • 网站开发设计哪家好温州市网站制作公司
  • 北京网站建设费用linux wordpress 下载文件
  • 网站自己做推广网页qq邮箱登录
  • wordpress关闭在线修改主题seo点击排名工具