46 lines
1.3 KiB
Java
46 lines
1.3 KiB
Java
package com.newyetai.security.decision.manager;
|
||
|
||
import java.util.Collection;
|
||
|
||
import org.springframework.security.access.ConfigAttribute;
|
||
import org.springframework.security.core.userdetails.UserDetails;
|
||
|
||
import com.newyetai.usercenter.authority.dto.PermissionQueryDTO;
|
||
import com.newyetai.usercenter.dto.Resource;
|
||
|
||
/**
|
||
* 权限决策管理器。<br>
|
||
* 实现{@link org.springframework.security.access.SecurityMetadataSource}来<br>
|
||
* 提供自己定义资源的权限信息,就可以实现权限决策判断
|
||
*
|
||
* @author on 2019-11-05
|
||
*/
|
||
public interface SecurityDecisionManager {
|
||
|
||
/**
|
||
* 决策给定的资源,当前登录用户是否有权限
|
||
*
|
||
* @param resource 资源
|
||
* @return 结果。true为有权限,否则没有
|
||
*/
|
||
boolean decide(Resource resource, PermissionQueryDTO permissionQueryDTO);
|
||
|
||
/**
|
||
* 根据资源获取权限信息
|
||
*
|
||
* @param resource 资源
|
||
* @return 权限列表
|
||
*/
|
||
Collection<ConfigAttribute> findConfigAttributes(Resource resource, PermissionQueryDTO permissionQueryDTO);
|
||
|
||
/**
|
||
* 决策给定的资源,给定用户是否有权限
|
||
*
|
||
* @param userDetails 用户实体
|
||
* @param resource 资源
|
||
* @return 结果。true为有权限,否则没有
|
||
* @author sr on 2019-10-16
|
||
*/
|
||
boolean decide(UserDetails userDetails, Resource resource, PermissionQueryDTO permissionQueryDTO);
|
||
}
|