switch login between session and cookie · tomdev2008/cachecloud@2682e1e · GitHub
Skip to content

Commit 2682e1e

Browse files
committed
switch login between session and cookie
1 parent 124fd72 commit 2682e1e

13 files changed

Lines changed: 161 additions & 53 deletions

File tree

cachecloud-open-common/src/main/java/com/sohu/cache/util/ConstUtils.java

Lines changed: 14 additions & 1 deletion

cachecloud-open-common/src/main/java/com/sohu/cache/web/util/UserLoginStatusUtil.java

Lines changed: 0 additions & 37 deletions
This file was deleted.

cachecloud-open-web/src/main/java/com/sohu/cache/interceptor/AppAndInstanceAuthorityInterceptor.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
import com.sohu.cache.entity.InstanceInfo;
2222
import com.sohu.cache.stats.instance.InstanceStatsCenter;
2323
import com.sohu.cache.web.service.AppService;
24+
import com.sohu.cache.web.service.UserLoginStatusService;
2425
import com.sohu.cache.web.service.UserService;
25-
import com.sohu.cache.web.util.UserLoginStatusUtil;
2626

2727
/**
2828
* 应用和实例权限验证
@@ -39,12 +39,14 @@ public class AppAndInstanceAuthorityInterceptor extends HandlerInterceptorAdapte
3939
private UserService userService;
4040

4141
private InstanceStatsCenter instanceStatsCenter;
42+
43+
private UserLoginStatusService userLoginStatusService;
4244

4345
@Override
4446
public boolean preHandle(HttpServletRequest request,
4547
HttpServletResponse response, Object handler) throws Exception {
4648
// 1. 获取用户
47-
long userId = UserLoginStatusUtil.getUserIdFromLoginStatus(request);
49+
long userId = userLoginStatusService.getUserIdFromLoginStatus(request);
4850
AppUser user = userService.get(userId);
4951

5052
// 2. 管理员直接跳过
@@ -120,4 +122,8 @@ public void setInstanceStatsCenter(InstanceStatsCenter instanceStatsCenter) {
120122
this.instanceStatsCenter = instanceStatsCenter;
121123
}
122124

125+
public void setUserLoginStatusService(UserLoginStatusService userLoginStatusService) {
126+
this.userLoginStatusService = userLoginStatusService;
127+
}
128+
123129
}

cachecloud-open-web/src/main/java/com/sohu/cache/interceptor/FrontUserLoginInterceptor.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
1010

1111
import com.sohu.cache.entity.AppUser;
12+
import com.sohu.cache.web.service.UserLoginStatusService;
1213
import com.sohu.cache.web.service.UserService;
13-
import com.sohu.cache.web.util.UserLoginStatusUtil;
1414

1515
/**
1616
* 前台登陆验证
@@ -22,12 +22,14 @@ public class FrontUserLoginInterceptor extends HandlerInterceptorAdapter {
2222
private Logger logger = LoggerFactory.getLogger(FrontUserLoginInterceptor.class);
2323

2424
private UserService userService;
25+
26+
private UserLoginStatusService userLoginStatusService;
2527

2628
@Override
2729
public boolean preHandle(HttpServletRequest request,
2830
HttpServletResponse response, Object handler) throws Exception {
2931

30-
long userId = UserLoginStatusUtil.getUserIdFromLoginStatus(request);
32+
long userId = userLoginStatusService.getUserIdFromLoginStatus(request);
3133
AppUser user = userService.get(userId);
3234

3335
if (user == null) {
@@ -58,4 +60,8 @@ public void setUserService(UserService userService) {
5860
this.userService = userService;
5961
}
6062

63+
public void setUserLoginStatusService(UserLoginStatusService userLoginStatusService) {
64+
this.userLoginStatusService = userLoginStatusService;
65+
}
66+
6167
}

cachecloud-open-web/src/main/java/com/sohu/cache/interceptor/ManageUserLoginInterceptor.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010

1111
import com.sohu.cache.constant.AppUserTypeEnum;
1212
import com.sohu.cache.entity.AppUser;
13+
import com.sohu.cache.web.service.UserLoginStatusService;
1314
import com.sohu.cache.web.service.UserService;
14-
import com.sohu.cache.web.util.UserLoginStatusUtil;
1515

1616
/**
1717
* 管理员登录验证
@@ -24,11 +24,13 @@ public class ManageUserLoginInterceptor extends HandlerInterceptorAdapter {
2424

2525
private UserService userService;
2626

27+
private UserLoginStatusService userLoginStatusService;
28+
2729
@Override
2830
public boolean preHandle(HttpServletRequest request,
2931
HttpServletResponse response, Object handler) throws Exception {
3032

31-
long userId = UserLoginStatusUtil.getUserIdFromLoginStatus(request);
33+
long userId = userLoginStatusService.getUserIdFromLoginStatus(request);
3234
AppUser user = userService.get(userId);
3335

3436
//必须是管理员
@@ -61,4 +63,8 @@ public void setUserService(UserService userService) {
6163
this.userService = userService;
6264
}
6365

66+
public void setUserLoginStatusService(UserLoginStatusService userLoginStatusService) {
67+
this.userLoginStatusService = userLoginStatusService;
68+
}
69+
6470
}

cachecloud-open-web/src/main/java/com/sohu/cache/stats/app/impl/ImportAppCenterImpl.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.sohu.cache.stats.app.ImportAppCenter;
2626
import com.sohu.cache.util.ConstUtils;
2727
import com.sohu.cache.util.IdempotentConfirmer;
28+
import com.sohu.cache.util.JedisUtil;
2829
import com.sohu.cache.web.service.AppService;
2930

3031
/**
@@ -193,7 +194,9 @@ private String getSentinelMasterName(final String ip, final int port) {
193194
public boolean execute() {
194195
Jedis jedis = null;
195196
try {
196-
jedis = new Jedis(ip, port);
197+
// 预留
198+
String password = null;
199+
jedis = JedisUtil.getJedis(ip, port, password);
197200
jedis.getClient().setConnectionTimeout(Protocol.DEFAULT_TIMEOUT * (timeOutFactor++));
198201
jedis.getClient().setSoTimeout(Protocol.DEFAULT_TIMEOUT * (timeOutFactor++));
199202
List<Map<String, String>> mapList = jedis.sentinelMasters();
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.sohu.cache.util;
2+
3+
import org.apache.commons.lang.StringUtils;
4+
5+
import redis.clients.jedis.Jedis;
6+
import redis.clients.jedis.Protocol;
7+
8+
/**
9+
* 获取jedis连接
10+
*
11+
* @author leifu
12+
* @Date 2016年6月14日
13+
* @Time 上午10:38:36
14+
*/
15+
public class JedisUtil {
16+
17+
public static Jedis getJedis(String host, int port) throws Exception {
18+
return getJedis(host, port, Protocol.DEFAULT_TIMEOUT, null);
19+
}
20+
21+
public static Jedis getJedis(String host, int port, int timeout) throws Exception {
22+
return getJedis(host, port, timeout, null);
23+
}
24+
25+
public static Jedis getJedis(String host, int port, int connectionTimeout, int soTimeout) throws Exception {
26+
return getJedis(host, port, connectionTimeout, soTimeout, null);
27+
}
28+
29+
public static Jedis getJedis(String host, int port, String password) throws Exception {
30+
return getJedis(host, port, Protocol.DEFAULT_TIMEOUT, password);
31+
}
32+
33+
public static Jedis getJedis(String host, int port, int timeout, String password) throws Exception {
34+
return getJedis(host, port, timeout, timeout, password);
35+
}
36+
37+
public static Jedis getJedis(String host, int port, int connectionTimeout, int soTimeout, String password) throws Exception {
38+
try {
39+
Jedis jedis = new Jedis(host, port, connectionTimeout, soTimeout);
40+
if (StringUtils.isNotBlank(password)) {
41+
jedis.auth(password);
42+
}
43+
return jedis;
44+
} catch (Exception e) {
45+
throw e;
46+
}
47+
}
48+
}

cachecloud-open-web/src/main/java/com/sohu/cache/web/controller/BaseController.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
import javax.servlet.http.HttpServletResponse;
1313

1414
import com.sohu.cache.web.service.AppService;
15+
import com.sohu.cache.web.service.UserLoginStatusService;
1516
import com.sohu.cache.web.service.UserService;
16-
import com.sohu.cache.web.util.UserLoginStatusUtil;
1717

1818
import org.apache.commons.collections.CollectionUtils;
1919
import org.apache.commons.lang.exception.ExceptionUtils;
@@ -42,6 +42,8 @@ public class BaseController {
4242
protected AppService appService;
4343

4444
protected MachineCenter machineCenter;
45+
46+
protected UserLoginStatusService userLoginStatusService;
4547

4648
public void setUserService(UserService userService) {
4749
this.userService = userService;
@@ -55,14 +57,18 @@ public void setMachineCenter(MachineCenter machineCenter) {
5557
this.machineCenter = machineCenter;
5658
}
5759

60+
public void setUserLoginStatusService(UserLoginStatusService userLoginStatusService) {
61+
this.userLoginStatusService = userLoginStatusService;
62+
}
63+
5864
/**
5965
* 返回用户基本信息
6066
*
6167
* @param request
6268
* @return
6369
*/
6470
public AppUser getUserInfo(HttpServletRequest request) {
65-
long userId = UserLoginStatusUtil.getUserIdFromLoginStatus(request);
71+
long userId = userLoginStatusService.getUserIdFromLoginStatus(request);
6672
return userService.get(userId);
6773
}
6874

cachecloud-open-web/src/main/java/com/sohu/cache/web/controller/LoginController.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.sohu.cache.web.controller;
22

3+
import javax.annotation.Resource;
34
import javax.servlet.http.HttpServletRequest;
45
import javax.servlet.http.HttpServletResponse;
56

@@ -15,8 +16,8 @@
1516
import com.sohu.cache.util.ConstUtils;
1617
import com.sohu.cache.web.enums.AdminEnum;
1718
import com.sohu.cache.web.enums.LoginEnum;
19+
import com.sohu.cache.web.service.UserLoginStatusService;
1820
import com.sohu.cache.web.util.LoginUtil;
19-
import com.sohu.cache.web.util.UserLoginStatusUtil;
2021

2122
/**
2223
* 登录逻辑
@@ -27,6 +28,9 @@
2728
@Controller
2829
@RequestMapping("manage")
2930
public class LoginController extends BaseController {
31+
32+
@Resource(name = "userLoginStatusService")
33+
private UserLoginStatusService userLoginStatusService;
3034

3135
/**
3236
* 用户登录界面
@@ -85,7 +89,7 @@ public ModelAndView loginIn(HttpServletRequest request,
8589
}
8690
// 登录成功写入登录状态
8791
if (loginResult.getLoginEnum().equals(LoginEnum.LOGIN_SUCCESS)) {
88-
UserLoginStatusUtil.addLoginStatus(request, response, userModel.getId().toString());
92+
userLoginStatusService.addLoginStatus(request, response, userModel.getId().toString());
8993
}
9094
model.addAttribute("success", loginResult.getLoginEnum().value());
9195
model.addAttribute("admin", loginResult.getAdminEnum().value());
@@ -100,7 +104,7 @@ public ModelAndView loginIn(HttpServletRequest request,
100104
*/
101105
@RequestMapping(value = "/logout", method = RequestMethod.GET)
102106
public ModelAndView logout(HttpServletRequest request, HttpServletResponse response) {
103-
UserLoginStatusUtil.removeLoginStatus(request, response);
107+
userLoginStatusService.removeLoginStatus(request, response);
104108
return new ModelAndView("redirect:/manage/login");
105109
}
106110

Lines changed: 28 additions & 0 deletions

0 commit comments

Comments
 (0)