spring mvc 拦截器

拦截器作用:可以用于用户操作的安全检查,如:登录、权限等

复制代码
package com.tool;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

public class SecurityInterceptor implements HandlerInterceptor {
    private List<String> excludedUrls;

    public void setExcludedUrls(List<String> excludedUrls) {
        this.excludedUrls = excludedUrls;
    }

    @Override
    public void afterCompletion(HttpServletRequest arg0,
            HttpServletResponse arg1, Object arg2, Exception arg3)
            throws Exception {

    }

    @Override
    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
            Object arg2, ModelAndView arg3) throws Exception {

    }

    @Override
    public boolean preHandle(HttpServletRequest request,
            HttpServletResponse arg1, Object arg2) throws Exception {
        String requestUri = request.getRequestURI();
        if (excludedUrls == null || excludedUrls.size() == 0)
            return true;        
        for (String url : excludedUrls) {
            if (requestUri.endsWith(url)) {
                return true;
            }
        }
        //这里可以判断用记是否登录、用户权限
        HttpSession session = request.getSession();        
        if (session.getAttribute("user") == null) {
            throw new Exception("我是来自拦截器的方法");
        } else {
            return true;
        }
    }
}
复制代码

mvc配置

复制代码
    <!--定义拦截器,验证登录,验证权限都可以在这里玩耍了-->
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/**" />
            <bean class="com.tool.SecurityInterceptor">
                <!--定义不需要拦截的url集合-->
                <property name="excludedUrls">
                    <list>
                        <!--                        <value>/HelloWorld/myhello.do</value>-->
                    </list>
                </property>
            </bean>
        </mvc:interceptor>
    </mvc:interceptors>
复制代码

 

posted @   wujf  阅读(346)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示