我在我的实体的权限级别上集成了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调试4036 --- [nio-8080-exec-4] o.s.security.acls.jdbc.AclClassIdUtils:无法获取类ID类型
org.postgresql.util.PSQLException:在此ResultSet中找不到列名class_id_type。
答案 0 :(得分:1)
class_id_type
中选择了 acl_class
,但是class_id_type
列已更改为Spring Security官方网站中的类
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”, 然后它应该可以工作。