Je suis sur un projet de moteur d'application Google maintenant. Dans mon application, je ne dois autoriser que le protocole https. Et je dois restreindre d'autres protocoles. Il ne devrait autoriser que https. J'ai ajouté le code ci-dessous dans 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>
Mais après le déploiement, cela fonctionne sur les deux protocoles (http et https). Comment restreindre http?
Il est possible de configurer les gestionnaires individuels pour qu'ils requièrent HTTPS dans le fichier app.yaml du dossier WEB-INF, comme décrit ci-après: Configuration de l'application Java à l'aide de app.yaml - Google App Engine .
Il vous suffit d'ajouter ces deux mots à votre fichier app.yaml
sous l'entrée url
appropriée:secure: always
Par exemple:
- url: .*
script: main.app
secure: always
Ensuite, si un utilisateur tente d'accéder à l'URL avec HTTP, il sera automatiquement redirigé vers HTTPS. Plutôt cool.
Si vous souhaitez utiliser "web.xml" plutôt que l'option "app.yaml" (qui écrasera vos fichiers web.xml et appengine-web.xml au moment du déploiement), vous pouvez ajouter:
<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>
Référence: https://cloud.google.com/appengine/docs/Java/config/webxml#Security_and_Authentication
Utilisez-vous votre propre domaine? Actuellement, GAE prend en charge SSL pour les domaines * .appspot.com only . Ils supportent prometteuse / SSL depuis quelques temps déjà et nous attendons tous des nouvelles à ce sujet.
Ceci est pour les futurs gens !!!
En Java l'ajout du code ci-dessous dans mon fichier web.xml
a fonctionné pour moi
<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>
Pour un autre projet, ajoutez secure: always
sous toutes les URL du fichier app.yaml
Ajoutez ceci à votre fichier 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>