python前后端分离前端权限_security在前后端分离开发中,拒绝访问的处理

在前后端分离的开发模式下,前端H5和JS负责页面导航和数据请求,后端使用Security和SpringMVC处理接口交互。当无权限访问资源时,后端返回的拒绝页面内容可能会被JS误处理。通过在AngularJS应用中添加HTTP响应拦截器,可以针对403状态码进行特殊处理,将用户重定向到静态拒绝访问页面,从而解决这个问题。
摘要由CSDN通过智能技术生成

前端h5+js:页面导航交给前端,数据请求全部通过js完成,静态资源的请求security全部放开

后端security + springmvc:后端接口与前端交互,有权限返回请求数据和请求状态的响应,无权限依然按照 security配置的拒绝页面返回

这里就有个问题了。js请求的资源没有权限的时候,得到返回的内容是拒绝页面的内容,如何把这部分内容加载成页面我不太清楚。

我这里是添加对http响应的统一处理来解决:

//http请求 和 响应的拦截,统一处理

secDemoApp.factory("InterceptorHttp", [function () {

return {

responseError: function (response) {

//服务器响应请求失败:server status !=200

// 请求未进入方法或者有异常

if(response.status == 403){

//security拦截后返回的data为异常页面内容,这里不使用data,

//判断server status=403直接转到静态拒绝页面

window.location.href = baseUrl+viewPath.denied;

}

//其他原样返回

if (response.status == 500) {

return response;

}

if (response.status == 404) {

return response;

}

return response;

},

request: function (request) {

//前端请求发起,处理request后再请求服务器

return request;

},

response: function (response) {

//服务器响应请求成功:请求进入方法 server status =200

//处理请求数据或者逻辑错误, 异常被catch后的响应,回送数据code值自定义

//这里 全部原样返回,如果有需要,再单独判断并做处理

if (response.data && response.code == 500) {

return response;

}

//统一的错误处理

if (response.data && response.code == 403) {

return response;

}

return response;

}

};

}]);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值