|
@@ -1,32 +1,32 @@
|
|
|
package com.rtrh.projects.web.controller.passport.api;
|
|
|
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.Map;
|
|
|
-
|
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
-import javax.servlet.http.HttpServletResponse;
|
|
|
-
|
|
|
-import org.apache.shiro.SecurityUtils;
|
|
|
-import org.apache.shiro.authc.AuthenticationException;
|
|
|
-import org.apache.shiro.authc.DisabledAccountException;
|
|
|
-import org.apache.shiro.authc.IncorrectCredentialsException;
|
|
|
-import org.apache.shiro.authc.LockedAccountException;
|
|
|
-import org.apache.shiro.authc.UnknownAccountException;
|
|
|
-import org.apache.shiro.session.Session;
|
|
|
-import org.apache.shiro.subject.Subject;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.web.bind.annotation.PostMapping;
|
|
|
-import org.springframework.web.bind.annotation.RequestBody;
|
|
|
-import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
-import org.springframework.web.bind.annotation.RestController;
|
|
|
-
|
|
|
+import cn.hutool.http.HttpUtil;
|
|
|
import com.rtrh.core.vo.Message;
|
|
|
+import com.rtrh.projects.modules.account.po.CommUser;
|
|
|
import com.rtrh.projects.modules.account.service.CommLoginService;
|
|
|
+import com.rtrh.projects.modules.account.service.CommUserService;
|
|
|
+import com.rtrh.projects.modules.account.service.impl.CommUserChecker;
|
|
|
import com.rtrh.projects.vo.passport.DoLoginVO;
|
|
|
import com.rtrh.projects.web.controller.BaseController;
|
|
|
+import com.rtrh.projects.web.util.JwtUtil;
|
|
|
import com.rtrh.projects.web.util.RemoteUtil;
|
|
|
import com.team.security.MCSessionDAO;
|
|
|
import com.team.security.UserToken;
|
|
|
+import org.apache.shiro.SecurityUtils;
|
|
|
+import org.apache.shiro.authc.*;
|
|
|
+import org.apache.shiro.session.Session;
|
|
|
+import org.apache.shiro.subject.Subject;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.web.bind.ServletRequestUtils;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
+import org.springframework.web.servlet.support.RequestContextUtils;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import javax.servlet.http.HttpSession;
|
|
|
+import java.util.Collection;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
@RestController
|
|
|
@RequestMapping("api")
|
|
@@ -36,6 +36,8 @@ public class LoginApiController extends BaseController {
|
|
|
private MCSessionDAO sessionDAO;
|
|
|
@Autowired
|
|
|
private CommLoginService commLoginService;
|
|
|
+ @Autowired
|
|
|
+ private CommUserService commUserService;
|
|
|
|
|
|
public static final Map<Object, Session> user_session = new HashMap<>();
|
|
|
|
|
@@ -66,9 +68,6 @@ public class LoginApiController extends BaseController {
|
|
|
|
|
|
/**
|
|
|
* 登录
|
|
|
- * @param loginName
|
|
|
- * @param pwd
|
|
|
- * @param code
|
|
|
* @param request
|
|
|
* @param response
|
|
|
* @return
|
|
@@ -88,6 +87,39 @@ public class LoginApiController extends BaseController {
|
|
|
return message;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 跳转登录
|
|
|
+ * @param token
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @PostMapping("jumpLogin")
|
|
|
+ public Message jumpLogin(@RequestParam String token) {
|
|
|
+ Message message = new Message();
|
|
|
+ try {
|
|
|
+ //对token进行解密得到用户名
|
|
|
+ String username = JwtUtil.validateToken(token);
|
|
|
+ //查询发改委数据库中是否存在该用户
|
|
|
+ CommUser commUser = commUserService.findCommUserByFgwLoginName(username);
|
|
|
+ if(null == commUser){
|
|
|
+ message.addError("用户不存在");
|
|
|
+ return message;
|
|
|
+ }
|
|
|
+ if(CommUserChecker.isDisabledUser(commUser)){
|
|
|
+ message.addError("用户被锁定");
|
|
|
+ return message;
|
|
|
+ }
|
|
|
+ UserToken shiroUserToken = new UserToken(commUser.getLoginname(), commUser.getPassword(), RemoteUtil.getIpAddress(request));
|
|
|
+ shiroUserToken.setRememberMe(true);
|
|
|
+ shiroUserToken.setLoginAction("jump");
|
|
|
+ loginMethod(request, response, shiroUserToken, message);
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("", e);
|
|
|
+ message.addError("跳转异常");
|
|
|
+ }
|
|
|
+ return message;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
private void loginMethod(HttpServletRequest request, HttpServletResponse response, UserToken token, Message message){
|
|
|
Subject currentUser = SecurityUtils.getSubject();
|