写在前边:

我们的微服务是注册中心、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错误的更多相关文章

  1. Codding.net 与 Visual Studio 项目的创建和上传 push 403错误

    1.在codding项目里创建一个项目,记住http 箭头的链接 2.克隆-----第一个框放入上面保存的链接, 下面的框选择一个空文件夹,选好后 克隆就OK 3.在 第2步NewRepo2 文件夹里 ...

  2. sprngmvc+restFul 请求报错:404

    服务端代码 control类 @RequestMapping(value="getUser",method = RequestMethod.POST) @ResponseBody ...

  3. express+node.js搭建的服务器和在sublimeServer下的页面请求报跨域错误

    1.前端页面使用vue中的axios请求nodejs响应.报以下错误: Failed to load http://localhost:3000/users/validate: Response to ...

  4. 本地tp项目上传服务器报runtime/cache错误

    很简单,给runtime权限777 就好了 chmod -r 777 runctime

  5. 接口请求报错 504 Gateway Time-out

    最近程序接口请求报了一个错误,如图 很明显的请求超时,以前也没出现过这个问题,突然就报了这个错,很懵. 百度之后网上说是nginx的问题,然后突然想起来,因为业务需要我在nginx里配了接口的转发. ...

  6. git clone时,报403错误,完美解决方案

    首先命令行操作结果如下: root@zhiren-PowerEdge-T110-II:/zrun# git clone https://git.coding.net/xxxxxxxx/xxxx.git ...

  7. win8安装wampserver报403错误解决方法

    看着别人开始体验win8了,前几天我也安装了win8系统,总体来说还不错,但是今天安装完Wampserver后,浏览器输入localhost,竟然报了403错误,我以为我安装出错了,后来研究了半天,发 ...

  8. git ,报403错误,完美解决方案

    首先命令行操作结果如下: root@zhiren-PowerEdge-T110-II:/zrun# git clone https://git.coding.net/xxxxxxxx/xxxx.git ...

  9. vue-cli项目 build后请求本地static文件中的 json数据,路径不对,报错404处理方法

    vue-cli 项目 build  出错点: 1,build生成dist 放在tomcat上 报错,不显示内容  解决办法: config>index.js===>assetsPublic ...

随机推荐

  1. 如何配置VS使得可以通过域名或IP访问

    一.前言: 在平时使用Visio Studio进行网站开发,经常会遇到一个问题.既要可以使用VS的Debug一步步跟进项目的走向,又必须是外界可以访问的.这个问题会在微信开发中非常常见,就拿微信开发中 ...

  2. Spring源码学习:第0步--环境准备

    Spring源码现在已托管于GitHub,相比于以前直接从官网下载一个压缩包的方式来说,确实方便了不少. GitHub地址:https://github.com/spring-projects/spr ...

  3. python爬微信公众号前10篇历史文章(1)-思路概览

    作为程序员,要时刻保持一颗好奇心和想要学习的姿态. 练习怎样利用搜狗微信爬取某指定微信公众号的历史文章.爬取微信公众号本身难度非常大,感谢搜狗提供了一个可以爬取数据的平台. 代码部分参考于: http ...

  4. Filecoin官方更新: Q4工作进展和2018年工作计划

    ICO过后,Filecoin团队一直没有对外更新过工作计划(很多投资人都等待的不耐烦了).经过漫长的等待,在新年的第一个工作日,我们终于等来了来自于filecoin团队的声音, 这次更新真是出乎小编的 ...

  5. 51ak带你看MYSQL5.7源码3:修改代码实现你的第一个Mysql版本

    从事DBA工作多年 MYSQL源码也是头一次接触 尝试记录下自己看MYSQL5.7源码的历程 目录: 51ak带你看MYSQL5.7源码1:main入口函数 51ak带你看MYSQL5.7源码2:编译 ...

  6. Java-Integer源码分析

    除了两种浮点型,剩下的几种基本数据类型的包装类几乎都实现了常量池,有好处用数据的时候直接去拿,没有再去创建,坏处是在程序编译的时候就存入大量数据不管用不用到.下面是一篇很好的文章,很详细,转自:htt ...

  7. [Luogu 2642] 双子序列最大和

    Description 给定一个长度为n的整数序列,要求从中选出两个连续子序列,使得这两个连续子序列的序列和之和最大,最终只需输出最大和.一个连续子序列的和为该子序列中所有数之和.每个连续子序列的最小 ...

  8. POJ-1032-拆数字

    Description New convocation of The Fool Land's Parliament consists of N delegates. According to the ...

  9. 最小化安装CentOS7的网卡设置

    实验环境:CentOS 7 Minimal Installation 64bit (1511) 最小化安装CentOS 7 后,查看网卡的信息让人很意外,因为网卡的命名规则变了,网卡的名字让人很难懂. ...

  10. #Python3.6.2(32位) pip安装 和 pygame 环境配置

    #首先确认电脑已经安装python ,可通过在命令行下 执行 python --version确认. 1. 到 https://pypi.python.org/pypi/setuptools/ 下载 ...