我有一个混合代码容器,包含:
- java spring Boot 应用程序(后端)
- 一个vue.js应用(前端)
容器正在使用jib构建-"静态“内容与/app/resources/static目录中的gradle复制作业一起部署。下面是布局:
后端使用spring security进行保护。
前端被排除在Spring安全链之外:
启动容器并尝试访问index.html会出现401“Unauthorized”:
我已经尝试了不同的事情(改变静态路径,修改安全链,...),但我总是得到相同的结果。我有点迷路了,请求指导:)
问候
1条答案
按热度按时间yx2lnoni1#
我认为这里的关键是
.requestMatchers(...)
中指定的路径指的是HTTP请求的路径,而不是文件系统上的路径。您会注意到,浏览器显示的请求是发往
/index.html
的,这在webSecurityCustomizer
bean的忽略请求匹配器列表中没有指定。This answer from Andy Wilkinson更详细。修改bean以:
应该能解决问题
在本地开发时,您可能还希望将Jib从等式中删除,并尝试使用
mvn spring-boot:run
或./gradlew bootRun
运行应用程序。然后,一旦事情正常工作,尝试对Jib构建的Docker镜像做同样的事情。