Skip to content

Commit

Permalink
Merge pull request #131 from erupts/develop
Browse files Browse the repository at this point in the history
1.11.1
  • Loading branch information
erupts authored Dec 26, 2022
2 parents af47285 + ad400a3 commit 22922de
Show file tree
Hide file tree
Showing 82 changed files with 570 additions and 247 deletions.
2 changes: 1 addition & 1 deletion erupt-annotation/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<parent>
<groupId>xyz.erupt</groupId>
<artifactId>erupt</artifactId>
<version>1.10.15</version>
<version>1.11.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import xyz.erupt.annotation.config.Comment;
import xyz.erupt.annotation.config.EruptProperty;
import xyz.erupt.annotation.config.Match;
import xyz.erupt.annotation.expr.ExprBool;
import xyz.erupt.annotation.fun.AutoCompleteHandler;
import xyz.erupt.annotation.sub_erupt.Filter;
import xyz.erupt.annotation.sub_erupt.Tpl;
Expand All @@ -27,6 +28,9 @@
@Comment("是否显示")
boolean show() default true;

@Comment("动态渲染配置")
ExprBool ifRender() default @ExprBool;

@Comment("是否只读")
@EruptProperty(alias = "readOnly")
Readonly readonly() default @Readonly(add = false, edit = false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import xyz.erupt.annotation.config.Comment;
import xyz.erupt.annotation.config.EruptProperty;
import xyz.erupt.annotation.expr.ExprBool;

import java.beans.Transient;

Expand All @@ -24,6 +25,9 @@
@EruptProperty(alias = "viewType")
ViewType type() default ViewType.AUTO;

@Comment("动态渲染配置")
ExprBool ifRender() default @ExprBool;

boolean show() default true;

@Comment("排序列")
Expand Down
2 changes: 1 addition & 1 deletion erupt-cloud/erupt-cloud-common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<parent>
<groupId>xyz.erupt</groupId>
<artifactId>erupt</artifactId>
<version>1.10.15</version>
<version>1.11.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
*/
public class CloudCommonConst {

public static final String ACCESS_TOKEN = "Access-Token";
public static final String HEADER_ACCESS_TOKEN = "Access-Token";

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ public class CloudRestApiConst {

public static final String ERUPT_POWER = ERUPT_CLOUD_API + "/erupt-power";

public static final String ERUPT_USER_INFO = ERUPT_CLOUD_API + "/userinfo";

public static final String NODE_CONFIG = ERUPT_CLOUD_API + "/node-config";

public static final String NODE_GROUP_CONFIG = ERUPT_CLOUD_API + "/node-group-config";
Expand Down
2 changes: 1 addition & 1 deletion erupt-cloud/erupt-cloud-node-jpa/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<parent>
<groupId>xyz.erupt</groupId>
<artifactId>erupt</artifactId>
<version>1.10.15</version>
<version>1.11.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion erupt-cloud/erupt-cloud-node/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<parent>
<groupId>xyz.erupt</groupId>
<artifactId>erupt</artifactId>
<version>1.10.15</version>
<version>1.11.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public void addInterceptors(InterceptorRegistry registry) {

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
if (!eruptNodeProp.getAccessToken().equals(request.getHeader(CloudCommonConst.ACCESS_TOKEN))) {
if (!eruptNodeProp.getAccessToken().equals(request.getHeader(CloudCommonConst.HEADER_ACCESS_TOKEN))) {
throw new EruptWebApiRuntimeException("AccessToken incorrect");
}
MetaContext.registerToken(request.getHeader(EruptMutualConst.TOKEN));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import cn.hutool.http.HttpUtil;
import org.springframework.stereotype.Service;
import xyz.erupt.cloud.common.consts.CloudCommonConst;
import xyz.erupt.cloud.common.consts.CloudRestApiConst;
import xyz.erupt.cloud.node.config.EruptNodeProp;
import xyz.erupt.core.config.GsonFactory;
Expand Down Expand Up @@ -31,20 +32,22 @@ public boolean getMenuCodePermission(String menuValue) {
}

public MetaUserinfo getRemoteUserInfo() {
String userinfo = HttpUtil.createGet(eruptNodeProp.getBalanceAddress() + EruptRestPath.USERINFO)
.header(EruptMutualConst.TOKEN, MetaContext.getToken()).execute().body();
String userinfo = HttpUtil.createGet(eruptNodeProp.getBalanceAddress() + CloudRestApiConst.ERUPT_USER_INFO + eruptNodeProp.getNodeName())
.header(EruptMutualConst.TOKEN, MetaContext.getToken())
.header(CloudCommonConst.HEADER_ACCESS_TOKEN, eruptNodeProp.getAccessToken())
.execute().body();
return GsonFactory.getGson().fromJson(userinfo, MetaUserinfo.class);
}

public String getNodeConfig() {
return HttpUtil.createGet(eruptNodeProp.getBalanceAddress() + CloudRestApiConst.NODE_CONFIG + "/" + eruptNodeProp.getNodeName())
.form("accessToken", eruptNodeProp.getAccessToken())
.header(CloudCommonConst.HEADER_ACCESS_TOKEN, eruptNodeProp.getAccessToken())
.execute().body();
}

public String getNodeGroupConfig() {
return HttpUtil.createGet(eruptNodeProp.getBalanceAddress() + CloudRestApiConst.NODE_GROUP_CONFIG + "/" + eruptNodeProp.getNodeName())
.form("accessToken", eruptNodeProp.getAccessToken())
.form(CloudCommonConst.HEADER_ACCESS_TOKEN, eruptNodeProp.getAccessToken())
.execute().body();
}

Expand Down
2 changes: 1 addition & 1 deletion erupt-cloud/erupt-cloud-server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<parent>
<groupId>xyz.erupt</groupId>
<artifactId>erupt</artifactId>
<version>1.10.15</version>
<version>1.11.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
package xyz.erupt.cloud.server.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import xyz.erupt.annotation.fun.PowerObject;
import xyz.erupt.cloud.common.consts.CloudCommonConst;
import xyz.erupt.cloud.common.consts.CloudRestApiConst;
import xyz.erupt.cloud.server.service.EruptNodeMicroservice;
import xyz.erupt.core.annotation.EruptRouter;
import xyz.erupt.core.module.MetaUserinfo;
import xyz.erupt.jpa.dao.EruptDao;
import xyz.erupt.upms.constant.SessionKey;
import xyz.erupt.upms.enums.EruptFunPermissions;
import xyz.erupt.upms.service.EruptContextService;
import xyz.erupt.upms.service.EruptSessionService;
import xyz.erupt.upms.service.EruptUserService;
import xyz.erupt.upms.util.UPMSUtil;

import javax.annotation.Resource;
Expand All @@ -25,17 +27,23 @@
@RestController
public class EruptServerApi {

@Resource
private EruptDao eruptDao;

@Resource
private EruptSessionService eruptSessionService;

@Resource
private EruptContextService eruptContextService;

@Resource
private EruptDao eruptDao;
private EruptUserService eruptUserService;

@Resource
private EruptNodeMicroservice eruptNodeMicroservice;

@GetMapping(CloudRestApiConst.ERUPT_POWER)
public PowerObject eruptPower(@RequestParam String eruptName,@RequestParam String nodeName) {
public PowerObject eruptPower(@RequestParam String eruptName, @RequestParam String nodeName) {
PowerObject powerObject = new PowerObject();
List<String> values = eruptSessionService.getMapKeys(SessionKey.MENU_VALUE_MAP + eruptContextService.getCurrentToken());
Map<String, Boolean> permissionMap = values.stream().collect(Collectors.toMap(it -> it, it -> true));
Expand All @@ -52,21 +60,29 @@ public PowerObject eruptPower(@RequestParam String eruptName,@RequestParam Strin
}

@GetMapping(CloudRestApiConst.NODE_CONFIG + "/{nodeName}")
public String getNodeConfig(@PathVariable String nodeName,@RequestParam String accessToken) {
public String getNodeConfig(@PathVariable String nodeName, @RequestHeader(CloudCommonConst.HEADER_ACCESS_TOKEN) String accessToken) {
return (String) eruptDao.getEntityManager()
.createQuery("select config from CloudNode where nodeName = :nodeName and accessToken = :accessToken")
.setParameter("nodeName", nodeName)
.setParameter("accessToken", accessToken).getSingleResult();
}

@GetMapping(CloudRestApiConst.NODE_GROUP_CONFIG + "/{nodeName}")
public String getNodeGroupConfig(@PathVariable String nodeName,@RequestParam String accessToken) {
public String getNodeGroupConfig(@PathVariable String nodeName, @RequestHeader(CloudCommonConst.HEADER_ACCESS_TOKEN) String accessToken) {
return (String) eruptDao.getEntityManager()
.createQuery("select cloudNodeGroup.config from CloudNode where nodeName = :nodeName and accessToken = :accessToken")
.setParameter("nodeName", nodeName)
.setParameter("accessToken", accessToken).getSingleResult();
}

//用户信息
@GetMapping(CloudRestApiConst.ERUPT_USER_INFO + "/{nodeName}")
@EruptRouter(verifyType = EruptRouter.VerifyType.LOGIN)
public MetaUserinfo userinfo(@PathVariable String nodeName, @RequestHeader(CloudCommonConst.HEADER_ACCESS_TOKEN) String accessToken) {
eruptNodeMicroservice.findNodeByAppName(nodeName, accessToken);
return eruptUserService.getSimpleUserInfo();
}

private boolean powerOff(EruptFunPermissions eruptFunPermissions, Map<String, Boolean> permissionMap, String name) {
return permissionMap.containsKey(UPMSUtil.getEruptFunPermissionsCode(name, eruptFunPermissions).toLowerCase());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ public boolean preHandle(HttpServletRequest request, HttpServletResponse respons
if (!erupt.contains(".")) return true;
if (null != EruptCoreService.getErupt(erupt)) return true;
String token = eruptContextService.getCurrentToken();
if (null == token || null == eruptSessionService.get(SessionKey.USER_TOKEN + token)) {
if (null == token || null == eruptSessionService.get(SessionKey.TOKEN_OLINE + token)) {
response.setStatus(HttpStatus.UNAUTHORIZED.value());
response.sendError(HttpStatus.UNAUTHORIZED.value());
return false;
Expand Down Expand Up @@ -184,7 +184,7 @@ public HttpResponse httpProxy(HttpServletRequest request, MetaNode metaNode, Str
headers.put(name, request.getHeader(name));
}
headers.remove("host");
headers.put(CloudCommonConst.ACCESS_TOKEN, metaNode.getAccessToken());
headers.put(CloudCommonConst.HEADER_ACCESS_TOKEN, metaNode.getAccessToken());
headers.put(EruptMutualConst.TOKEN, eruptContextService.getCurrentToken());
headers.put(EruptMutualConst.ERUPT, eruptName);
headers.put(EruptMutualConst.USER, Base64Encoder.encode(GsonFactory.getGson().toJson(MetaContext.getUser())));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
@Setter
@Entity
@Table(name = "e_cloud_node", uniqueConstraints = @UniqueConstraint(columnNames = CloudNode.NODE_NAME))
@Erupt(name = "节点配置", desc = "管理与监控 node 节点状态", dataProxy = CloudNode.class,
@Erupt(name = "节点配置", dataProxy = CloudNode.class,
rowOperation = @RowOperation(
title = "查看令牌", icon = "fa fa-shield", mode = RowOperation.Mode.SINGLE,
show = @ExprBool(exprHandler = ViaMenuValueCtrl.class, params = CloudServerConst.CLOUD_ACCESS_TOKEN_PERMISSION),
Expand Down
2 changes: 1 addition & 1 deletion erupt-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<parent>
<groupId>xyz.erupt</groupId>
<artifactId>erupt</artifactId>
<version>1.10.15</version>
<version>1.11.1</version>
<relativePath>../pom.xml</relativePath>
</parent>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,6 @@ public class EruptRestPath {
//附件虚拟路径
public static final String ERUPT_ATTACHMENT = "/erupt-attachment";

//登录用户基础信息
public static final String USERINFO = ERUPT_API + "/userinfo";

//菜单类型值权限
public static final String ERUPT_CODE_PERMISSION = ERUPT_API + "/erupt-permission";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
@Order(Ordered.LOWEST_PRECEDENCE - 1)
public class EruptExceptionHandlerAdvice {


@ResponseBody
@ExceptionHandler(EruptWebApiRuntimeException.class)
public Object eruptWebApiRuntimeException(EruptWebApiRuntimeException e, HttpServletRequest request, HttpServletResponse response) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public class EruptProp {

//是否刷新token有效期(redisSession为true时有效)
private boolean redisSessionRefresh = false;

//
// //应用空间前缀
// private String appSpacePrefix = "erupt-app:";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package xyz.erupt.core.util;
package xyz.erupt.core.proxy;

import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
Expand All @@ -16,6 +16,7 @@
import xyz.erupt.annotation.sub_field.EditType;
import xyz.erupt.annotation.sub_field.EditTypeMapping;
import xyz.erupt.annotation.sub_field.EditTypeSearch;
import xyz.erupt.core.util.TypeUtil;

import java.beans.Transient;
import java.lang.annotation.Annotation;
Expand All @@ -26,28 +27,26 @@
* @author YuePeng
* date 2019-02-28.
*/
public class AnnotationUtil {
public class AnnotationProcess {

private static final String[] ANNOTATION_NUMBER_TYPE = {"short", "int", "long", "float", "double"};

private static final String[] ANNOTATION_STRING_TYPE = {"String", "byte", "char"};

private static final ExpressionParser parser = new SpelExpressionParser();

private static final String EMPTY_ARRAY = "[]";

private static final String VALUE_VAR = "value";

private static final String ITEM_VAR = "item";

private static final ExpressionParser parser = new SpelExpressionParser();

@SneakyThrows
public static JsonObject annotationToJsonByReflect(Annotation annotation) {
JsonObject jsonObject = new JsonObject();
for (Method method : annotation.annotationType().getDeclaredMethods()) {
Transient tran = method.getAnnotation(Transient.class);
if (null != tran && tran.value()) {
continue;
}
if (null != tran && tran.value()) continue;
String methodName = method.getName();
EruptProperty eruptProperty = method.getAnnotation(EruptProperty.class);
if (null != eruptProperty && !AnnotationConst.EMPTY_STR.equals(eruptProperty.alias())) {
Expand All @@ -61,9 +60,7 @@ public static JsonObject annotationToJsonByReflect(Annotation annotation) {
evaluationContext.setVariable(VALUE_VAR, result);
evaluationContext.setVariable(ITEM_VAR, annotation);
Object r = parser.parseExpression(match.value()).getValue(evaluationContext);
if (null == r || !(Boolean) r) {
continue;
}
if (null == r || !(Boolean) r) continue;
}
if (returnType.endsWith(EMPTY_ARRAY)) {
returnType = returnType.substring(0, returnType.length() - 2);
Expand Down Expand Up @@ -103,9 +100,7 @@ public static JsonObject annotationToJsonByReflect(Annotation annotation) {
if (null == toMap) {
jsonObject.add(methodName, jsonArray);
} else {
if (jsonMap.size() > 0) {
jsonObject.add(methodName, jsonMap);
}
if (jsonMap.size() > 0) jsonObject.add(methodName, jsonMap);
}
} else {
if (Arrays.asList(ANNOTATION_STRING_TYPE).contains(returnType)) {
Expand All @@ -126,7 +121,7 @@ public static JsonObject annotationToJsonByReflect(Annotation annotation) {
return jsonObject;
}

// 最原始注解序列化实现,收藏 ✨
// erupt annotation 最原始序列化实现,收藏 ✨
@Deprecated
public static String annotationToJsonByReplace(String annotationStr) throws JSONException {
String convertStr = annotationStr
Expand Down
Loading

0 comments on commit 22922de

Please sign in to comment.