是否可以在app.yaml中确保我对http应用程序的所有请求都被重定向到https而无需指定安全:始终为我的应用中的每个url端点。
目前我这样做:
url: /users/login
script: users_handler.app
secure: always
url: /signin
script: authentication.app
secure: always
url: /users/logout
script: users_handler.app
secure: always
但是随着新网址的添加,作为开发人员的风险可能会忘记始终指定安全。我更愿意只指定一个适用于我的应用中所有网址的全局设置。
答案 0 :(得分:1)
如果您不想在app.yaml中使用安全,则可以使用webapp2完成此操作。 https://webapp2.readthedocs.io/en/latest/guide/routing.html#restricting-uri-schemes
这是一个工作代码eaxmple:How to use WSGI to reroute a user from http to https
答案 1 :(得分:0)
我觉得自己像考古学家,但我还是会分享我的发现。
所要做的就是将其添加到 app.yaml 中:
handlers:
- url: /.*
secure: always
script: auto
甚至还有documentation example with that case。和我的完全一样,但是我去掉了重定向。
答案 2 :(得分:-1)
我不相信这是可能的。但是,我认为您可以通过重新调整app.yaml中定义的URL来缓解这个问题。
从顶部开始,URL与app.yaml中的处理程序进行匹配。因此,您应该指定一次性URL,然后在底部有一个catch all设置,将所有与其他设置不匹配的URL路由到您的默认处理程序。然后,您的应用程序应显示404页面等,以用于您的应用程序中不存在的URL。
这样的事情会起作用:
- url: /signin
script: authentication.app
secure: always
- url: /.*
script: users_handler.app
secure: always
这样,您只需为应用程序指定几个处理程序,就不太可能错过设置安全:始终在添加新URL或设置时。
希望有所帮助!