提交 4017ad5f 编写于 作者: O o2null

Merge branch 'master' into 'develop'

Master

See merge request o2oa/o2oa!1761
......@@ -134,6 +134,7 @@ public class Context extends AbstractContext {
private AbstractQueue<WrapClearCacheRequest> clearCacheRequestQueue;
@Override
public AbstractQueue<WrapClearCacheRequest> clearCacheRequestQueue() {
return this.clearCacheRequestQueue;
}
......
......@@ -38,7 +38,7 @@ public class HttpToken {
private static final String RegularExpression_Token = "^(anonymous|user|manager|cipher)([2][0][1-2][0-9][0-1][0-9][0-3][0-9][0-5][0-9][0-5][0-9][0-5][0-9])(\\S{1,})$";
public EffectivePerson who(HttpServletRequest request, HttpServletResponse response, String key) throws Exception {
EffectivePerson effectivePerson = this.who(this.getToken(request), key);
EffectivePerson effectivePerson = this.who(this.getToken(request), key, remoteAddress(request));
effectivePerson.setRemoteAddress(HttpToken.remoteAddress(request));
effectivePerson.setUserAgent(this.userAgent(request));
effectivePerson.setUri(request.getRequestURI());
......@@ -50,7 +50,7 @@ public class HttpToken {
return effectivePerson;
}
public EffectivePerson who(String token, String key) {
public EffectivePerson who(String token, String key, String address) {
if (StringUtils.length(token) < 16) {
/* token应该是8的倍数有可能前台会输入null空值等可以通过这个过滤掉 */
return EffectivePerson.anonymous();
......@@ -60,14 +60,14 @@ public class HttpToken {
try {
plain = Crypto.decrypt(token, key);
} catch (Exception e) {
logger.warn("can not decrypt token:{}, {}.", token, e.getMessage());
logger.warn("can not decrypt token:{}, {}, remote address:{}.", token, e.getMessage(), address);
return EffectivePerson.anonymous();
}
Pattern pattern = Pattern.compile(RegularExpression_Token, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(plain);
if (!matcher.find()) {
// 不报错,跳过错误,将用户设置为anonymous
logger.warn("token format error:{}.", plain);
logger.warn("token format error:{}, remote address:{}.", plain, address);
return EffectivePerson.anonymous();
}
Date date = DateUtils.parseDate(matcher.group(2), DateTools.formatCompact_yyyyMMddHHmmss);
......@@ -77,8 +77,8 @@ public class HttpToken {
if (TokenType.user.equals(tokenType) || TokenType.manager.equals(tokenType)) {
if (diff > (60000L * Config.person().getTokenExpiredMinutes())) {
// 不报错,跳过错误,将用户设置为anonymous
logger.warn("token expired, user:{}, token:{}.",
URLDecoder.decode(matcher.group(3), StandardCharsets.UTF_8.name()), plain);
logger.warn("token expired, user:{}, token:{}, remote address:{}.",
URLDecoder.decode(matcher.group(3), StandardCharsets.UTF_8.name()), plain, address);
return EffectivePerson.anonymous();
}
}
......
......@@ -3,9 +3,9 @@ package com.x.server.console.server.web;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.jetty.proxy.ProxyServlet;
import org.eclipse.jetty.proxy.AsyncProxyServlet;
public class Proxy extends ProxyServlet {
public class Proxy extends AsyncProxyServlet {
private static final long serialVersionUID = 2737360000716631564L;
......
......@@ -34,7 +34,7 @@ public class WsConfigurator extends ServerEndpointConfig.Configurator {
}
if (StringUtils.isNotEmpty(token)) {
HttpToken httpToken = new HttpToken();
return httpToken.who(token, Config.token().getCipher());
return httpToken.who(token, Config.token().getCipher(), "");
}
} catch (Exception e) {
e.printStackTrace();
......
......@@ -46,6 +46,9 @@ public class SnapProperties extends JsonProperties {
@FieldDescribe("工作日志")
private List<WorkLog> workLogList = new ArrayList<>();
@FieldDescribe("版式文件版本")
private List<DocumentVersion> documentVersionList = new ArrayList<>();
public Data getData() {
return data;
}
......@@ -129,6 +132,13 @@ public class SnapProperties extends JsonProperties {
return workLogList;
}
public List<DocumentVersion> getDocumentVersionList() {
if (null == this.documentVersionList) {
this.documentVersionList = new ArrayList<>();
}
return documentVersionList;
}
public void setJob(String job) {
this.job = job;
}
......@@ -169,4 +179,8 @@ public class SnapProperties extends JsonProperties {
this.workLogList = workLogList;
}
public void setDocumentVersionList(List<DocumentVersion> documentVersionList) {
documentVersionList = documentVersionList;
}
}
......@@ -2,6 +2,7 @@ package com.x.processplatform.service.processing.jaxrs.snap;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletableFuture;
import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
......@@ -17,6 +18,7 @@ import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.tools.ListTools;
import com.x.processplatform.core.entity.content.Attachment;
import com.x.processplatform.core.entity.content.DocumentVersion;
import com.x.processplatform.core.entity.content.Read;
import com.x.processplatform.core.entity.content.ReadCompleted;
import com.x.processplatform.core.entity.content.Record;
......@@ -63,8 +65,15 @@ class ActionRestore extends BaseAction {
if (null == snap) {
throw new ExceptionEntityNotExist(id, Snap.class);
}
clean(business, snap.getJob());
CompletableFuture.allOf(deleteItem(business, snap.getJob()), deleteWork(business, snap.getJob()),
deleteTask(business, snap.getJob()), deleteTaskCompleted(business, snap.getJob()),
deleteRead(business, snap.getJob()), deleteReadCompleted(business, snap.getJob()),
deleteReview(business, snap.getJob()), deleteWorkLog(business, snap.getJob()),
deleteRecord(business, snap.getJob()), deleteAttachment(business, snap.getJob()),
deleteDocumentVersion(business, snap.getJob())).get();
emc.commit();
restore(business, snap);
emc.commit();
emc.beginTransaction(Snap.class);
emc.remove(snap, CheckRemoveType.all);
emc.commit();
......@@ -107,10 +116,11 @@ class ActionRestore extends BaseAction {
emc.beginTransaction(Read.class);
emc.beginTransaction(ReadCompleted.class);
emc.beginTransaction(Review.class);
emc.beginTransaction(Record.class);
emc.beginTransaction(WorkLog.class);
emc.beginTransaction(Attachment.class);
emc.beginTransaction(Record.class);
emc.beginTransaction(DocumentVersion.class);
emc.beginTransaction(Item.class);
emc.beginTransaction(Attachment.class);
for (Task o : snap.getProperties().getTaskList()) {
emc.persist(o, CheckPersistType.all);
}
......@@ -126,10 +136,13 @@ class ActionRestore extends BaseAction {
for (Review o : snap.getProperties().getReviewList()) {
emc.persist(o, CheckPersistType.all);
}
for (WorkLog o : snap.getProperties().getWorkLogList()) {
emc.persist(o, CheckPersistType.all);
}
for (Record o : snap.getProperties().getRecordList()) {
emc.persist(o, CheckPersistType.all);
}
for (WorkLog o : snap.getProperties().getWorkLogList()) {
for (DocumentVersion o : snap.getProperties().getDocumentVersionList()) {
emc.persist(o, CheckPersistType.all);
}
for (Attachment o : snap.getProperties().getAttachmentList()) {
......
package com.x.processplatform.service.processing.jaxrs.snap;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import com.x.base.core.container.EntityManagerContainer;
......@@ -13,9 +15,19 @@ import com.x.base.core.project.jaxrs.WoId;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.tools.ListTools;
import com.x.processplatform.core.entity.content.Attachment;
import com.x.processplatform.core.entity.content.DocumentVersion;
import com.x.processplatform.core.entity.content.Read;
import com.x.processplatform.core.entity.content.ReadCompleted;
import com.x.processplatform.core.entity.content.Record;
import com.x.processplatform.core.entity.content.Review;
import com.x.processplatform.core.entity.content.Snap;
import com.x.processplatform.core.entity.content.Task;
import com.x.processplatform.core.entity.content.TaskCompleted;
import com.x.processplatform.core.entity.content.Work;
import com.x.processplatform.core.entity.content.WorkLog;
import com.x.processplatform.service.processing.Business;
import com.x.query.core.entity.Item;
class ActionTypeSnap extends BaseAction {
......@@ -49,8 +61,20 @@ class ActionTypeSnap extends BaseAction {
if (null == work) {
throw new ExceptionEntityNotExist(id, Work.class);
}
List<Item> items = new ArrayList<>();
List<Work> works = new ArrayList<>();
List<Task> tasks = new ArrayList<>();
List<TaskCompleted> taskCompleteds = new ArrayList<>();
List<Read> reads = new ArrayList<>();
List<ReadCompleted> readCompleteds = new ArrayList<>();
List<Review> reviews = new ArrayList<>();
List<WorkLog> workLogs = new ArrayList<>();
List<Record> records = new ArrayList<>();
List<Attachment> attachments = new ArrayList<>();
List<DocumentVersion> documentVersions = new ArrayList<>();
Snap snap = new Snap(work);
snap.setProperties(snap(business, work.getId()));
snap.setProperties(snap(business, work.getJob(), items, works, tasks, taskCompleteds, reads,
readCompleteds, reviews, workLogs, records, attachments, documentVersions));
snap.setType(Snap.TYPE_SNAP);
emc.beginTransaction(Snap.class);
emc.persist(snap, CheckPersistType.all);
......
package com.x.processplatform.service.processing.jaxrs.snap;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.entity.annotation.CheckPersistType;
import com.x.base.core.project.config.Communicate.Clean;
import com.x.base.core.project.exception.ExceptionEntityNotExist;
import com.x.base.core.project.executor.ProcessPlatformExecutorFactory;
import com.x.base.core.project.http.ActionResult;
......@@ -13,9 +16,19 @@ import com.x.base.core.project.jaxrs.WoId;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.tools.ListTools;
import com.x.processplatform.core.entity.content.Attachment;
import com.x.processplatform.core.entity.content.DocumentVersion;
import com.x.processplatform.core.entity.content.Read;
import com.x.processplatform.core.entity.content.ReadCompleted;
import com.x.processplatform.core.entity.content.Record;
import com.x.processplatform.core.entity.content.Review;
import com.x.processplatform.core.entity.content.Snap;
import com.x.processplatform.core.entity.content.Task;
import com.x.processplatform.core.entity.content.TaskCompleted;
import com.x.processplatform.core.entity.content.Work;
import com.x.processplatform.core.entity.content.WorkLog;
import com.x.processplatform.service.processing.Business;
import com.x.query.core.entity.Item;
class ActionTypeSuspend extends BaseAction {
......@@ -50,12 +63,26 @@ class ActionTypeSuspend extends BaseAction {
throw new ExceptionEntityNotExist(id, Work.class);
}
Snap snap = new Snap(work);
snap.setProperties(snap(business, work.getId()));
snap.setType(Snap.TYPE_SUSPEND);
List<Item> items = new ArrayList<>();
List<Work> works = new ArrayList<>();
List<Task> tasks = new ArrayList<>();
List<TaskCompleted> taskCompleteds = new ArrayList<>();
List<Read> reads = new ArrayList<>();
List<ReadCompleted> readCompleteds = new ArrayList<>();
List<Review> reviews = new ArrayList<>();
List<WorkLog> workLogs = new ArrayList<>();
List<Record> records = new ArrayList<>();
List<Attachment> attachments = new ArrayList<>();
List<DocumentVersion> documentVersions = new ArrayList<>();
snap.setProperties(snap(business, work.getJob(), items, works, tasks, taskCompleteds, reads,
readCompleteds, reviews, workLogs, records, attachments, documentVersions));
snap.setType(Snap.TYPE_SNAP);
emc.beginTransaction(Snap.class);
emc.persist(snap, CheckPersistType.all);
emc.commit();
clean(business, work.getJob());
clean(business, items, works, tasks, taskCompleteds, reads, readCompleteds, reviews, workLogs, records,
attachments, documentVersions);
emc.commit();
Wo wo = new Wo();
wo.setId(snap.getId());
result.setData(wo);
......@@ -70,6 +97,4 @@ class ActionTypeSuspend extends BaseAction {
}
}
......@@ -129,9 +129,9 @@ class ActionAppend extends BaseAction {
emc.beginTransaction(Work.class);
work.setManualTaskIdentityList(identities);
// 转派后设置过期为空
emc.beginTransaction(Task.class);
task.setExpired(false);
task.setExpireTime(null);
// emc.beginTransaction(Task.class);
// task.setExpired(false);
// task.setExpireTime(null);
emc.commit();
}
result.setData(wo);
......
......@@ -136,6 +136,7 @@ public class Context extends AbstractContext {
/* 清除缓存指定队列 */
private AbstractQueue<WrapClearCacheRequest> clearCacheRequestQueue;
@Override
public AbstractQueue<WrapClearCacheRequest> clearCacheRequestQueue() {
return this.clearCacheRequestQueue;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册