java spring 中拦截器的设置

好好的浩浩 2017-03-30 04:29:17
我现在有2个拦截器
拦截器类1和拦截器类2
我想实现
拦截器类1 只拦截 app/login
拦截器类2只拦截web/login
可以实现这种功能吗,
我现在是这样的代码



public class InterceptorConfiguration extends WebMvcConfigurerAdapter {

public void addInterceptors(InterceptorRegistry registry) {
InterceptorRegistration interceptorRegistry = registry.addInterceptor(new TokenInterceptor());
interceptorRegistry.addPathPatterns("/api/web/**");
interceptorRegistry.excludePathPatterns("/api/web/log/**");
interceptorRegistry.excludePathPatterns("/api/web/orgm/add");
}
}


我想新加入一个拦截器只拦api/app的内容
而之前的拦截器只拦截api/web
问下各位,可以实现吗,怎样实现
...全文
231 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
好好的浩浩 2017-04-08
  • 打赏
  • 举报
回复

说白了就是这样
需要几个拦截器就间几个这种关系
然后 访问的时候,根据加载顺序会轮流进入
好好的浩浩 2017-04-08
  • 打赏
  • 举报
回复
拦截器配置类
@Configuration
public class FounderInterceptorConfiguration extends WebMvcConfigurerAdapter {

        @Autowired
        private FounderOrgService founderOrgService;

        public void addInterceptors(InterceptorRegistry registry) {
                InterceptorRegistration interceptorRegistry = registry.addInterceptor(
                        new FounderInterceptor(founderOrgService));
                interceptorRegistry.addPathPatterns("/api/web/manager/i/**/add-manager");
                interceptorRegistry.addPathPatterns("/api/web/manager/i/**/del-manager");
                interceptorRegistry.addPathPatterns("/api/web/organize/i/**/del-organize");
        }
}
好好的浩浩 2017-04-08
  • 打赏
  • 举报
回复
自己来吧这个帖子结了吧 我事这样实现的 新建了另外两个拦截器和拦截器的配置文件
@Configuration
public class ManagerInterceptorConfiguration extends WebMvcConfigurerAdapter {
        @Autowired
        private ManagerOrgService managerOrgService;

        public void addInterceptors(InterceptorRegistry registry) {
                InterceptorRegistration interceptorRegistry = registry.addInterceptor(
                        new ManagerInterceptor(managerOrgService));
                interceptorRegistry.addPathPatterns("/api/web/*/i/**");

        }
}
拦截器类
package jpb.Interceptor;

import jpb.constant.StatusCode;
import jpb.module.service.manager.ManagerOrgService;
import jpb.security.HandleCookie;
import jpb.security.HandleToken;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Repository;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

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

/**
 * Created by haol on 2017/4/1.
 */
@Repository
public class ManagerInterceptor extends HandlerInterceptorAdapter {

        private ManagerOrgService managerOrgService;

        public ManagerInterceptor(ManagerOrgService managerOrgService) {
                this.managerOrgService = managerOrgService;
        }

        Logger logger = LoggerFactory.getLogger(ManagerInterceptor.class);
        HandleToken handleToken = new HandleToken();


        public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
                                 Object handler) throws Exception {
                logger.info("进入管理员拦截器");
                try {
                        String token = HandleCookie.getValueByName(request, StatusCode.COOKIE_NAME);
                        String mid = handleToken.getValueByKey(token, "id");
                        String url = request.getRequestURI();
                        String[] strings = url.split("/");
                        String oid = strings[5];
                        boolean pow = managerOrgService.get(mid, oid);
                        if (!pow) {
                                logger.info("用户[{}]没有权限", mid);
                        }
                        return pow;
                }catch (NullPointerException e) {
                        logger.info("当前用户信息不存在,请重新登录");
                        return false;
                }catch (Exception e) {
                        logger.error(e.getMessage());
                        e.printStackTrace();
                        return false;
                }
        }
}

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧