51Testing软件测试论坛

标题: PassJava项目的后台管理系统的bug调试记录 [打印本页]

作者: lsekfe    时间: 2021-8-25 09:47
标题: PassJava项目的后台管理系统的bug调试记录
测试的项目为本人参照学习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模块,自己配置跨域访问规则。代码如下:
  1.  @Configuration

  2.   public class PassJavaCorsConfiguration {

  3.   @Bean

  4.   public CorsWebFilter corsWebFilter() {

  5.       UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();

  6.       CorsConfiguration corsConfiguration = new CorsConfiguration();

  7.       // 配置跨域

  8.       corsConfiguration.addAllowedHeader("*"); // 允许所有请求头跨域

  9.       corsConfiguration.addAllowedMethod("*"); // 允许所有请求方法跨域

  10.       corsConfiguration.addAllowedOrigin("*"); // 允许所有请求来源跨域

  11.       corsConfiguration.setAllowCredentials(true); //允许携带cookie跨域,否则跨域请求会丢失cookie信息

  12.       source.registerCorsConfiguration("/**", corsConfiguration);

  13.       return new CorsWebFilter(source);

  14.   }

  15.   }
复制代码
正确显示出验证码了之后,输入登录信息,点击登录没有反映
  F12打开浏览器开发工具–控制台,发现报错信息如下:
[attach]134041[/attach]
报错信息大概意思是,Access-Control-Allow-Origin这个请求头有多个值,但是只允许有一个值。这个请求头参数的名字是有关于权限控制的,那么就想起我们之前配置跨域访问了。
  · bug原因:
  由于我们在renren-fast这个模块内部配置了跨域访问规则,又在gateway模块中配置跨域访问规则,导致两者冲突。
  · 解决办法:
  将renren-fast这个模块中的跨域访问规则删除或者注释掉即可。
  成功登录后,进入题目中心—类型配置界面,看不到新增类型和批量删除的按钮
[attach]134042[/attach]
· bug原因:
  找到控制这两个按钮的前端页面,发现有权限控制,权限不够无法看到这些按钮。

[attach]134043[/attach]
· 解决办法
  直接将权限认证的方法返回true即可(这里是为了测试方便,如果在生产环境中,后台管理的账号需要做权限校验,根据账号的权限来显示可操作的菜单)。

[attach]134044[/attach]
[attach]134045[/attach]
 题目中心—类型配置界面,点击新增,弹出的输入框没有显示上传图片的按钮。
  · bug原因:
  这里就不展示了,passjava的源码里面是没有文件上传的代码的,需要在passjava的教程中获取,并复制到前端代码中。教程里面都有,这里就不再赘述。
  点击上传图片后,上传列表不显示,点击确认,提示图片url为空
  · bug原因:
  从前端的代码来看,是没有正确的获取到数据 。
  · 解决办法:
  经过测试,把下面这段代码的data删掉即可。

[attach]134046[/attach]
[attach]134047[/attach]
成功显示上传图片列表了之后,不显示上传缩略图
  · bug原因:
  因为我使用的是阿里云的OSS服务来存储图片,在bucket配置中,我将bucket配置成了私有访问。
  · 解决办法:
  将bucket配置成公共读即可。







欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2