spring的权限控制,过滤器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring的权限控制,过滤器相关的知识,希望对你有一定的参考价值。

spring的过滤器可以实现登录状态问题

1.创建一个AccessFilter类,基础代码

package com.ujia.util.access;

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

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

import com.ujia.entity.User;

public class AccessFilter implements HandlerInterceptor {

    @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 response, Object handler) throws Exception {
        //获取登录session
        User user=(User) request.getSession().getAttribute("user");
        //如果访问路径为登录首页,通过
        if(request.getRequestURI().startsWith(request.getContextPath()+"/user/login.htm")){
            return true;
        }
        //如果请求路径为登录,通过
        else if(request.getRequestURI().startsWith(request.getContextPath()+"/user/login")){
            return true;
        }
        //如果没有登录session,则返回到登录页面
        else if(null==user){
            response.sendRedirect(request.getContextPath()+"/user/login.htm");
            return false;
        }
        return true;
    }
}

springMVC配置

<!-- 过滤器 -->
        <mvc:interceptors>
            <bean class="com.ujia.util.access.AccessFilter"></bean>
        </mvc:interceptors>

 

以上是关于spring的权限控制,过滤器的主要内容,如果未能解决你的问题,请参考以下文章

Spring Security实现登录认证和权限控制

Spring Security源码:权限访问控制是如何做到的?

Spring Security源码:权限访问控制是如何做到的?

在项目中使用Spring Security进行权限控制

Gateway中使用SpringSecurity进行网关鉴权与权限控制

shiro进行权限控制的四种方式