lsekfe 发表于 2021-8-25 09:47:33

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模块,自己配置跨域访问规则。代码如下:
 @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配置成公共读即可。


页: [1]
查看完整版本: PassJava项目的后台管理系统的bug调试记录