jhipster生成项目无法使用restful请求,报access_denied 403错误
写在前边:
我们的微服务是注册中心、uaa、gateway为基础,添加微服务应用,昨天下午在测试jhipster的增删改查,因为jhipster生成的代码都是restful的,好不容易找到网关配置的映射路径,测试get请求是可以的,但是post、put、delete都不行。查资料发现是springboot中整合的spring security的锅,点这里直接看问题解决办法
问题重现:
进入网关,本地测试:http://localhost:8080,发现微服务应用的ip映射到了/test/**路径
因为使用了spring-security,所以,请求的时候需要token,如果header中没有Cookie值,请求会被拦截,我们必须在同一个浏览器中使用postman插件,才能获取相同的token,注意打开postman的interceptor(客户端请百度参考,本人放弃治疗了……)
记得必须登录一下gateway,否则也是没有token的
使用get请求测试下:
看图片是正常的,我之前在这个微服务中的h2-console中插了几条数据,访问http://localhost:微服务应用的端口/h2-console 默认没有密码,直接点连接即可进入控制台
测试一下post请求:(忽略那个jhipster环境,啥也没配)
访问拒绝,报403错误
问题解决:
考虑到所有应用都是通过网关进行通讯的,如图
去gateway项目中查看源码,找到gateway\src\main\java\com\shunneng\gateway\config下的MicroserviceSecurityConfiguration.java
找到如图方法
在方法体最下添加代码:http.csrf().disable(); 如图
保存,ctrl+c关闭gateway项目,mvnw重启一下
效果验收:
测试一下删除,注意为防止token过期,刷新localhost:8080 页面,如未登录请登录,然后继续
尾声:
这种方法的确很好的解决了这个问题,但是这里就会导致一个问题,之前spring-security这样拦截是为了防止恶意攻击,这样所有的restful请求都放通了,可能会导致不安全。
文中修改配置文件中的放行是我自己配的,组长说这样可以保证安全,亲测无用,感觉二者并无什么区别,但是如果我没有登录这个微服务的gateway,我根本都访问不了好嘛:P
如果有更好的办法,欢迎评论拍砖!
jhipster生成项目无法使用restful请求,报access_denied 403错误的更多相关文章
- Codding.net 与 Visual Studio 项目的创建和上传 push 403错误
1.在codding项目里创建一个项目,记住http 箭头的链接 2.克隆-----第一个框放入上面保存的链接, 下面的框选择一个空文件夹,选好后 克隆就OK 3.在 第2步NewRepo2 文件夹里 ...
- sprngmvc+restFul 请求报错:404
服务端代码 control类 @RequestMapping(value="getUser",method = RequestMethod.POST) @ResponseBody ...
- express+node.js搭建的服务器和在sublimeServer下的页面请求报跨域错误
1.前端页面使用vue中的axios请求nodejs响应.报以下错误: Failed to load http://localhost:3000/users/validate: Response to ...
- 本地tp项目上传服务器报runtime/cache错误
很简单,给runtime权限777 就好了 chmod -r 777 runctime
- 接口请求报错 504 Gateway Time-out
最近程序接口请求报了一个错误,如图 很明显的请求超时,以前也没出现过这个问题,突然就报了这个错,很懵. 百度之后网上说是nginx的问题,然后突然想起来,因为业务需要我在nginx里配了接口的转发. ...
- git clone时,报403错误,完美解决方案
首先命令行操作结果如下: root@zhiren-PowerEdge-T110-II:/zrun# git clone https://git.coding.net/xxxxxxxx/xxxx.git ...
- win8安装wampserver报403错误解决方法
看着别人开始体验win8了,前几天我也安装了win8系统,总体来说还不错,但是今天安装完Wampserver后,浏览器输入localhost,竟然报了403错误,我以为我安装出错了,后来研究了半天,发 ...
- git ,报403错误,完美解决方案
首先命令行操作结果如下: root@zhiren-PowerEdge-T110-II:/zrun# git clone https://git.coding.net/xxxxxxxx/xxxx.git ...
- vue-cli项目 build后请求本地static文件中的 json数据,路径不对,报错404处理方法
vue-cli 项目 build 出错点: 1,build生成dist 放在tomcat上 报错,不显示内容 解决办法: config>index.js===>assetsPublic ...
随机推荐
- .net core实现redisClient
引言 最近工作上有需要使用redis,于是便心血来潮打算自己写一个C#客户端.经过几天的努力,目前该客户端已经基本成型,下面简单介绍一下. 通信协议 要想自行实现redisClient,则必须先要了解 ...
- 特殊权限chattr的用法
1,只能对文件进行追加操作: [root@localhost tmp]# cat yum.log 22222222222222[root@localhost tmp]# chattr +a yum.l ...
- 记kkpager分页控件的使用
kkpager支持异步加载分页: 1.页面添加div标签和引用JS,默认标签为<div id="kkpager"></div> 引用JS和样式 <sc ...
- 深度学习基础网络 ResNet
Highway Networks 论文地址:arXiv:1505.00387 [cs.LG] (ICML 2015),全文:Training Very Deep Networks( arXiv:150 ...
- READ TABLE 的用法
SORT ITAB BY '你想比较的列'. " 排序以增加二分查找的速度 READ TABLE itab with key 'itab中某列' = ‘目标列' BINARY SEARCH. ...
- poj-1503-java大数相加
Description One of the first users of BIT's new supercomputer was Chip Diller. He extended his explo ...
- CXF 开发 REST 服务
今天我们将视角集中在 REST 上,它是继 SOAP 以后,另一种广泛使用的 Web 服务.与 SOAP 不同,REST 并没有 WSDL 的概念,也没有叫做"信封"的东西,因为 ...
- ES6 中 Promise 详解
Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果.从语法上说,Promise 是一个对象,从它可以获取异步操作的消息.Promise 提供统一的 API ...
- python(字符串操作)
一.字符串的局部替换 python 字符串替换可以用2种方法实现:1是用字符串本身的方法.2用正则来替换字符串 下面用个例子来实验下:a = 'hello word'我把a字符串里的word替换为py ...
- 谷歌、腾讯、百度相应API批量获取地理位置坐标信息及其优缺点
目录: 申请ak 批量获取地理位置 目的:通过给定的地理位置名称(如:北京市海淀区上地十街十号),获取经纬度信息. 1.申请ak 以百度Geocoding API为例:http://lbsyun.ba ...