9f8d4cd39cfac18e46cfc4d81e290fce6462caa3.svn-base
2.9 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
package com.espeed.action;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.List;
import java.util.Map;
import com.espeed.centre.pojo.YxyUserInfo;
import com.espeed.log.LogClass;
import com.espeed.service.YxyUserInfoService;
import com.espeed.tool.ConfigPath;
import com.opensymphony.xwork2.ActionContext;
/***
*
* @author 谢勇
* 登录action
*/
public class YxyLoginAction extends BaseAction{
private static final long serialVersionUID = 1L;
/**登录*/
public String YxyLogin(){
try {
// System.out.println("token:"+token);
// System.out.println("secretKey:"+secretKey);
// System.out.println("tokenId:"+tokenId);
// System.out.println("tokenSubject:"+tokenSubject);
response.setHeader("Access-Control-Allow-Origin", "*");
//获取用户session
ActionContext ac = ActionContext.getContext();
Map<String,Object> sess = ac.getSession();
// YxyUserInfo user=(YxyUserInfo) sess.get("yxyuser");
// if(user!=null){//已经登录
// return SUCCESS;
// }else{
Claims claims = Jwts.parser().setSigningKey(secretKey).parseClaimsJws(token).getBody();
if(null == claims.getId() || !claims.getId().trim().equals(tokenId)){
return "loginerro";
}
if(null == claims.getSubject() || !claims.getSubject().trim().equals(tokenSubject)){
return "loginerro";
}
loginid = claims.get("loginid", String.class);
domain = claims.get("domain", String.class);
//判断用户是否存在
List<YxyUserInfo> userlist=yxyuserinfoservice.findVerificationUser(loginid, domain);
if(userlist.size()>0){
userlist.get(0).setDomain(domain);
sess.put("yxyuser", userlist.get(0));
return SUCCESS;
}else{
return "loginerro";
}
// }
} catch (Exception e) {
StringWriter sw = new StringWriter();
e.printStackTrace(new PrintWriter(sw, true));
String str = sw.toString();
LogClass.errolog(str,loginid+"@"+domain);
return "loginerro";
}
}
private YxyUserInfoService yxyuserinfoservice;//用户信息service
private String loginid="erro";
private String domain="erro";
private String token;//webmail跳转过来带的token
private String secretKey=ConfigPath.getSecretKey();
private String tokenId=ConfigPath.getTokenId();
private String tokenSubject=ConfigPath.getTokenSubject();
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public String getLoginid() {
return loginid;
}
public void setLoginid(String loginid) {
this.loginid = loginid;
}
public String getDomain() {
return domain;
}
public void setDomain(String domain) {
this.domain = domain;
}
public YxyUserInfoService getYxyuserinfoservice() {
return yxyuserinfoservice;
}
public void setYxyuserinfoservice(YxyUserInfoService yxyuserinfoservice) {
this.yxyuserinfoservice = yxyuserinfoservice;
}
}