
com.flyfish.oauth.configuration.sync.user.AbstractUserProvider Maven / Gradle / Ivy
package com.flyfish.oauth.configuration.sync.user;
import com.flyfish.oauth.configuration.sync.SyncUserProvider;
import com.flyfish.oauth.domain.raw.LocalUser;
import com.flyfish.oauth.filter.SyncUserFilter;
import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* 抽象的用户同步转换器
*
* @param 泛型
*/
public abstract class AbstractUserProvider implements SyncUserProvider {
/**
* 保证系统内实例化至少一次,以插入调用链
*/
public AbstractUserProvider() {
SyncUserFilter.bind(this);
}
/**
* 转换
*
* @param domain 实体
* @return 结果
*/
protected abstract LocalUser transform(T domain);
/**
* 转换用户门
*
* @param users 用户
* @return 结果
*/
public List transform(List users) {
List userList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(users)) {
for (T item : users) {
LocalUser mapped = transform(item);
userList.add(mapped);
}
return userList;
}
return Collections.emptyList();
}
/**
* 获取用户列表
*
* @Author pxx
* @Date 2020/11/25
**/
protected abstract List getLocalUsers();
/**
* 核心提供方法,提供转换后的用户
*
* @return 结果
*/
public List provide() {
return transform(getLocalUsers());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy