填报权限控制

通常我们可以通过BaskServer的权限控制来控制填报权限,但是在某些场景下,我们希望自行实现填报的鉴权.

自定义投票接口

在BaskServer中,我们提供了自定义投票接口,可以通过该接口实现自定义的投票鉴权.

SPI实现com.basksoft.core.security.AccessDecisionVoter


public interface AccessDecisionVoter {
    int NO_GRANT = 0;
    int GRANT = 1;
    int REJECTED = -1;

    /*
     * 投票
     * @param tenantUser 租户用户
     * @param baskFile 资源文件或目录
     * @param capability 权限
     * @param authority 授权信息
     */
    int vote(TenantUser tenantUser, BaskFile baskFile, String capability, Authority authority); 

    /*
     * 投票
     * @param tenantUser 租户用户
     * @param authModule 权限模块
     * @param authCode 权限码
     */
    int vote(TenantUser tenantUser, String authModule, String authCode); 
}

例如:

public class MyAccessDecisionVoter extends DefaultAccessDecisionVoter {
    @Override
    public int vote(TenantUser tenantUser, BaskFile baskFile, String capability, Authority authority) {
        if (ReportEnum.fillin.name().equals(capability) && !tenantUser.getId().equals("admin") ) {
            return REJECTED;
        }
        return super.vote(tenantUser, baskFile, capability, authority);
    }
}

results matching ""

    No results matching ""