|
@@ -1,13 +1,13 @@
|
|
|
package com.ym.mec.auth.core.handler;
|
|
|
|
|
|
-import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
-import com.ym.mec.auth.api.entity.SysUser;
|
|
|
-import com.ym.mec.auth.api.entity.SysUserLogin;
|
|
|
-import com.ym.mec.auth.api.entity.SysUserLoginLog;
|
|
|
-import com.ym.mec.auth.service.SysUserLoginLogService;
|
|
|
-import com.ym.mec.auth.service.SysUserLoginService;
|
|
|
-import com.ym.mec.auth.service.SysUserService;
|
|
|
-import com.ym.mec.common.entity.HttpResponseResult;
|
|
|
+import java.io.IOException;
|
|
|
+import java.util.Base64;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+
|
|
|
import org.apache.commons.collections.MapUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -19,17 +19,24 @@ import org.springframework.security.authentication.BadCredentialsException;
|
|
|
import org.springframework.security.core.Authentication;
|
|
|
import org.springframework.security.oauth2.common.OAuth2AccessToken;
|
|
|
import org.springframework.security.oauth2.common.exceptions.UnapprovedClientAuthenticationException;
|
|
|
-import org.springframework.security.oauth2.provider.*;
|
|
|
+import org.springframework.security.oauth2.provider.ClientDetails;
|
|
|
+import org.springframework.security.oauth2.provider.ClientDetailsService;
|
|
|
+import org.springframework.security.oauth2.provider.OAuth2Authentication;
|
|
|
+import org.springframework.security.oauth2.provider.OAuth2Request;
|
|
|
+import org.springframework.security.oauth2.provider.TokenRequest;
|
|
|
import org.springframework.security.oauth2.provider.token.AuthorizationServerTokenServices;
|
|
|
import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
-import javax.servlet.http.HttpServletResponse;
|
|
|
-import java.io.IOException;
|
|
|
-import java.util.Base64;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
+import com.ym.mec.auth.api.entity.SysUser;
|
|
|
+import com.ym.mec.auth.api.entity.SysUserLogin;
|
|
|
+import com.ym.mec.auth.api.entity.SysUserLoginLog;
|
|
|
+import com.ym.mec.auth.config.constant.SecurityConstants;
|
|
|
+import com.ym.mec.auth.service.SysUserLoginLogService;
|
|
|
+import com.ym.mec.auth.service.SysUserLoginService;
|
|
|
+import com.ym.mec.auth.service.SysUserService;
|
|
|
+import com.ym.mec.common.entity.HttpResponseResult;
|
|
|
|
|
|
@Component
|
|
|
public class BaseAuthenticationSuccessEventHandler extends SavedRequestAwareAuthenticationSuccessHandler {
|
|
@@ -56,7 +63,12 @@ public class BaseAuthenticationSuccessEventHandler extends SavedRequestAwareAuth
|
|
|
logger.info("用户:{} 登录成功", authentication.getPrincipal());
|
|
|
HashMap<String,String> hashMap = objectMapper.convertValue(authentication.getPrincipal(), HashMap.class);
|
|
|
String username = hashMap.get("username");
|
|
|
- SysUser sysUser = sysUserService.queryByPhone(username.split(":")[1]);
|
|
|
+ SysUser sysUser;
|
|
|
+ if(username.startsWith(SecurityConstants.USERNAME_PRINCIPAL_PREFIX)){
|
|
|
+ sysUser = sysUserService.queryByUsername(username.split(":")[1]);
|
|
|
+ }else {
|
|
|
+ sysUser = sysUserService.queryByPhone(username.split(":")[1]);
|
|
|
+ }
|
|
|
Date date = new Date();
|
|
|
//修改添加登录信息
|
|
|
SysUserLogin userLogin = sysUserLoginService.findLoginByUserId(sysUser.getId());
|
|
@@ -79,8 +91,8 @@ public class BaseAuthenticationSuccessEventHandler extends SavedRequestAwareAuth
|
|
|
sysUserLoginLogService.insert(sysUserLoginLog);
|
|
|
|
|
|
try {
|
|
|
- String clientId = request.getAttribute("clientId").toString();
|
|
|
- String clientSecret = request.getAttribute("clientSecret").toString();
|
|
|
+ String clientId = request.getParameter("clientId");
|
|
|
+ String clientSecret = request.getParameter("clientSecret");
|
|
|
if (clientId == null || clientSecret == null) {
|
|
|
throw new UnapprovedClientAuthenticationException("请求头中client信息为空");
|
|
|
}
|