mirror of
https://github.com/didi/KnowStreaming.git
synced 2025-12-24 03:42:07 +08:00
支持Ldap登录认证
This commit is contained in:
@@ -7,13 +7,6 @@ import org.springframework.stereotype.Service;
|
||||
@Data
|
||||
@Service
|
||||
public class KmAccountConfig {
|
||||
/**
|
||||
* LoginService的默认配置
|
||||
*/
|
||||
@Value(value = "${account.login.service.name:loginService}")
|
||||
private String loginServiceName;
|
||||
|
||||
|
||||
/**************************************************** Ldap 登录相关配置 ****************************************************/
|
||||
|
||||
@Value(value = "${account.ldap.url:}")
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.xiaojukeji.know.streaming.km.account.common.bizenum;
|
||||
|
||||
import com.didiglobal.logi.security.extend.LoginExtendBeanTool;
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
@@ -10,9 +11,12 @@ public enum LoginServiceNameEnum {
|
||||
|
||||
;
|
||||
|
||||
public static final String DEFAULT_LOGIN_NAME = "loginService";
|
||||
/**
|
||||
* @see LoginExtendBeanTool.DEFAULT_BEAN_NAME
|
||||
*/
|
||||
public static final String DEFAULT_LOGIN_NAME = "logiSecurityDefaultLoginExtendImpl";
|
||||
|
||||
public static final String LDAP_LOGIN_NAME = "ldapLoginService";
|
||||
public static final String LDAP_LOGIN_NAME = "ksLdapLoginService";
|
||||
|
||||
private final String name;
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.didiglobal.logi.security.common.entity.user.User;
|
||||
import com.didiglobal.logi.security.common.enums.ResultCode;
|
||||
import com.didiglobal.logi.security.common.vo.user.UserBriefVO;
|
||||
import com.didiglobal.logi.security.exception.LogiSecurityException;
|
||||
import com.didiglobal.logi.security.service.LoginService;
|
||||
import com.didiglobal.logi.security.extend.LoginExtend;
|
||||
import com.didiglobal.logi.security.service.UserService;
|
||||
import com.didiglobal.logi.security.util.AESUtils;
|
||||
import com.didiglobal.logi.security.util.CopyBeanUtil;
|
||||
@@ -39,8 +39,8 @@ import static com.didiglobal.logi.security.util.HttpRequestUtil.COOKIE_OR_SESSIO
|
||||
* @author Hu.Yue
|
||||
* @date 2021/8/4
|
||||
*/
|
||||
//@Service(LoginServiceNameEnum.LDAP_LOGIN_NAME)
|
||||
public class LdapLoginServiceImpl implements LoginService {
|
||||
@Service(LoginServiceNameEnum.LDAP_LOGIN_NAME)
|
||||
public class LdapLoginServiceImpl implements LoginExtend {
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(LdapLoginServiceImpl.class);
|
||||
|
||||
@Autowired
|
||||
@@ -89,8 +89,17 @@ public class LdapLoginServiceImpl implements LoginService {
|
||||
|
||||
@Override
|
||||
public Result<Boolean> logout(HttpServletRequest request, HttpServletResponse response){
|
||||
// 清理session
|
||||
request.getSession().invalidate();
|
||||
response.setStatus(REDIRECT_CODE);
|
||||
|
||||
// 清理cookies
|
||||
for (Cookie cookie: request.getCookies()) {
|
||||
cookie.setMaxAge(0);
|
||||
cookie.setPath("/");
|
||||
response.addCookie(cookie);
|
||||
}
|
||||
|
||||
return Result.buildSucc(Boolean.TRUE);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,10 +4,7 @@ import com.didiglobal.logi.log.ILog;
|
||||
import com.didiglobal.logi.log.LogFactory;
|
||||
import com.didiglobal.logi.security.common.constant.Constants;
|
||||
import com.didiglobal.logi.security.service.LoginService;
|
||||
import com.xiaojukeji.know.streaming.km.account.KmAccountConfig;
|
||||
import com.xiaojukeji.know.streaming.km.account.common.bizenum.LoginServiceNameEnum;
|
||||
import com.xiaojukeji.know.streaming.km.account.login.trick.TrickJumpLoginService;
|
||||
import com.xiaojukeji.know.streaming.km.common.component.HandleFactory;
|
||||
import com.xiaojukeji.know.streaming.km.common.constant.ApiPrefix;
|
||||
import com.xiaojukeji.know.streaming.km.common.constant.Constant;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -36,10 +33,7 @@ public class PermissionInterceptor implements HandlerInterceptor {
|
||||
private static final String OPEN_URL_PREFIX = ApiPrefix.API_V3_OPEN_PREFIX;
|
||||
|
||||
@Autowired
|
||||
private HandleFactory handleFactory;
|
||||
|
||||
@Autowired
|
||||
private KmAccountConfig kmAccountConfig;
|
||||
private LoginService loginService;
|
||||
|
||||
@Autowired
|
||||
private TrickJumpLoginService trickJumpLoginService;
|
||||
@@ -77,21 +71,11 @@ public class PermissionInterceptor implements HandlerInterceptor {
|
||||
whiteMappingValues.add(LOGIN_URL);
|
||||
whiteMappingValues.add(OPEN_URL_PREFIX);
|
||||
|
||||
return this.getLoginService().interceptorCheck(request, response, classRequestMappingValue, whiteMappingValues);
|
||||
return loginService.interceptorCheck(request, response, classRequestMappingValue, whiteMappingValues);
|
||||
}
|
||||
|
||||
/**************************************************** private method ****************************************************/
|
||||
|
||||
private LoginService getLoginService() {
|
||||
LoginService loginService = handleFactory.getByClassNamePer(kmAccountConfig.getLoginServiceName(), LoginService.class);
|
||||
if (loginService == null) {
|
||||
LOGGER.error("method=getLoginService||specifiedLoginServiceName={}||msg=specified login service not exist and use default", kmAccountConfig.getLoginServiceName());
|
||||
return handleFactory.getByClassNamePer(LoginServiceNameEnum.DEFAULT_LOGIN_NAME, LoginService.class);
|
||||
}
|
||||
|
||||
return loginService;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过反射获取带有@RequestMapping的Controller
|
||||
* @param handler 请求处理器
|
||||
|
||||
@@ -41,6 +41,7 @@ spring:
|
||||
driver-class-name: org.mariadb.jdbc.Driver
|
||||
app-name: know-streaming
|
||||
resource-extend-bean-name: myResourceExtendImpl
|
||||
login-extend-bean-name: logiSecurityDefaultLoginExtendImpl
|
||||
|
||||
logging:
|
||||
config: classpath:logback-spring.xml
|
||||
|
||||
Reference in New Issue
Block a user