spring安全acl总是将匿名用户设置为所有者

s6fujrry  于 2021-07-23  发布在  Java
关注(0)|答案(0)|浏览(162)

我正在使用spring安全acl进行授权。
我想注册一个新用户并授予此用户只修改其自身的权限。我在做这些步骤:
在mysql数据库的users表中添加用户。
设置此用户的权限(在acl表中修改自身的权限)
public void permission(user user){objectidentity oi=new objectidentityimpl(user.class,user.getid());sid=new principalsid(user.getusername());权限p=basepermission.administration;

// Create or update the relevant ACL
    MutableAcl acl = null;
    try {
        acl = (MutableAcl) mutableAclService.readAclById(oi);
    } catch (NotFoundException nfe) {
        // The poblem is on this line, when it calls createAcl SecurityContextHolder.getContext().getAuthentication() gets the anonymousUser as a principal
        acl = mutableAclService.createAcl(oi);
    }

    // Now grant some permissions via an access control entry (ACE)
    acl.insertAce(acl.getEntries().size(), p, sid, true);
    mutableAclService.updateAcl(acl);
}

但当我检查的时候 acl_object_identity table owner_sid 物体的形状总是 anonymousUser .

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题