package org.dayatang.security.api; /** * 权限查询服务 * Created by yyang on 2016/10/31. */ public interface SecurityQueryService { /** * 根据ID获取用户 * @param id 用户ID * @return 用户存在则返回该用户,否则返回null */ UserInfo getUser(String id); /** * 根据用户名获取用户 * @param username 用户名 * @return 用户存在则返回该用户,否则返回null */ UserInfo getUserByUsername(String username); /** * 判断系统中是否已经存在指定名字的用户 * @param username 用户名 * @return 如果用户存在,返回true;否则返回false */ boolean usernameExisted(String username); /** * 通过帐号口令进行登录 * @param username 用户名 * @param password 口令 * @return 如果用户存在、未失效、未被锁定,且口令正确,返回该用户;否则抛出AuthenticationException异常。 */ UserInfo login(String username, String password); /** * 判断用户是否在全局范围拥有指定角色 * @param username 用户 * @param role 角色 * @return 如果user用户拥有role角色,返回true;否则返回false。 */ boolean hasRole(String username, String role); /** * 判断用户是否在全局范围拥有指定权限 * @param username 用户 * @param permission 权限 * @return 如果user用户拥有permission权限,返回true;否则返回false。 */ boolean hasPermission(String username, String permission); /** * 判断用户是否在全局范围拥有指定角色 * @param username 用户 * @param role 角色 * @param scope 授权范围 * @return 如果user用户在scope授权范围拥有role角色,返回true;否则返回false。 */ boolean hasRoleInScope(String username, String role, String scope); /** * 判断用户是否在全局范围拥有指定权限 * @param username 用户 * @param permission 权限 * @param scope 授权范围 * @return 如果user用户在scope授权范围拥有permission权限,返回true;否则返回false。 */ boolean hasPermissionInScope(String username, String permission, String scope); }