SpringBoot 登陆拦截

版权声明:帅气Dee海绵宝宝 独家放送 https://blog.csdn.net/xyjcfucdi128/article/details/83417130

1.登陆拦截器 :创建一个类 实现 HandlerInterceptor 看具体代码

package com.bw.data.portal.conf;

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

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
/**
 * 登陆拦截
 * @author wangmx
 */
public class LoginHanderInterceptor implements HandlerInterceptor{

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
		// TODO Auto-generated method stub
        //获取 session中的 用户信息
		Object user = request.getSession().getAttribute( "fuser" );
		if (user == null){
            System.out.println( "登陆拦截" );
            //跳转到 登陆的controller  /ful/nologin   是直接返回 到登陆界面的 controller
            request.getRequestDispatcher( "/ful/nologin" ).forward( request,response );
            return false;
        }else {
            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 {
		
	}
	

}

2.拦截器注册:创建 一个类继承 WebMvcConfigurerAdapter  接着看代码

 package com.bw.data.portal.common.config.mvc;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import com.bw.data.portal.conf.LoginHanderInterceptor;

/*
* 类描述:springMVC的配置
* @auther wangmx
* @create 2018/8/20  
*/
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {

    /**
     * 登陆拦截
     * wangmx
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    	 registry.addInterceptor( new LoginHanderInterceptor())
         .addPathPatterns( "/**" ).excludePathPatterns("/", "/index.jsp","/ful/nologin","/ful/login");
        //除了index.jsp 和 /ful/nologin 和 /ful/login 全部拦截
    }
    

}

3.登陆的controller:

//登陆拦截之后 跳转的 controller 返回到 登陆的 jsp 页面
@RequestMapping(value = "/nologin")
	 public String myDataAndReport() {
		
		return "redirect:/login.jsp";
}

登陆页面 正常采用 from表单提交就可以了

猜你喜欢

转载自blog.csdn.net/xyjcfucdi128/article/details/83417130