关于拦截器的使用问题

使用拦截器一直出现重定位死循环,但是不知道怎么更改,希望只能直接访问入口页面
拦截器1

img


拦截器2

img


IndexController

img


部分配置

img


error

img

放行登录页 静态资源

img

拿请求的url去比较一下就好了,这么简单


Object obj = request.getSession().getAttribute("uid"); if (obj == null && !request.getRequestURI().contains("userLogin.html")) { response.sendRedirect("/web/userLogin.html"); return false; } return true;
  • 这篇博客: 微服务项目实战技术点汇总:“尚硅谷的谷粒在线教育”十三、权限管理模块(后端)递归中的 1、indexController 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • package com.yzpnb.aclservice.controller;
    
    import com.alibaba.fastjson.JSONObject;
    import com.yzpnb.aclservice.service.IndexService;
    import com.yzpnb.common_utils.Result;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.security.core.context.SecurityContextHolder;
    import org.springframework.web.bind.annotation.*;
    
    import java.util.List;
    import java.util.Map;
    
    @RestController
    @RequestMapping("/admin/acl/index")
    @CrossOrigin
    public class IndexController {
    
        @Autowired
        private IndexService indexService;
    
        /**
         * 根据token获取用户信息
         */
        @GetMapping("info")
        public Result info(){
            //获取当前登录用户用户名
            String username = SecurityContextHolder.getContext().getAuthentication().getName();
            Map<String, Object> userInfo = indexService.getUserInfo(username);
            return Result.ok().data(userInfo);
        }
    
        /**
         * 获取菜单
         * @return
         */
        @GetMapping("menu")
        public Result getMenu(){
            //获取当前登录用户用户名
            String username = SecurityContextHolder.getContext().getAuthentication().getName();
            List<JSONObject> permissionList = indexService.getMenu(username);
            return Result.ok().data("permissionList", permissionList);
        }
    
        @PostMapping("logout")
        public Result logout(){
            return Result.ok();
        }
    
    }