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; /** * 权限决策管理器。
* 实现{@link org.springframework.security.access.SecurityMetadataSource}来
* 提供自己定义资源的权限信息,就可以实现权限决策判断 * * @author on 2019-11-05 */ public interface SecurityDecisionManager { /** * 决策给定的资源,当前登录用户是否有权限 * * @param resource 资源 * @return 结果。true为有权限,否则没有 */ boolean decide(Resource resource, PermissionQueryDTO permissionQueryDTO); /** * 根据资源获取权限信息 * * @param resource 资源 * @return 权限列表 */ Collection 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); }