# 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
```