在Google Cloud Platform中保护SpringBoot REST端点

时间:2018-01-04 18:56:35

标签: rest google-app-engine spring-boot spring-security

我创建了一个带有几个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.

1 个答案:

答案 0 :(得分:0)

在联系Google Cloud支持后,无法使用Google APP引擎配置文件保护Spring应用程序。它需要像任何其他Spring应用程序一样完成,但如果您使用OAUTH,则需要使用Google库进行令牌身份验证。