From a1f5b4bcde020c206382c3a07c9b4ecd5784a9d8 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 13 八月 2025 15:26:55 +0800
Subject: [PATCH] 修改bug
---
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java | 41 +++++++++++++++++++----------------------
1 files changed, 19 insertions(+), 22 deletions(-)
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java
index 88c08b7..816840d 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java
@@ -3,9 +3,9 @@
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.google.code.kaptcha.Constants;
import com.stylefeng.guns.core.base.controller.BaseController;
-import com.stylefeng.guns.core.beetl.ShiroExtUtil;
import com.stylefeng.guns.core.common.exception.InvalidKaptchaException;
import com.stylefeng.guns.core.log.LogManager;
import com.stylefeng.guns.core.log.factory.LogTaskFactory;
@@ -17,9 +17,11 @@
import com.stylefeng.guns.core.util.KaptchaUtil;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.dao.UserMapper;
+import com.stylefeng.guns.modular.system.model.Menu;
+import com.stylefeng.guns.modular.system.model.Relation;
import com.stylefeng.guns.modular.system.model.User;
import com.stylefeng.guns.modular.system.service.IMenuService;
-import com.stylefeng.guns.modular.system.service.ITEnterpriseWithdrawalService;
+import com.stylefeng.guns.modular.system.service.IRelationService;
import com.stylefeng.guns.modular.system.service.IUserService;
import com.stylefeng.guns.modular.system.util.HttpRequestUtil;
import com.stylefeng.guns.modular.system.util.PushURL;
@@ -36,7 +38,6 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.context.request.RequestContextHolder;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@@ -45,6 +46,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -66,8 +68,8 @@
@Autowired
private IUserService userService;
- @Autowired
- private RedisTemplate redisTemplate;
+ @Resource
+ private RedisTemplate<String, String> redisTemplate;
@Autowired
private IShiro shiro;
@@ -80,8 +82,8 @@
private Map<String, Integer> loginFailures = new HashMap<>();
- @Resource
- private ITEnterpriseWithdrawalService enterpriseWithdrawalService;
+ @Autowired
+ private IRelationService relationService;
/**
@@ -90,32 +92,29 @@
@RequestMapping(value = "/", method = RequestMethod.GET)
public String index(Model model, HttpServletRequest request) throws UnsupportedEncodingException {
//session中解析用户数据
- //设置共享session
- HttpSession session = (HttpSession) redisTemplate.opsForValue().get(request.getSession().getId());
- if (null != session) {
- session = request.getSession();
- redisTemplate.opsForValue().set(request.getSession().getId(), session, 2, TimeUnit.DAYS);
- }
+ HttpSession session = request.getSession();
String onconParam = edu.yale.its.tp.cas.client.Util.getOnconParam(session);
onconParam = new String(Base64.decodeBase64(onconParam), "UTF-8");
LoginUser loginUser = JSON.parseObject(onconParam, LoginUser.class);
- log.info("登录账号: " + JSON.toJSONString(loginUser));
-
+ System.err.println("session解析结果:" + JSON.toJSONString(loginUser));
//获取菜单列表
User user = userMapper.getByAccount(loginUser.getImUser());
if (null == user) {
- logOut();
+ System.err.println("用户不存在");
+ return null;
}
ShiroUser shiroUser = shiro.shiroUser(user);
List<Integer> roleList = shiroUser.getRoleList();
if (roleList == null || roleList.size() == 0) {
roleList.add(0);
}
-
+ List<Relation> relations = relationService.selectList(new EntityWrapper<Relation>().in("roleid", roleList));
+ Set<Long> collect = relations.stream().map(Relation::getMenuid).collect(Collectors.toSet());
+ List<Menu> menuList = menuService.selectBatchIds(collect);
List<MenuNode> menus = menuService.getMenusByRoleIds(roleList);
List<MenuNode> titles = MenuNode.buildTitle(menus);
titles = ApiMenuFilter.build(titles);
- shiroUser.setMenuIds(titles.stream().map(MenuNode::getUrl).collect(Collectors.toList()));
+ shiroUser.setMenuIds(menuList.stream().map(Menu::getUrl).collect(Collectors.toList()));
model.addAttribute("titles", titles);
@@ -124,8 +123,7 @@
model.addAttribute("avatar", avatar);
model.addAttribute("userName", user.getName());
model.addAttribute("type", 0);
- String sessionId = RequestContextHolder.currentRequestAttributes().getSessionId();
- ShiroExtUtil.map.put(sessionId, shiroUser);
+ redisTemplate.opsForValue().set(loginUser.getOnconUUID(), JSON.toJSONString(shiroUser), 10, TimeUnit.HOURS);
return "/index.html";
}
@@ -133,8 +131,7 @@
* 退出登录
*/
@RequestMapping(value = "/logout", method = RequestMethod.GET)
- public String logOut() {
- HttpUtil.get("https://testsso1.teamshub.com/logout?logouturl=https%3A%2F%2Fsso.teamshub.com%2Flogout%3F%0Alogoutat%3Dhttp%253A%252F%252F127.0.0.1%253A8010%252F");
+ public String logOut(HttpServletRequest request) {
return REDIRECT + "/";
}
--
Gitblit v1.7.1