613167217941e9f080eabfeb822dcae1f18afed7.svn-base
5.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
package com.espeed.servlet;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import java.io.IOException;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import com.alibaba.fastjson.JSONObject;
import com.espeed.pojo.YxySendMailMasterBase;
import com.espeed.service.YxySendMailMasterBaseService;
import com.espeed.service.YxySysParamaterService;
import com.espeed.tool.AnalysisYxyMail;
import com.espeed.tool.ConfigPath;
/**
* 已发邮件servlet
* @author 陈南巧
*/
public class YxySendMailMasterServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
private YxySendMailMasterBaseService yxysendmailmasterbaseservice;//邮件service
private YxySysParamaterService yxysysparamaterservice;//控制参数service
//执行的方法
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
JSONObject object = new JSONObject();
try{
response.setHeader("Access-Control-Allow-Origin", "*");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String method = request.getParameter("method");
if(null==method || method.equals("")){
object.put("result", "-1");
object.put("reason", "方法不支持");
response.getWriter().println(object);
return;
}
if(method.equals("1")){//mailuid查询邮件信息
String token = request.getParameter("token");
if(null==token || token.equals("")){
object.put("result", "-2");
object.put("reason", "身份验证失败,token不能为空");
response.getWriter().println(object);
return;
}
//获取解析token的密钥
String secretKey = ConfigPath.getSecretKey();
//获取token-id
String tokenId = ConfigPath.getTokenId();
//获取token-subject
String tokenSubject = ConfigPath.getTokenSubject();
String loginid = "";
String domain = "";
try{
Claims claims = Jwts.parser().setSigningKey(secretKey).parseClaimsJws(token).getBody();
if(null == claims.getId() || !claims.getId().trim().equals(tokenId))
{
object.put("result", "-3");
object.put("reason", "身份验证失败,token无效");
response.getWriter().println(object);
return;
}
if(null == claims.getSubject() || !claims.getSubject().trim().equals(tokenSubject))
{
object.put("result", "-3");
object.put("reason", "身份验证失败,token无效");
response.getWriter().println(object);
return;
}
loginid = claims.get("loginid", String.class);
domain = claims.get("domain", String.class);
}catch (Exception e) {
object.put("result", "-3");
object.put("reason", "身份验证失败,token无效");
response.getWriter().println(object);
return;
}
String mailuid = request.getParameter("mailuid");
if(null==mailuid || mailuid.equals("")){
object.put("result", "-4");
object.put("reason", "邮件uid不能为空");
response.getWriter().println(object);
return;
}
//获取bean
WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
//邮件bean
yxysendmailmasterbaseservice = (YxySendMailMasterBaseService) wac.getBean("yxysendmailmasterbaseservice");
//参数bean
yxysysparamaterservice = (YxySysParamaterService) wac.getBean("yxysysparamaterservice");
//查询邮件信息
YxySendMailMasterBase masterbase = yxysendmailmasterbaseservice.findMasterBaseByUID(mailuid);
String emlFilePath="";
//查询控制参数(用户级)
Map<String,String> usergraph=yxysysparamaterservice.findParamaterByLevel(4,loginid,domain);
if(usergraph.size()>0){
//用户级(用户eml文件存储路径)
emlFilePath=usergraph.get("yxy_user_data_save_path").toString();
if(emlFilePath==null||emlFilePath.equals("")){
//查询控制参数(企业级)
Map<String,String> domaingraph=yxysysparamaterservice.findParamaterByLevel(1, loginid,domain);
//企业级(eml文件存放路径)
emlFilePath=domaingraph.get("yxy_domain_save_path").toString();
}
}else{
//查询控制参数(企业级)
Map<String,String> domaingraph=yxysysparamaterservice.findParamaterByLevel(1, loginid,domain);
emlFilePath=domaingraph.get("yxy_domain_save_path").toString();
}
//解析eml文件(传送钥匙)
AnalysisYxyMail mehtod=new AnalysisYxyMail();
String paxbody = mehtod.ParseEmlMethod(masterbase,emlFilePath).get(1).toString();
paxbody = paxbody.replace("mailtempfile/", ConfigPath.getLocalWebUrl()+"/mailtempfile/");
object.put("result", "1");
object.put("reason", "获取邮件信息成功");
object.put("masterbase", masterbase);
object.put("paxbody", paxbody);
response.getWriter().println(object);
return;
}
object.put("result", "-1");
object.put("reason", "方法不支持");
response.getWriter().println(object);
return;
}catch (Exception e) {
object.put("result", "0");
object.put("reason", "访问失败,异常信息:"+e.getMessage());
response.getWriter().println(object);
return;
}
}
}