51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 3184|回复: 1
打印 上一主题 下一主题

[转贴] PassJava项目的后台管理系统的bug调试记录

[复制链接]
  • TA的每日心情
    无聊
    9 小时前
  • 签到天数: 943 天

    连续签到: 2 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-8-25 09:47:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    测试的项目为本人参照学习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打开浏览器开发工具–控制台,发现报错信息如下:

    报错信息大概意思是,Access-Control-Allow-Origin这个请求头有多个值,但是只允许有一个值。这个请求头参数的名字是有关于权限控制的,那么就想起我们之前配置跨域访问了。
      · bug原因:
      由于我们在renren-fast这个模块内部配置了跨域访问规则,又在gateway模块中配置跨域访问规则,导致两者冲突。
      · 解决办法:
      将renren-fast这个模块中的跨域访问规则删除或者注释掉即可。
      成功登录后,进入题目中心—类型配置界面,看不到新增类型和批量删除的按钮

    · bug原因:
      找到控制这两个按钮的前端页面,发现有权限控制,权限不够无法看到这些按钮。


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



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



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


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-7 21:19 , Processed in 0.061704 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表