【问题标题】:AclClassIdUtils : Unable to obtain the class id typeAclClassIdUtils : 无法获取类 id 类型
【发布时间】:2019-05-21 11:53:04
【问题描述】:

我已在我的实体的权限级别上集成了 ACL 的配置代码。一切正常,它甚至会检查用户是否拥有特定权限并根据他们的角色拒绝/允许访问。但是,每当检查权限时,我都会在控制台中收到以下错误,我想消除它。

我已经尝试将列 class_id_type 添加到 acl_class 中,但这并没有改变任何东西。

@Column(name = "class_id_type")
@Null
private String classIdType;

我正在使用 编译组:'org.springframework.security',名称:'spring-security-core',版本:'5.1.2.RELEASE'

2019-05-21 13:42:17.593 DEBUG 4036 --- [nio-8080-exec-4] o.s.security.acls.jdbc.AclClassIdUtils :无法获取类 id 类型

org.postgresql.util.PSQLException:在此 ResultSet 中找不到列名 class_id_type。

【问题讨论】:

  • 数据库中可能不存在该列?
  • 不,不幸的是:/
  • 我是this bug

标签: java spring-security acl


【解决方案1】:

class_id_type默认是从acl_class中选择的BasicLookupStrategy,但是在spring security官网class_id_type列已经改成class

create table acl_class(
    id bigint generated by default as identity(start with 100) not null primary key,
    class varchar_ignorecase(100) not null,
    constraint unique_uk_2 unique(class)
);

所以,只需创建自己:从 BasicLookupStrategy 实现 LookupStrategy 的公共类 MyLookupStrategy 和从 AclClassIdUtils 实现的公共类 MyAclClassIdUtils

然后将'class_id_type'更改为'class', 那么它应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 2011-08-12
    • 2020-06-08
    • 2013-02-07
    • 2020-11-19
    相关资源
    最近更新 更多