diff --git a/login-base/src/main/java/ink/wgink/login/base/service/user/UserDetailServiceImpl.java b/login-base/src/main/java/ink/wgink/login/base/service/user/UserDetailServiceImpl.java index 057fe685..a4d669ac 100644 --- a/login-base/src/main/java/ink/wgink/login/base/service/user/UserDetailServiceImpl.java +++ b/login-base/src/main/java/ink/wgink/login/base/service/user/UserDetailServiceImpl.java @@ -2,6 +2,7 @@ package ink.wgink.login.base.service.user; import com.alibaba.fastjson.JSONObject; import ink.wgink.interfaces.consts.ISystemConstant; +import ink.wgink.interfaces.expand.login.ILoginHandler; import ink.wgink.interfaces.group.IGroupUserBaseService; import ink.wgink.interfaces.permission.IPermissionBaseService; import ink.wgink.interfaces.position.IPositionUserBaseService; @@ -56,6 +57,8 @@ public class UserDetailServiceImpl implements UserDetailsService, IUserDetailChe private IGroupUserBaseService groupUserBaseService; @Autowired(required = false) private IPositionUserBaseService positionUserBaseService; + @Autowired(required = false) + private ILoginHandler loginHandler; @Autowired private IDepartmentUserService departmentUserService; @Autowired @@ -122,9 +125,26 @@ public class UserDetailServiceImpl implements UserDetailsService, IUserDetailChe loginUser.setPositions(positionBOs); } } + loginHandler(loginUser); return loginUser; } + /** + * 登录处理 + * + * @param loginUser + */ + private void loginHandler(LoginUser loginUser) { + if (loginHandler != null) { + try { + loginHandler.handle(loginUser); + } catch (Exception e) { + LOG.error(e.getMessage(), e); + throw new UserAuthenticationException("登录异常"); + } + } + } + /** * 创建UserBO *