PassJava项目的后台管理系统的bug调试记录

发表于:2021-8-23 09:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:cdxawesome    来源:CSDN

分享:
  测试的项目为本人参照学习passjava项目源码搭建的,搭建了有:
  1)renren-fast 后端快速开发框架
  2)renren-fast-vue 前端框架
  3)gateway与nacos 将模块注册进nacos,并且配置配置文件中心,将renren-fast收到的请求通过网关路由到不同模块上
  4)passjava-question 题目服务,支持题目列表展示、新增题目类型等。
  5)passjava-thirdparty 使用阿里云OSS存储图片
  问题描述:
  以下问题按顺序出现:
  启动前端登录界面,不显示验证码图片
  renren-fast-vue的前端页面是用renren-fast作为后端服务器,验证不显示那肯定就是后端的问题。
  · bug原因:
  renren-fast的代码中配置了跨域访问规则,但是我们已经把renren-fast这个模块的服务注册进了nacos,并且用gateway网关来实现了路由规则。所以当前端页面发起请求时,原来配置跨域访问规则就不会生效了,此时验证码就不会被获取到。
  · 解决办法:
  在gateway模块,自己配置跨域访问规则。代码如下:
  @Configuration
  public class PassJavaCorsConfiguration {
  @Bean
  public CorsWebFilter corsWebFilter() {
      UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
      CorsConfiguration corsConfiguration = new CorsConfiguration();
      // 配置跨域
      corsConfiguration.addAllowedHeader("*"); // 允许所有请求头跨域
      corsConfiguration.addAllowedMethod("*"); // 允许所有请求方法跨域
      corsConfiguration.addAllowedOrigin("*"); // 允许所有请求来源跨域
      corsConfiguration.setAllowCredentials(true); //允许携带cookie跨域,否则跨域请求会丢失cookie信息
      source.registerCorsConfiguration("/**", corsConfiguration);
      return new CorsWebFilter(source);
  }
  }
  正确显示出验证码了之后,输入登录信息,点击登录没有反映
  F12打开浏览器开发工具–控制台,发现报错信息如下:
  报错信息大概意思是,Access-Control-Allow-Origin这个请求头有多个值,但是只允许有一个值。这个请求头参数的名字是有关于权限控制的,那么就想起我们之前配置跨域访问了。
  · bug原因:
  由于我们在renren-fast这个模块内部配置了跨域访问规则,又在gateway模块中配置跨域访问规则,导致两者冲突。
  · 解决办法:
  将renren-fast这个模块中的跨域访问规则删除或者注释掉即可。
  成功登录后,进入题目中心—类型配置界面,看不到新增类型和批量删除的按钮
  · bug原因:
  找到控制这两个按钮的前端页面,发现有权限控制,权限不够无法看到这些按钮。
  · 解决办法
  直接将权限认证的方法返回true即可(这里是为了测试方便,如果在生产环境中,后台管理的账号需要做权限校验,根据账号的权限来显示可操作的菜单)。
  题目中心—类型配置界面,点击新增,弹出的输入框没有显示上传图片的按钮。
  · bug原因:
  这里就不展示了,passjava的源码里面是没有文件上传的代码的,需要在passjava的教程中获取,并复制到前端代码中。教程里面都有,这里就不再赘述。
  点击上传图片后,上传列表不显示,点击确认,提示图片url为空
  · bug原因:
  从前端的代码来看,是没有正确的获取到数据 。
  · 解决办法:
  经过测试,把下面这段代码的data删掉即可。
  成功显示上传图片列表了之后,不显示上传缩略图
  · bug原因:
  因为我使用的是阿里云的OSS服务来存储图片,在bucket配置中,我将bucket配置成了私有访问。
  · 解决办法:
  将bucket配置成公共读即可。

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号