Restangular 拦截器
2016-06-02 13:25
525 查看
1、后台部分:
package com.bio.framework.util.spring;
import java.lang.reflect.Method;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.aop.MethodBeforeAdvice;
import com.bio.base.annotation.SetCORNResponseHeader;
import com.bio.base.util.domain.ObjectUtils;
import com.bio.framework.dto.LpsMemberDto;
/**
* @author jianana
*
*/
public class ResponseHeaderAdvice implements MethodBeforeAdvice {
@Override
public void before(Method method, Object[] args, Object target) throws Throwable {
SetCORNResponseHeader setCORNResponseHeader = method.getAnnotation(SetCORNResponseHeader.class);
if ((setCORNResponseHeader != null && !setCORNResponseHeader.isNeeded()) || ObjectUtils.isEmpty(setCORNResponseHeader)) {
return;
}
String usernm = null;
LpsMemberDto currentMemberInfo = null;
for (Object arg : args) {
if (arg instanceof HttpServletRequest) {
usernm = ((HttpServletRequest) arg).getHeader("usernm");
currentMemberInfo = (LpsMemberDto)((HttpServletRequest) arg).getSession().getAttribute("currentMemberInfo");
}
}
for (Object arg : args) {
if (arg instanceof HttpServletResponse) {
if(ObjectUtils.isEmpty(usernm) || !currentMemberInfo.getUsernm().equals(usernm)){
((HttpServletResponse) arg).setStatus(HttpServletResponse.SC_SERVICE_UNAVAILABLE);
}
return;
}
}
}
}
controller中需要拦截的方法@SetCORNResponseHeader(isNeeded=true)
2、app部分run中配置:
Restangular.addFullRequestInterceptor(function (element, operation, route, url, headers, params, httpConfig) {
return {
headers: {usernm: "21312313213"}
};
});
Restangular.setErrorInterceptor(function(res) {
$state.go("login");
return false;
});
package com.bio.framework.util.spring;
import java.lang.reflect.Method;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.aop.MethodBeforeAdvice;
import com.bio.base.annotation.SetCORNResponseHeader;
import com.bio.base.util.domain.ObjectUtils;
import com.bio.framework.dto.LpsMemberDto;
/**
* @author jianana
*
*/
public class ResponseHeaderAdvice implements MethodBeforeAdvice {
@Override
public void before(Method method, Object[] args, Object target) throws Throwable {
SetCORNResponseHeader setCORNResponseHeader = method.getAnnotation(SetCORNResponseHeader.class);
if ((setCORNResponseHeader != null && !setCORNResponseHeader.isNeeded()) || ObjectUtils.isEmpty(setCORNResponseHeader)) {
return;
}
String usernm = null;
LpsMemberDto currentMemberInfo = null;
for (Object arg : args) {
if (arg instanceof HttpServletRequest) {
usernm = ((HttpServletRequest) arg).getHeader("usernm");
currentMemberInfo = (LpsMemberDto)((HttpServletRequest) arg).getSession().getAttribute("currentMemberInfo");
}
}
for (Object arg : args) {
if (arg instanceof HttpServletResponse) {
if(ObjectUtils.isEmpty(usernm) || !currentMemberInfo.getUsernm().equals(usernm)){
((HttpServletResponse) arg).setStatus(HttpServletResponse.SC_SERVICE_UNAVAILABLE);
}
return;
}
}
}
}
controller中需要拦截的方法@SetCORNResponseHeader(isNeeded=true)
2、app部分run中配置:
Restangular.addFullRequestInterceptor(function (element, operation, route, url, headers, params, httpConfig) {
return {
headers: {usernm: "21312313213"}
};
});
Restangular.setErrorInterceptor(function(res) {
$state.go("login");
return false;
});
相关文章推荐
- AngularJs Service-自定义服务
- 解决AngularJS在IE下取数据总是缓存的问题
- AngularJs Filter详解2--自定义过滤器
- AngularJS Post 表单键值对格式
- Backbone vs AngularJS
- angularjs1.3.0源码解析之directive
- 通过终端调试 AngularJS 应用
- angular学习参考资料
- AngularJs-指令和控制器交互
- AngularJs Filter详解1-内置过滤器
- angularjs Select下拉选择宽
- AngularJS中的jQuery
- 如何监听Angularjs列表数据是否渲染完毕,配合jQuery操作DOM,指令的规范
- angularjsService
- “英雄之旅”见闻和小结----angular2系列(三)
- AngularJS之中级Route【二】(七)
- angularjs的mvvm
- Angular单页面应用架构
- Angular入门-module和service
- AngularJS 世界------Angularjs的模型(ng-model)