# unified-auth **Repository Path**: pesking/unified-auth ## Basic Information - **Project Name**: unified-auth - **Description**: 统一鉴权 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-12-08 - **Last Updated**: 2025-12-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 统一授权开发文档 #### 介绍 统一授权管理模块 #### 引入说明 1. 配置仓库地址 ``` pesking_public pesking_public http://www.peskingsoft.com/repository/internal true true ``` 2. 配置依赖项 ``` com.pesking.framework platform 1.0-SNAPSHOT pom import ``` 3. 增加依赖库 ``` com.pesking.framework unified-auth ``` #### 使用说明 1. 访问接口说明 ```java public class PopedomManage { /** * 根据明文密码生成密文密码 * @param loginName 登录名 * @param password 明文密码 * @return 密文密码 */ public static String toEncryptPassword(String loginName,String password) /** * 登录 * @param loginName 登录名 * @param password 密码,是否加密传输,通过参数authcenter.passwordIsEncrypt决定,默认为明文传输 * @param extendParameter 扩展参数集合 * @return 登录成功返回当前用户信息,否则返回空 */ public static CurrentUser login(String loginName, String password, Map extendParameter) /** * 注释用户 * @param cui 当前用户对象 */ public static void logout(CurrentUser cui) /** * 获取用户服务 */ public static UserService getUserService() /** * 获取组织服务 */ public static OrgService getOrgService() /** * 获取角色服务 */ public static ActorService getActorService() /** * 获取权限服务 */ public static PopedomService getPopedomService() /** * 权限过滤,通过返回真,否则返回假 * @param url * @param systemId * @return */ public static boolean filter(String url,String systemId) public static String getLoginPage(String systemId) /** * 是否转向登录 * @return */ public static boolean isForwardLogin(String url) /** * 转向登录页 * @param url * @param systemId */ public static void forwardLoginPage(String url,String systemId) /** * 自动登录 */ public static CurrentUser autoLogin() /** * 根据用户ID执行自动登录 * @param userId */ public static boolean autoLogin(String userId) /** * 获取当前用户所有资源ID的IN的SQL语句 */ public static String getCurrentUserAllResourceIdInSQL() /** * 获取当前用户所拥有的资源ID集合 * @return */ public static List getCurrentUserAllResourceIds() /** * 获取当前用户所拥有的资源标识集合 * @return */ public static List getCurrentUserAllResourceCodes() /** * 获取当前用户拥扔有资源树 * @return */ public static List getCurrentUserResourceTree() /** * 获取当前用户指定系统的资源树信息 */ public static List getCurrentUserResourceTree(String systemId) /** * 取得指定用户对应系统的资源树 * @param userId 用户ID,默认为当前用户 * @param systemId 系统ID * @return */ public static List getUserResourceTree(String userId,String systemId) /** * 获取当前用户ID */ public static String getCurrentUserId() /** * 存在用户,则返回当前用户对象 */ public static CurrentUser existsCurrentUser() /** * 获取当前用户对象 */ public static CurrentUser getCurrentUserInfo() /** * 根据用户token获取当前用户对象 */ public static CurrentUser getCurrentUserInfo(String userToken) /** * 更新当前用户 */ public static void setCurrentUserInfo(CurrentUser cui) /** * 根据用户token更新当前用户 */ public static void setCurrentUserInfo(String userToken) /** * 注销当前用户 */ public static void logoutCurrentUserInfo(); } ``` 2. 对接授权服务说明 2.1 登录页加载接口 ```java package com.pesking.unified.auth; public class TestLoginPageLoader implements LoginPageLoader { @Override public int getOrder() { return 0; } @Override public String getLoginPage(String systemId) { String key = "pesking.loginPage." + systemId; String value = SystemParameterManage.getString(key); LogUtils.info("根据登录页key[" + key + "]取得登录页地址:" + value); if (StringUtils.isBlank(value)){ value = System.getProperty("pesking.loginPage.default"); LogUtils.info("根据登录页key[pesking.loginPage.default]取得登录页地址:" + value); } return value; } } ``` 在resources/META-INF/services目录下创建一个文件名叫做:com.pesking.unified.auth.LoginPageLoader,内容为该实现类的全路径地址 ``` com.pesking.unified.auth.TestLoginPageLoader ``` 2.2 权限服务接口 ```java package com.pesking.unified.auth; public class TestPopedomService implements PopedomService { /** * 取得本地无须授权地址列表 * @return */ public static Set getLocalsUnauthorizedAddresses(){ return new HashSet<>(); } @Override public int getOrder() { return 0; } @Override public List getUserTokenName() { List result = new ArrayList<>(); result.add("user-token"); return result; } @Override public List getActorList(String userId) { return new ArrayList<>(); } @Override public OrgDetail getDeptInfo(String userId) { return null; } @Override public OrgDetail getOrgInfo(String userId) { return null; } @Override public List getUserGroupInfo(String userId) { return new ArrayList<>(); } @Override public Set getUnauthorizedAddress() { Set result = new HashSet<>(); for (Pattern p : getLocalsUnauthorizedAddresses()) { result.add(p.pattern()); } return result; } @Override public List getDataRights(String userId) { return new ArrayList<>(); } @Override public void saveDataRightInfo(String userId, DataRightInfo dataRightInfo) { LogUtils.warn("saveDataRightInfo默认实现,并未保存"); } @Override public List getUserResourceTree(String userId,String systemId) { return new ArrayList<>(); } } ``` 在resources/META-INF/services目录下创建一个文件名叫做:com.pesking.unified.auth.PopedomService,内容为该实现类的全路径地址 ``` com.pesking.unified.auth.TestPopedomService ``` 2.3 实现用户服务接口 ```java package com.pesking.unified.auth; public class TestUserService implements UserService,Order { @Override public int getOrder() { return 0; } @Override public UserDetail getUserDetail(String userId) { return null; } @Override public List getUserNameByIds(String[] userIds) { return null; } @Override public CurrentUser getCurrentUserByToken(String token) { return null; } @Override public CurrentUser getCurrentUserByLoginNameAndPassword(String user, String pass) { return null; } @Override public CurrentUser autoLogin(String userId) { // TODO Auto-generated method stub return null; } } ``` 在resources/META-INF/services目录下创建一个文件名叫做:com.pesking.unified.auth.UserService,内容为该实现类的全路径地址 ```java com.pesking.unified.auth.TestUserService ```