JimuReport icon indicating copy to clipboard operation
JimuReport copied to clipboard

加上token鉴权后admin角色下积木仪表盘数据源和数据集无法修改删除

Open 2508207487 opened this issue 1 year ago • 2 comments

版本号:1.8.1-beta
问题描述:

项目单独部署,自带登录功能已去除,加上token鉴权后积木仪表盘的数据源和数据集无法修改删除,登录用户是admin,角色部分没有动默认也是admin,积木报表功能正常

错误日志&截图:

图片 图片 图片

重现步骤:

友情提示(为了提高issue处理效率):

  • 积木报表是一款免费报表产品,功能免费源码不开放;
  • 未按格式要求发帖,会被直接删掉;
  • 请针对问题提供[报表设计配置或SQL脚本]或在官网制作报表示例并提供ID;
  • 针对不好重现的问题,请录制操作视频或详细的重现步骤;

2508207487 avatar Oct 16 '24 02:10 2508207487

redis由于无法指定连接重新配置过,maven没有动,redisConfig重新配置的ruoyi-vue的序列化方式 @Configuration public class RedisConfig {

@Value("${spring.redis.host}")
private String host;

@Value("${spring.redis.port}")
private int port;

@Value("${spring.redis.password}")
private String password;

@Value("${spring.redis.database}")
private int database;

@Bean
JedisConnectionFactory jedisConnectionFactory() {
    RedisStandaloneConfiguration config = new RedisStandaloneConfiguration();
    config.setHostName(host);
    config.setPort(port);
    config.setPassword(password);
    config.setDatabase(database);
    return new JedisConnectionFactory(config);
}

@Bean
public RedisTemplate<String, Object> redisTemplate() {
    RedisTemplate<String, Object> template = new RedisTemplate<>();
    template.setConnectionFactory(jedisConnectionFactory());

    FastJson2JsonRedisSerializer serializer = new FastJson2JsonRedisSerializer(Object.class);

    // 使用StringRedisSerializer来序列化和反序列化redis的key值
    template.setKeySerializer(new StringRedisSerializer());
    template.setValueSerializer(serializer);

    // Hash的key也采用StringRedisSerializer的序列化方式
    template.setHashKeySerializer(new StringRedisSerializer());
    template.setHashValueSerializer(serializer);

    template.afterPropertiesSet();
    return template;
}

}

2508207487 avatar Oct 16 '24 02:10 2508207487

仪表盘加载时打断点看一下,有没有进入到配置的这个getRoles方法

jeecgDeveloper avatar Oct 21 '24 08:10 jeecgDeveloper

仪表盘加载时打断点看一下,有没有进入到配置的这个getRoles方法

图片 进来了

2508207487 avatar Oct 22 '24 00:10 2508207487

测试没问题。那你看看进入设计页面时,查询的接口,有返回用户角色和用户信息吗?然后看看新增的数据源的用户信息是否匹配

jeecgDeveloper avatar Oct 30 '24 08:10 jeecgDeveloper

测试没问题。那你看看进入设计页面时,查询的接口,有返回用户角色和用户信息吗?然后看看新增的数据源的用户信息是否匹配

应该是添加数据时没有加上创建人导致的,响应回来的数据中测试那个是我创建的,没有创建人,下面的是之前系统的有创建人 图片

数据库中加上创建人后就有修改删除了 图片 图片

2508207487 avatar Oct 30 '24 09:10 2508207487

数据集也是一样的问题 图片 图片

2508207487 avatar Oct 30 '24 09:10 2508207487

升级到新版试试

<dependency>
   <groupId>org.jeecgframework.jimureport</groupId>
   <artifactId>jimureport-dashboard-spring-boot-starter</artifactId>
   <version>1.9.0</version>
 </dependency>

jeecgDeveloper avatar Nov 01 '24 01:11 jeecgDeveloper

升级到新版试试

<dependency>
   <groupId>org.jeecgframework.jimureport</groupId>
   <artifactId>jimureport-dashboard-spring-boot-starter</artifactId>
   <version>1.9.0</version>
 </dependency>

图片

2508207487 avatar Nov 01 '24 02:11 2508207487

去执行升级sql

zhangdaiscott avatar Nov 01 '24 02:11 zhangdaiscott

图片 这个角色校验没有用吗,我这传了个字符串“超级管理员”也没有提示权限不足啥的

2508207487 avatar Nov 01 '24 02:11 2508207487

传递英文code,按照我们的规则,不是你自己想什么事什么

zhangdaiscott avatar Nov 01 '24 02:11 zhangdaiscott

传递英文code,按照我们的规则,不是你自己想什么事什么

我的意思是,角色校验这不是校验的admin吗,我传的“超级管理员”的字符串,但是他没有提示权限不足

2508207487 avatar Nov 01 '24 02:11 2508207487

目前仪表盘的功能还没有加角色控制

zhangdaiscott avatar Nov 01 '24 02:11 zhangdaiscott

图片 图片 配置文件切换到发布模式prod后获取不到token

2508207487 avatar Nov 01 '24 03:11 2508207487

配置文件切换到发布模式prod后获取不到token

您截图里这个tokenService是你自己的token实现类吗?您先检查下为啥他会返回null? QQ_1730460815749

jeecgos avatar Nov 01 '24 11:11 jeecgos

配置文件切换到发布模式prod后获取不到token

您截图里这个tokenService是你自己的token实现类吗?您先检查下为啥他会返回null? QQ_1730460815749

进积木仪表盘时第一次能获取到,后面就获取不到了,应该是程序的bug,另外配置文件选dev开发模式的话功能正常

2508207487 avatar Nov 02 '24 01:11 2508207487

配置文件切换到发布模式prod后获取不到token

您截图里这个tokenService是你自己的token实现类吗?您先检查下为啥他会返回null? QQ_1730460815749

进积木仪表盘时第一次能获取到,后面就获取不到了,应该是程序的bug,另外配置文件选dev开发模式的话功能正常

两种模式有什么区别呢?token实现类不一样吗?

jeecgDeveloper avatar Nov 15 '24 01:11 jeecgDeveloper

长时间未回复,如仍然有问题,请提交新issue

jeecgDeveloper avatar Nov 25 '24 07:11 jeecgDeveloper