Skip to content

Commit 7a3d155

Browse files
author
zengqiao
committed
支持Ldap登录认证
1 parent 64f32d8 commit 7a3d155

File tree

5 files changed

+21
-30
lines changed

5 files changed

+21
-30
lines changed

km-extends/km-account/src/main/java/com/xiaojukeji/know/streaming/km/account/KmAccountConfig.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,6 @@
77
@Data
88
@Service
99
public class KmAccountConfig {
10-
/**
11-
* LoginService的默认配置
12-
*/
13-
@Value(value = "${account.login.service.name:loginService}")
14-
private String loginServiceName;
15-
16-
1710
/**************************************************** Ldap 登录相关配置 ****************************************************/
1811

1912
@Value(value = "${account.ldap.url:}")

km-extends/km-account/src/main/java/com/xiaojukeji/know/streaming/km/account/common/bizenum/LoginServiceNameEnum.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.xiaojukeji.know.streaming.km.account.common.bizenum;
22

3+
import com.didiglobal.logi.security.extend.LoginExtendBeanTool;
34
import lombok.Getter;
45

56
@Getter
@@ -10,9 +11,12 @@ public enum LoginServiceNameEnum {
1011

1112
;
1213

13-
public static final String DEFAULT_LOGIN_NAME = "loginService";
14+
/**
15+
* @see LoginExtendBeanTool.DEFAULT_BEAN_NAME
16+
*/
17+
public static final String DEFAULT_LOGIN_NAME = "logiSecurityDefaultLoginExtendImpl";
1418

15-
public static final String LDAP_LOGIN_NAME = "ldapLoginService";
19+
public static final String LDAP_LOGIN_NAME = "ksLdapLoginService";
1620

1721
private final String name;
1822

km-extends/km-account/src/main/java/com/xiaojukeji/know/streaming/km/account/login/ldap/LdapLoginServiceImpl.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import com.didiglobal.logi.security.common.enums.ResultCode;
88
import com.didiglobal.logi.security.common.vo.user.UserBriefVO;
99
import com.didiglobal.logi.security.exception.LogiSecurityException;
10-
import com.didiglobal.logi.security.service.LoginService;
10+
import com.didiglobal.logi.security.extend.LoginExtend;
1111
import com.didiglobal.logi.security.service.UserService;
1212
import com.didiglobal.logi.security.util.AESUtils;
1313
import com.didiglobal.logi.security.util.CopyBeanUtil;
@@ -39,8 +39,8 @@
3939
* @author Hu.Yue
4040
* @date 2021/8/4
4141
*/
42-
//@Service(LoginServiceNameEnum.LDAP_LOGIN_NAME)
43-
public class LdapLoginServiceImpl implements LoginService {
42+
@Service(LoginServiceNameEnum.LDAP_LOGIN_NAME)
43+
public class LdapLoginServiceImpl implements LoginExtend {
4444
private static final Logger LOGGER = LoggerFactory.getLogger(LdapLoginServiceImpl.class);
4545

4646
@Autowired
@@ -89,8 +89,17 @@ public UserBriefVO verifyLogin(AccountLoginDTO loginDTO,
8989

9090
@Override
9191
public Result<Boolean> logout(HttpServletRequest request, HttpServletResponse response){
92+
// 清理session
9293
request.getSession().invalidate();
9394
response.setStatus(REDIRECT_CODE);
95+
96+
// 清理cookies
97+
for (Cookie cookie: request.getCookies()) {
98+
cookie.setMaxAge(0);
99+
cookie.setPath("/");
100+
response.addCookie(cookie);
101+
}
102+
94103
return Result.buildSucc(Boolean.TRUE);
95104
}
96105

km-rest/src/main/java/com/xiaojukeji/know/streaming/km/rest/interceptor/PermissionInterceptor.java

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44
import com.didiglobal.logi.log.LogFactory;
55
import com.didiglobal.logi.security.common.constant.Constants;
66
import com.didiglobal.logi.security.service.LoginService;
7-
import com.xiaojukeji.know.streaming.km.account.KmAccountConfig;
8-
import com.xiaojukeji.know.streaming.km.account.common.bizenum.LoginServiceNameEnum;
97
import com.xiaojukeji.know.streaming.km.account.login.trick.TrickJumpLoginService;
10-
import com.xiaojukeji.know.streaming.km.common.component.HandleFactory;
118
import com.xiaojukeji.know.streaming.km.common.constant.ApiPrefix;
129
import com.xiaojukeji.know.streaming.km.common.constant.Constant;
1310
import org.springframework.beans.factory.annotation.Autowired;
@@ -36,10 +33,7 @@ public class PermissionInterceptor implements HandlerInterceptor {
3633
private static final String OPEN_URL_PREFIX = ApiPrefix.API_V3_OPEN_PREFIX;
3734

3835
@Autowired
39-
private HandleFactory handleFactory;
40-
41-
@Autowired
42-
private KmAccountConfig kmAccountConfig;
36+
private LoginService loginService;
4337

4438
@Autowired
4539
private TrickJumpLoginService trickJumpLoginService;
@@ -77,21 +71,11 @@ public boolean preHandle(HttpServletRequest request, HttpServletResponse respons
7771
whiteMappingValues.add(LOGIN_URL);
7872
whiteMappingValues.add(OPEN_URL_PREFIX);
7973

80-
return this.getLoginService().interceptorCheck(request, response, classRequestMappingValue, whiteMappingValues);
74+
return loginService.interceptorCheck(request, response, classRequestMappingValue, whiteMappingValues);
8175
}
8276

8377
/**************************************************** private method ****************************************************/
8478

85-
private LoginService getLoginService() {
86-
LoginService loginService = handleFactory.getByClassNamePer(kmAccountConfig.getLoginServiceName(), LoginService.class);
87-
if (loginService == null) {
88-
LOGGER.error("method=getLoginService||specifiedLoginServiceName={}||msg=specified login service not exist and use default", kmAccountConfig.getLoginServiceName());
89-
return handleFactory.getByClassNamePer(LoginServiceNameEnum.DEFAULT_LOGIN_NAME, LoginService.class);
90-
}
91-
92-
return loginService;
93-
}
94-
9579
/**
9680
* 通过反射获取带有@RequestMapping的Controller
9781
* @param handler 请求处理器

km-rest/src/main/resources/application.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ spring:
4141
driver-class-name: org.mariadb.jdbc.Driver
4242
app-name: know-streaming
4343
resource-extend-bean-name: myResourceExtendImpl
44+
login-extend-bean-name: logiSecurityDefaultLoginExtendImpl
4445

4546
logging:
4647
config: classpath:logback-spring.xml

0 commit comments

Comments
 (0)