v 3.0.0 GA ReleaseNotes &StringUtils
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
MaxKey v 3.0.0 GA 2021/09/29
|
||||
*(MAXKEY-210701) 好雨科技Rainbond适配
|
||||
*(MAXKEY-210701) 好雨科技Rainbond适配,实现基于Rainbond应用商店的快速部署
|
||||
*(MAXKEY-210702) 制定MaxKey技术路线图
|
||||
*(MAXKEY-210703) CHINER元数建模构建MaxKEY ER模型完善,数据库字段说明完善
|
||||
*(MAXKEY-210704) Nacos配置中心支持
|
||||
*(MAXKEY-210705) springcloud &springcloud alibaba支持
|
||||
*(MAXKEY-210704) Nacos配置中心支持,可选支持本地和Nacos配置中心配置,配置更加灵活
|
||||
*(MAXKEY-210705) springcloud &springcloud alibaba微服务支持
|
||||
*(MAXKEY-210706) spring cloud gateway支持
|
||||
*(MAXKEY-210707) application.properties参数调整和优化,支持外部Docker及环境变量的配置
|
||||
*(MAXKEY-210708) 同步器定时任务功能优化
|
||||
@@ -24,7 +24,10 @@
|
||||
*(MAXKEY-210723) mgt登录错误提示信息
|
||||
*(MAXKEY-210724) 警告提示信息修复
|
||||
*(MAXKEY-210725) 工具类增强和优化
|
||||
*(MAXKEY-210726) 依赖jar引用、更新和升级
|
||||
*(MAXKEY-210726) 登录认证优化,增加密码策略应用和验证
|
||||
*(MAXKEY-210727) CAS登录中参数回传的修复,增加'#'停止符的优化
|
||||
*(MAXKEY-210728) StringUtils优化,直接继承org.apache.commons.lang3.StringUtils,增加自有逻辑
|
||||
*(MAXKEY-210729) 依赖jar引用、更新和升级
|
||||
spring 5.3.10
|
||||
springBoot 2.5.5
|
||||
springkafka 2.7.7
|
||||
|
||||
@@ -27,41 +27,7 @@ import java.util.Map;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public final class StringUtils {
|
||||
|
||||
/**
|
||||
* avoid null, and return value trim.
|
||||
*
|
||||
* @param value string value.
|
||||
* @return the trim of value.
|
||||
*/
|
||||
public static String avoidNull(String value) {
|
||||
return (value == null) ? "" : value.trim();
|
||||
}
|
||||
|
||||
public static boolean isNull(String value) {
|
||||
return value == null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param value string value
|
||||
* @return value
|
||||
*/
|
||||
public static boolean isNullOrBlank(String value) {
|
||||
return value == null || "".equals(value.trim());
|
||||
}
|
||||
|
||||
public static boolean isNotEmpty(String value) {
|
||||
return !isNullOrBlank(value);
|
||||
}
|
||||
|
||||
public static boolean isNotNullAndEquals(String value, String equalString) {
|
||||
return !isNullOrBlank(value) && value.equals(equalString);
|
||||
}
|
||||
|
||||
public static boolean isNotNullAndEqualsIgnoreCase(String value, String equalString) {
|
||||
return !isNullOrBlank(value) && value.equalsIgnoreCase(equalString);
|
||||
}
|
||||
public final class StringUtils extends org.apache.commons.lang3.StringUtils {
|
||||
|
||||
/*
|
||||
* 获取指定UTF-8模式字节长度的字符串
|
||||
@@ -441,20 +407,20 @@ public final class StringUtils {
|
||||
* catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); }
|
||||
* }else{ pinyin += nameChar[i]; } } return pinyin; }
|
||||
*/
|
||||
public static Map<String, String> aduserName2Map(String aduserName) {
|
||||
if (isNullOrBlank(aduserName)) {
|
||||
public static Map<String, String> aduserName2Map(String activeDirectoryUserName) {
|
||||
if (isEmpty(activeDirectoryUserName)) {
|
||||
return null;
|
||||
}
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
int index = 0;
|
||||
if ((index = aduserName.indexOf("\\")) > 0) {
|
||||
map.put("domain", aduserName.substring(0, index));
|
||||
map.put("userName", aduserName.substring(index + 1, aduserName.length()));
|
||||
} else if ((index = aduserName.indexOf("@")) > 0) {
|
||||
map.put("userName", aduserName.substring(0, index));
|
||||
map.put("domain", aduserName.substring(index + 1));
|
||||
if ((index = activeDirectoryUserName.indexOf("\\")) > 0) {
|
||||
map.put("domain", activeDirectoryUserName.substring(0, index));
|
||||
map.put("userName", activeDirectoryUserName.substring(index + 1, activeDirectoryUserName.length()));
|
||||
} else if ((index = activeDirectoryUserName.indexOf("@")) > 0) {
|
||||
map.put("userName", activeDirectoryUserName.substring(0, index));
|
||||
map.put("domain", activeDirectoryUserName.substring(index + 1));
|
||||
} else {
|
||||
map.put("userName", aduserName);
|
||||
map.put("userName", activeDirectoryUserName);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
@@ -465,16 +431,16 @@ public final class StringUtils {
|
||||
* @param str
|
||||
* @return
|
||||
*/
|
||||
public static String takeoffDomain(String aduserName) {
|
||||
Map<String, String> map = aduserName2Map(aduserName);
|
||||
public static String takeoffDomain(String activeDirectoryUserName) {
|
||||
Map<String, String> map = aduserName2Map(activeDirectoryUserName);
|
||||
if (BeanUtil.isNotNull(map)) {
|
||||
return map.get("userName");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String getAdDomin(String aduserName) {
|
||||
Map<String, String> map = aduserName2Map(aduserName);
|
||||
public static String getActiveDirectoryDomin(String activeDirectoryUserName) {
|
||||
Map<String, String> map = aduserName2Map(activeDirectoryUserName);
|
||||
if (BeanUtil.isNotNull(map)) {
|
||||
return map.get("domain");
|
||||
}
|
||||
|
||||
@@ -182,7 +182,7 @@ public class RegistrationController {
|
||||
@RequestMapping(value={"/registeron"})
|
||||
@ResponseBody
|
||||
public Message registeron(UserInfo userInfo,@RequestParam String emailMobile) throws ServletException, IOException {
|
||||
if(StringUtils.isNullOrBlank(emailMobile)) {
|
||||
if(StringUtils.isEmpty(emailMobile)) {
|
||||
return new Message(WebContext.getI18nValue("register.emailMobile.error"),"1");
|
||||
}
|
||||
if(StringUtils.isValidEmail(emailMobile)) {
|
||||
|
||||
@@ -135,7 +135,7 @@ public class SafeController {
|
||||
_logger.debug("App Login Password : "+userInfo.getAppLoginPassword());
|
||||
_logger.debug("App Login new Password : "+ReciprocalUtils.encode(newPassword));
|
||||
if(newPassword.equals(confirmPassword)){
|
||||
if(StringUtils.isNullOrBlank(userInfo.getAppLoginPassword())||userInfo.getAppLoginPassword().equals(ReciprocalUtils.encode(oldPassword))){
|
||||
if(StringUtils.isEmpty(userInfo.getAppLoginPassword())||userInfo.getAppLoginPassword().equals(ReciprocalUtils.encode(oldPassword))){
|
||||
userInfo.setAppLoginPassword(ReciprocalUtils.encode(newPassword));
|
||||
boolean change= userInfoService.changeAppLoginPassword(userInfo);
|
||||
_logger.debug(""+change);
|
||||
|
||||
@@ -50,7 +50,7 @@ public class SingleSignOnFilter implements Filter {
|
||||
// 浠巗ession涓幏鍙栧瓨鏀剧殑appid
|
||||
String appId = (String) session.getAttribute(WebConstants.SINGLE_SIGN_ON_APP_ID);
|
||||
// 鑾峰彇鏈<E5BD87>鍚庝竴涓<E7ABB4>"/"鐨勬暟鎹綔涓篴ppid锛屼繚瀛樺湪session涓<6E>
|
||||
if (StringUtils.isNullOrBlank(appId)) {
|
||||
if (StringUtils.isEmpty(appId)) {
|
||||
String uir = httpServletRequest.getRequestURI();
|
||||
session.setAttribute(WebConstants.SINGLE_SIGN_ON_APP_ID,
|
||||
uir.substring(uir.lastIndexOf("/") + 1));
|
||||
|
||||
@@ -292,7 +292,7 @@ public class UserInfoController {
|
||||
binder.registerCustomEditor(String.class, new PropertyEditorSupport() {
|
||||
@Override
|
||||
public void setAsText(String value) {
|
||||
if(StringUtils.isNullOrBlank(value)){
|
||||
if(StringUtils.isEmpty(value)){
|
||||
setValue(null);
|
||||
}else{
|
||||
setValue(value);
|
||||
|
||||
Reference in New Issue
Block a user