spring boot 使用攔截器 實現 用戶登錄攔截


登錄攔截和和權限攔截實現類似
 
首先自定義一個【 DefineAdapter】類,這個類我是用來放自定義的配置(比如 自定義請求參數,自定義攔截器等),集成WebMvcConfigurerAdapter 重寫他的addInterceptors 方法,將你攔截器的實現類
加入即可, DefineAdapter 代碼如下:
 
@Configuration
public class DefineAdapter extends WebMvcConfigurerAdapter {
@Autowired
public RoleInterceptor roleInterceptor;//用戶角色攔截器
@Autowired
public LoginInterceptor loginInterceptor;//用戶登錄攔截器
@Autowired
MeidaRequestDataCustomArgumentResolver meidaRequestDataCustomArgumentResolver;//自定義參數綁定
//自定義參數綁定
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
super.addArgumentResolvers(argumentResolvers);
argumentResolvers.add(meidaRequestDataCustomArgumentResolver);
}
//自定義攔截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
//用戶角色攔截器
registry.addInterceptor(roleInterceptor).
addPathPatterns("/**”);
//用戶登錄攔截器
registry.addInterceptor(loginInterceptor).
addPathPatterns("/**").
addPathPatterns("/*/login").
addPathPatterns("/*/h5/login").
excludePathPatterns("/switch/*");
super.addInterceptors(registry);
}
 
自定義參數綁定 可以不用管,你就當沒有那段代碼!!
addInterceptors:添加你自定義攔截器的實現邏輯類
addPathPatterns:添加你要攔截的請求路徑,如果有多個路徑,就繼續addPathPatterns
excludePathPatterns:添加你不需要攔截的請求路徑
 
我攔截器具體的實現邏輯是LoginInterceptor 這個類,代碼如下:
 
@Service
public class LoginInterceptor extends HandlerInterceptorAdapter { {
    protected static final Log logger = LogFactory.getLog(LoginInterceptor.class);
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler){
            
                String userId = request.getParameter("userId");
                if (StringUtils.isNotBlank(userId)){
                return false;
       
        }
}

 

繼承 HandlerInterceptorAdapter 抽象類,實現preHandle方法,在里面寫你的攔截邏輯。
 
完!


免責聲明!

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



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