Browse Source

决策平台相关接口

pull/22/head
richie 5 years ago
parent
commit
2ba49be153
  1. 54
      src/main/java/com/fanruan/api/decision/CommonKit.java
  2. 39
      src/main/java/com/fanruan/api/decision/UserKit.java
  3. 25
      src/main/java/com/fanruan/api/decision/auth/BasePassport.java
  4. 40
      src/main/java/com/fanruan/api/decision/auth/bean/BasePassportBean.java
  5. 16
      src/main/java/com/fanruan/api/decision/login/LoginKit.java
  6. 45
      src/main/java/com/fanruan/api/decision/middle/ReadOnlyUser.java
  7. 219
      src/main/java/com/fanruan/api/runtime/ResourceKit.java

54
src/main/java/com/fanruan/api/decision/CommonKit.java

@ -0,0 +1,54 @@
package com.fanruan.api.decision;
import com.fanruan.api.log.LogKit;
import com.fanruan.api.util.StringKit;
import com.fr.base.Base64;
import com.fr.base.ServerConfig;
import com.fr.decision.webservice.utils.DecisionServiceConstants;
import com.fr.stable.StringUtils;
/**
* @author richie
* @version 10.0
* Created by richie on 2019-09-19
* 常规工具类
*/
public class CommonKit {
/**
* 这个方法用于判断从前端返回服务器端的密码是否有被修改过
*
* @param password 从前端返回的密码文本
* @return 如果密码没有被修改过就返回true否则就返回false
*/
public static boolean isDefaultPasswordHolderString(String password) {
return DecisionServiceConstants.DEFAULT_PASSWORD.equals(password);
}
/**
* 获取默认密码占位符
*
* @return 默认密码占位符
*/
public static String fetchDefaultPasswordHolderString() {
return DecisionServiceConstants.DEFAULT_PASSWORD;
}
/**
* 将base64编码的字符串转为常规的字符串
*
* @param encodeStr base64编码的字符串
* @return 常规字符串
*/
public static String getBase64DecodeStr(String encodeStr) {
try {
if (StringUtils.isNotEmpty(encodeStr)) {
return new String(Base64.decode(encodeStr), ServerConfig.getInstance().getServerCharset());
}
} catch (Exception e) {
LogKit.error(e.getMessage(), e);
}
return StringKit.EMPTY;
}
}

39
src/main/java/com/fanruan/api/decision/UserKit.java

@ -0,0 +1,39 @@
package com.fanruan.api.decision;
import com.fanruan.api.decision.middle.ReadOnlyUser;
import com.fr.decision.authority.data.User;
import com.fr.decision.webservice.utils.UserSourceFactory;
import com.fr.decision.webservice.utils.user.source.UserSource;
import com.fr.decision.webservice.v10.user.UserService;
/**
* @author richie
* @version 10.0
* Created by richie on 2019-09-19
*/
public class UserKit {
/**
* 根据用户名获取这个用户的来源
*
* @param username 用户名
* @return 用户来源
* @throws Exception 如果在获取用户的过程中出错了则抛出此异常
*/
public static UserSource fetchUserSource(String username) throws Exception {
User user = UserService.getInstance().getUserByUserName(username);
return UserSourceFactory.getInstance().getUserSource(user);
}
/**
* 根据用户名获取用户信息
*
* @param username 用户名
* @return 用户信息
* @throws Exception 如果获取用户出错则抛出此异常
*/
public static ReadOnlyUser getReadOnlyUser(String username) throws Exception {
User user = UserService.getInstance().getUserByUserName(username);
return ReadOnlyUser.build(user.getUserName(), user.getPassword(), user.getRealName());
}
}

25
src/main/java/com/fanruan/api/decision/auth/BasePassport.java

@ -0,0 +1,25 @@
package com.fanruan.api.decision.auth;
import com.fr.decision.authorize.impl.AbstractPassport;
/**
* @author richie
* @version 10.0
* Created by richie on 2019-09-19
* 认证方式
*/
public abstract class BasePassport extends AbstractPassport {
/**
* 检查登录信息是否有效
*
* @param username 用户名
* @param inputPassword 输入的密码
* @param savedPassword 配置文件中保存的密码
* @param hashPassword 哈希后的密码
* @return 登录凭证是有效的则返回true否则返回false
*/
public boolean checkTicket(String username, String inputPassword, String savedPassword, String hashPassword) {
return false;
}
}

40
src/main/java/com/fanruan/api/decision/auth/bean/BasePassportBean.java

@ -0,0 +1,40 @@
package com.fanruan.api.decision.auth.bean;
import com.fr.decision.authorize.Passport;
import com.fr.decision.webservice.bean.authentication.PassportBean;
import com.fr.third.fasterxml.jackson.annotation.JsonTypeInfo;
/**
* @author richie
* @version 10.0
* Created by richie on 2019-09-19
* 用于表示不同认证方式的接口
*/
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
public abstract class BasePassportBean<T extends Passport> extends PassportBean<T> {
/**
* 用于标记认证类型的字符串
*
* @return 字符串
*/
@Override
public abstract String markType();
/**
* 根据配置对象生成认证配置数据层对象
*
* @param t 配置对象
* @return 配属数据层
*/
@Override
public abstract BasePassportBean<T> createPassportBean(T t);
/**
* 生成配置对象
*
* @return 配置
*/
@Override
public abstract Passport createPassport();
}

16
src/main/java/com/fanruan/api/login/LoginKit.java → src/main/java/com/fanruan/api/decision/login/LoginKit.java

@ -1,4 +1,4 @@
package com.fanruan.api.login; package com.fanruan.api.decision.login;
import com.fr.decision.authorize.Passport; import com.fr.decision.authorize.Passport;
import com.fr.decision.authorize.impl.HttpPassport; import com.fr.decision.authorize.impl.HttpPassport;
@ -14,14 +14,27 @@ public class LoginKit {
/** /**
* 获取决策平台设置的认证类型 * 获取决策平台设置的认证类型
*
* @return 认证对象 * @return 认证对象
*/ */
public static Passport getCurrentPassport() { public static Passport getCurrentPassport() {
return FSConfig.getInstance().getPassport(); return FSConfig.getInstance().getPassport();
} }
/**
* 获取指定类型的通行证如果不存在就返回null
*
* @param type 通行证类型
* @param <T> 类型
* @return 通行证
*/
public static <T> T getPassport(Class<? extends T> type) {
return FSConfig.getInstance().getPassport(type);
}
/** /**
* 获取http认证的地址 * 获取http认证的地址
*
* @return http认证地址 * @return http认证地址
*/ */
public static @Nullable String getHttpPassportUrl() { public static @Nullable String getHttpPassportUrl() {
@ -34,6 +47,7 @@ public class LoginKit {
/** /**
* 获取http认证的秘钥 * 获取http认证的秘钥
*
* @return http认证地址 * @return http认证地址
*/ */
public static @Nullable String getHttpPassportKey() { public static @Nullable String getHttpPassportKey() {

45
src/main/java/com/fanruan/api/decision/middle/ReadOnlyUser.java

@ -0,0 +1,45 @@
package com.fanruan.api.decision.middle;
/**
* @author richie
* @version 10.0
* Created by richie on 2019-09-19
*/
public class ReadOnlyUser {
/**
* 非空项无默认值
*/
private String userName = null;
/**
* 非空项无默认值
*/
private String password = null;
/**
* 姓名
*/
private String realName = null;
public static ReadOnlyUser build(String userName, String password, String realName) {
return new ReadOnlyUser(userName, password, realName);
}
private ReadOnlyUser(String userName, String password, String realName) {
this.userName = userName;
this.password = password;
this.realName = realName;
}
public String getUserName() {
return userName;
}
public String getPassword() {
return password;
}
public String getRealName() {
return realName;
}
}

219
src/main/java/com/fanruan/api/runtime/ResourceKit.java

@ -0,0 +1,219 @@
package com.fanruan.api.runtime;
import com.fr.io.utils.ResourceIOUtils;
import com.fr.stable.Filter;
import java.io.IOException;
import java.io.InputStream;
/**
* @author richie
* @version 10.0
* Created by richie on 2019-09-19
* 操作运行环境下文件的工具方法
*/
public class ResourceKit {
/**
* 路径是否存在
*
* @param target 路径
* @return 是否存在
*/
public static boolean exist(String target) {
return ResourceIOUtils.exist(target);
}
/**
* 创建文件
*
* @param file 文件路径
* @return 是否存在
*/
public static boolean createFile(String file) {
return ResourceIOUtils.createFile(file);
}
/**
* 创建文件夹
*
* @param dir 文件夹路径
* @return 是否成功
*/
public static boolean createDirectory(String dir) {
return ResourceIOUtils.createDirectory(dir);
}
/**
* 是否为文件夹
*
* @param path 路径
* @return 是否是文件夹
*/
public static boolean isDirectory(String path) {
return ResourceIOUtils.isDirectory(path);
}
/**
* 获取文件或者文件夹的名称
*
* @param path 路径
* @return 名称
*/
public static String getName(String path) {
return ResourceIOUtils.getName(path);
}
/**
* 列出路径下的所有内容的名称
*
* @param dir 路径
* @return 所有内容名称List
*/
public static String[] list(String dir) {
return ResourceIOUtils.list(dir);
}
/**
* 列出路径下的所有符合要求的内容的名称
*
* @param dir 路径
* @param filter 过滤器
* @return 所有内容名称List
*/
public static String[] list(String dir, Filter<String> filter) {
return ResourceIOUtils.list(dir, filter);
}
/**
* 文件夹是否存在
*
* @param dir 文件夹
* @return 是否存在
*/
public static boolean isDirectoryExist(String dir) {
return ResourceIOUtils.isDirectoryExist(dir);
}
public static String getRealPath(String relativePath) {
return ResourceIOUtils.getRealPath(relativePath);
}
/**
* 读取文件到流
* <p>
* 相对路径下如果是仓库资源从仓库读取其它从本地读取
* <p>
* 据对路径按绝对路径读
*
* @param path 路径
* @return
*/
public static InputStream read(String path) {
return ResourceIOUtils.read(path);
}
/**
* 读取文件到bytes
*
* @param path 文件路径
* @return bytes
*/
public static byte[] readBytes(String path) {
return ResourceIOUtils.readBytes(path);
}
/**
* 写入数据流到文件
*
* @param path 文件路径
* @param data 数据
*/
public static void write(String path, InputStream data) {
ResourceIOUtils.write(path, data);
}
/**
* 写入字符串数据到文件
*
* @param path 文件路径
* @param data 数据
*/
public static void write(String path, String data) {
ResourceIOUtils.write(path, data);
}
/**
* 写入字节数组数据到文件
*
* @param path 文件路径
* @param data 数据
*/
public static void write(String path, byte[] data) {
ResourceIOUtils.write(path, data);
}
/**
* 获取父路径
*
* @param path 路径
* @return 父路径
*/
public static String getParent(String path) {
return ResourceIOUtils.getParent(path);
}
/**
* 从仓库删除
*
* @param path 路径
* @return 是否删除成功
*/
public static boolean delete(String path) {
return ResourceIOUtils.delete(path);
}
/**
* 文件的最后修改时间
*
* @param path 文件路径
* @return 修改的时间戳
*/
public static long lastModified(String path) {
return ResourceIOUtils.lastModified(path);
}
/**
* 文件大小
*
* @param path 文件路径
* @return 文件字节数
*/
public static long getLength(String path) {
return ResourceIOUtils.getLength(path);
}
/**
* 重命名
* <p>
* 文件位置根据oldFile来确定
*
* @param oldFile 原文件path
* @param newFile 新文件path
* @return 是否成功
*/
public static boolean renameTo(String oldFile, String newFile) {
return ResourceIOUtils.renameTo(oldFile, newFile);
}
/**
* 拷贝文件到某目录下
*
* @param src 源文件
* @param dir 目标文件
*/
public static void copy(String src, String dir) throws IOException {
ResourceIOUtils.copy(src, dir);
}
}
Loading…
Cancel
Save