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);
|
|||
|
|
}
|