Spring Boot 登錄攔截


重寫攔截器方法,進行登錄攔截!代碼如下:

 

第一步:自定義攔截器 實現 HandlerInterceptor

package com.controller;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

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

/**
 * 自定義攔截器
 *
 */
public class MyInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//        HttpSession session = request.getSession(true);
        JSONObject jsonObject = JSON.parseObject(request.getParameter("params"));
//        String queryString = request.getQueryString();
//        System.out.println(request.getParameterMap().get("params"));
        if(jsonObject.get("userName") == null){
            response.sendRedirect(request.getContextPath() + "/index.xml");
            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 {

    }
}

第二步:配置, 添加攔截到指定的URL

package com.Config;


import com.controller.MyInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration
public class AddInterceptor extends WebMvcConfigurerAdapter {

    @Override
    public void addInterceptors(InterceptorRegistry interceptorRegistry){
            interceptorRegistry.addInterceptor(new MyInterceptor()).addPathPatterns("/login");
    }
}

第三步:controller

package com.controller;

import com.VO.User;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class LoginController {
    @ApiOperation(value="登陸", notes="")
    @RequestMapping(value={"/login"}, method= RequestMethod.GET)
    public String login(@RequestParam(value = "params")String params) {
    
        return null;
    }

    @RequestMapping(value={"/getList"}, method= RequestMethod.POST)
    public List<User> getUserList() {
        return null;
    }

}

最后: 前台調用即可!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM