# SpringBoot Configurer l'intercepteur d'URL global (jugement de connexion)

Intercepteur d'URL global de configuration SpringBoot (jugement de connexion)

Définissez l'intercepteur: implémentez la classe HandlerInterceptor et réécrivez trois méthodes
  • J'utilise les informations utilisateur dans la session pour déterminer si je me suis connecté. Lorsque je ne suis pas connecté, je lance une exception personnalisée NoLoginException, puis je vais à la classe de gestion des exceptions globale pour capturer cette exception et la traiter. Sans parler de la classe d'exception globale, le blog précédent sur la gestion globale des exceptions.
public class UrllInterceptor extends BaseController implements HandlerInterceptor {
    
    

    private Logger logger= Logger.getLogger(UrllInterceptor.class);

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    
    
        CurrentUser currentUser = getCurrentUser(request);
        String requestURI = request.getRequestURI();
        if(requestURI.contains("/login")){
    
    
            return true;
        } else if(currentUser==null){
    
    
            logger.info("==========当前用户没有登录");
            response.setStatus(201);
            // 抛出没有登录的异常,在全局异常中进行处理
            throw new NoLoginException("没有登录请重新登录!");
        }
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    
    

    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    
    
        logger.info("==========请求Url:"+request.getRequestURL()+"    "+"==========请求状态:"+response.getStatus());
    }
}

ConfigurationWebMvcConfigurer
  • Si vous configurez druid, swagger et d'autres interfaces de téléchargement de fichiers, vous devez publier ici
@Configuration
public class UrlConfig implements WebMvcConfigurer {
    
    

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    
    
        //注册TestInterceptor拦截器
        InterceptorRegistration registration = registry.addInterceptor(new UrllInterceptor());
        registration.addPathPatterns("/**");                      //所有路径都被拦截
        registration.excludePathPatterns(                         //添加不拦截路径
                "你的登陆路径",            //登录
                "/**/*.html",            //html静态资源
                "/**/*.js",              //js静态资源
                "/**/*.css",             //css静态资源
                "/**/*.woff",
                "/**/*.ttf"
        );
    }
}

En bref, la mise en œuvre est relativement simple, voir l'adresse du cloud de code https://gitee.com/Marlon_Brando/back.git pour plus de détails

Je suppose que tu aimes

Origine blog.csdn.net/qq_37248504/article/details/108066181
conseillé
Classement