我创建了一个带有几个REST端点的SpringBoot应用程序,并将其部署到Google App Engine Standard。一切正常,我能够达到终点。 现在,我希望保护这些端点,并且只允许作为管理员授权的用户能够调用其中一个端点。我尝试使用以下配置将web.xml文件添加到项目中:
<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
<security-constraint>
<web-resource-collection>
<web-resource-name>api</web-resource-name>
<url-pattern>/api/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>status</web-resource-name>
<url-pattern>/api/status</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>ping</web-resource-name>
<url-pattern>/api/ping</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
我可以将其部署到GAE,但我不能再调用端点了。我现在得到的是一堆未找到的404,与之前的URL相同。有没有其他方法可以在Google App Engine Standard中保护SpringBoot端点?
忘记提及我在本地运行应用程序时安全配置有效,但是一旦部署到GAE就开始获取404.
答案 0 :(得分:0)
在联系Google Cloud支持后,无法使用Google APP引擎配置文件保护Spring应用程序。它需要像任何其他Spring应用程序一样完成,但如果您使用OAUTH,则需要使用Google库进行令牌身份验证。