Https только в движке Google
Сейчас я нахожусь в проекте движка Google. В моем приложении я должен разрешить только протокол https. И я должен ограничивать другие протоколы. Он должен только https. Я добавил код ниже в web.xml.
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected Area</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
Но после развертывания он работает на обоих протоколах (http и https). Как ограничить http?
Ответы
Ответ 1
Можно настроить отдельные обработчики, чтобы требовать HTTPS в файле app.yaml в папке WEB-INF, как описано здесь: Конфигурация Java-приложений с помощью приложения .yaml - Google App Engine.
Вам просто нужно добавить эти два слова в свой app.yaml
файл под соответствующей записью url
:
secure: always
Например:
- url: .*
script: main.app
secure: always
Затем, если пользователь пытается получить доступ к URL с HTTP, она будет автоматически перенаправлена на HTTPS. Довольно круто.
Ответ 2
Если вы хотите придерживаться "web.xml", а не использовать параметр "app.yaml" (который будет перезаписывать файлы web.xml и appengine-web.xml во время развертывания), вы можете добавить:
<security-constraint>
<web-resource-collection>
<web-resource-name>everything</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
Ссылка:
https://cloud.google.com/appengine/docs/java/config/webxml#Security_and_Authentication
Ответ 3
Вы используете свой собственный домен? В настоящее время GAE поддерживает SSL для доменов *.appspot.com только. Они были перспективными Поддержка SSL для доменов, отличных от appspot, в течение некоторого времени, и мы все ждем новостей на этом фронте.
Ответ 4
Добавьте это в свой файл web.xml
<security-constraint>
<web-resource-collection>
<web-resource-name>all</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>