session登录会话拦截

cookie和session握手过程

cookie和session握手过程

session会话拦截器

package com.xbb.springboot.tutorial.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.util.StringUtils;
import org.springframework.web.servlet.HandlerInterceptor;

public class LoginInterceptor implements HandlerInterceptor{

    /**
     * 请求拦截接口之前会调用该方法
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
       String username = (String) request.getSession().getAttribute("username");
       if (StringUtils.isEmpty(username)) {
           response.sendRedirect("/view/login");
           return false;
       }
       return true;
    }

    /**
     * 接口调用完成之后会调用该方法
     */
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
            throws Exception {
        System.out.println(request.getRequestURI() + "访问完毕");
    }
    
}

拦截器配置

package com.xbb.springboot.tutorial;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import com.xbb.springboot.tutorial.interceptor.LoginInterceptor;

@Configuration
public class WebMvcConfig  implements WebMvcConfigurer{

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoginInterceptor())
            .addPathPatterns("/**")
            .excludePathPatterns("/view/login")
            .excludePathPatterns("/login");
    }
    
}

测试拦截器

http://127.0.0.1:8080/view/index
http://127.0.0.1:8080/view/login
http://127.0.0.1:8080/view/index

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容