第十一章的代码启动报错

来源:1-1 课前须知,这里有你需要了解的一切

勾吉达不溜

2022-11-14

老师您好,在checkout 分支:springboot2.7-security5.7后,学习第11章代码时,运行了相关工程,访问地址报错,麻烦老师指导一下

工程代码如下:
图片描述

效果如下:
图片描述


p.s

我现在有个springgateway的场景,想参考老师的 simple-backend-for-frontend 工程(我看到该工程下面有 gateway的依赖),遇到了问题。
我的工程结构是:

  • simple-frontend:前端工程,和老师原始的前端一样,只是把地址改成我的 gateway工程的地址和端口。
  • Gateway:7001:后端工程,作为网关,配置参考自老师的工程:simple-backend-for-frontend
  • Item:7004:资源服务器,返回字符串“one,two,three”
  • IDP:keycloak

现象如下:
1,能登录成功,例如 刘备,也能获取到userinfo。
2,点击“Authorization Code” 请求后面的接口 /test/list (预期返回 “one,two,three”),页面一直刷新,且list几口都是 401.

图片描述

通过httpclient请求发现:

  • 前端(simple-frontend)与后端(gateway)之间是通过 cookie(例如 Cookie:SESSION=c7a854a2-882d-42e5-a051-081250a5a432;XSRF-TOKEN=9b70d581-9eaf-4997-9718-b3005ec7a4d3)来认证的
  • 后端(gateway)与 资源服务器(Item)是通过 TOKEN(例如:Authorization: Bearer:eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJXTVJSSmN。。。。)来认证的
  • 只有请求中包含了这两个,才能顺利得到结果。

请看下图:
图片描述

于是就看看老师原始的工程,发现原始工程启动后有如上的问题,请老师不吝赐教,感谢~

写回答

1回答

接灰的电子产品

2022-11-14

不能使用localhost 访问,要用 127.0.0.1

gateway 代码的问题其实本质是 spring authorization 还不太成熟,有 bug,所以我没讲这部分内容

0
2
接灰的电子产品
授权服务器本身就是要有状态的,用cookie 维护很正常,登录后访问单独的资源服务器就不需要cookie了
2022-11-15
共2条回复

Spring Security+OAuth2 精讲,打造企业级认证与授权

一站式掌握主流安全框架与行业解决方案,从容应对各种安全难题。

1042 学习 · 316 问题

查看课程