解决前后端分离时spring Security 即使操作成功也会抛出权限不足的情况

前后端分离+spring Security 操作其实成功了,但中途总是会抛出异常说没有权限,利用swagger或者postman测试都不会有这种问题,

但通过前端测试时,后端打断点时就会发现总是会请求两次,一次没有权限,一次检测到有权限,虽然有异常,但是不影响使用

同一个请求,出现两次权限验证

第一次没有权限

 

紧接着第二次就通过了

这是我自定义的AccessDecisionManager

 

 

 

 

 后来发现是因为浏览器对复杂跨域请求的一种处理方式,在真正发送请求之前,会先进行一次预请求,也就是OPTIONS,OPTIONS的第一次请求,他的作用是用于试探性的服务器响应是否正确,即是否能接受真正的请求,所以到后端的时候会有一个Request Method参数是OPTIONS,还有一次就是我们真正的请求,比如get或是post请求方式,也就是两次,第一次没有token 所以会抛异常

所以只要在代码中添加一个关于OPTIONS操作的权限管理就行了

 

 

问题解决

 

posted @ 2020-03-19 13:54  King丶小明  阅读(1100)  评论(0编辑  收藏  举报