81,122
社区成员




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");
}
}
@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");
}
}
@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;
}
}
}