現在Google App Engineプロジェクトに参加しています。私のアプリケーションでは、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を制限する方法は?
ここで説明するように、WEB-INFフォルダーのapp.yamlファイルでHTTPSを要求するように個々のハンドラーを構成することは可能です app.yamlを使用したJavaアプリケーション構成-Google App Engine 。
これら2つの単語をapp.yaml
ファイルの適切なurl
エントリの下に追加するだけです。secure: always
例えば:
- url: .*
script: main.app
secure: always
次に、ユーザーがHTTPでURLにアクセスしようとすると、自動的にHTTPSにリダイレクトされます。かなりクール。
「app.yaml」オプション(デプロイ時にweb.xmlとappengine-web.xmlファイルを上書きする)を使用するのではなく、「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
これは将来の人々のためです!!!
Javaの場合web.xml
ファイルに以下のコードを追加するとうまくいきました
<security-constraint>
<web-resource-collection>
<web-resource-name>HTTPS redirect</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
他のプロジェクトの場合、secure: always
ファイルのすべてのURLの下にapp.yaml
を追加します
これを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>