You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.6 KiB
72 lines
2.6 KiB
2 years ago
|
package com.fr.plugin.web.hander;
|
||
|
|
||
|
import com.fr.decision.authority.data.User;
|
||
|
import com.fr.decision.fun.impl.BaseHttpHandler;
|
||
|
import com.fr.decision.webservice.v10.user.UserService;
|
||
|
import com.fr.log.FineLoggerFactory;
|
||
|
import com.fr.plugin.utils.xxUtils;
|
||
|
import com.fr.stable.StringUtils;
|
||
|
import com.fr.third.springframework.web.bind.annotation.RequestMethod;
|
||
|
import com.fr.web.utils.WebUtils;
|
||
|
|
||
|
import javax.servlet.http.HttpServletRequest;
|
||
|
import javax.servlet.http.HttpServletResponse;
|
||
|
|
||
|
public class SingleLoginHandler extends BaseHttpHandler {
|
||
|
@Override
|
||
|
public RequestMethod getMethod() {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public String getPath() {
|
||
|
return "/yt/login";
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public boolean isPublic() {
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void handle(HttpServletRequest req, HttpServletResponse res) throws Exception {
|
||
|
try {
|
||
|
//先做登录
|
||
|
if (!autoLogin(req, res)) {
|
||
|
FineLoggerFactory.getLogger().error("==================== xx user login to FS failed!");
|
||
|
FineLoggerFactory.getLogger().error("==================== xx user login to FS failed!");
|
||
|
|
||
|
}
|
||
|
String originalUrl = WebUtils.getOriginalURL(req);
|
||
|
|
||
|
} catch (Exception e) {
|
||
|
FineLoggerFactory.getLogger().error(e.getMessage());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
private boolean autoLogin(HttpServletRequest req, HttpServletResponse res) throws Exception {
|
||
|
String authCode = WebUtils.getHTTPRequestParameter(req, "authCode");
|
||
|
String clientId = WebUtils.getHTTPRequestParameter(req, "clientId");
|
||
|
if (StringUtils.isEmpty(authCode)) {
|
||
|
FineLoggerFactory.getLogger().error("==================== 获取xx码authCode失败!");
|
||
|
FineLoggerFactory.getLogger().error("==================== 获取xx码authCode失败!");
|
||
|
return false;
|
||
|
}
|
||
|
String access_token = xxUtils.getAccessToken(clientId);
|
||
|
String xxUserId = xxUtils.getCurrentUserId(clientId,authCode, access_token);
|
||
|
FineLoggerFactory.getLogger().info("==================== 获取xx码用户ID:" + xxUserId);
|
||
|
FineLoggerFactory.getLogger().info("==================== 获取xx码用户ID:" + xxUserId);
|
||
|
String username = null;
|
||
|
if (StringUtils.isNotEmpty(xxUserId)) {
|
||
|
FineLoggerFactory.getLogger().info("==================== 识别BI用户为:" + username);
|
||
|
FineLoggerFactory.getLogger().info("==================== 识别BI用户为:" + username);
|
||
|
User user = UserService.getInstance().getUserByUserName(username);
|
||
|
if (user != null) {
|
||
|
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
}
|