2011-03-20 17 views
24

estoy en un proyecto de Google App Engine ahora. En mi aplicación, tengo que permitir solo el protocolo https. Y tengo que restringir otros protocolos. Solo debe permitir https. He agregado el siguiente código en web.xml.https sólo en motor de aplicación de Google

<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> 

Pero después de la implementación, funciona tanto en los protocolos (http y https). Cómo restringir http?

+0

¿Está probando la misma versión de la aplicación se implementó a? ¿Has intentado eliminar el ""? –

+0

Estoy probando la misma versión que implementé. No lo he probado eliminando el nombre del recurso web. Déjame intentarlo ahora. Gracias. – DonX

Respuesta

4

¿Está utilizando su propio dominio? En la actualidad, GAE soporta SSL para * .appspot.com dominios only. Han sido promising soporte SSL para dominios no AppSpot desde hace algún tiempo y todos estamos esperando noticias en ese frente.

+2

SSL para un dominio personalizado se apoya ahora https://support.google.com/a/answer/2644334?hl=en~~V~~singular~~3rd –

47

Es posible configurar los manejadores individuales para que requieran HTTPS en el archivo app.yaml en la carpeta WEB-INF como se describe aquí: Java Application Configuration Using app.yaml - Google App Engine.

Sólo tiene que añadir estas dos palabras a su archivo app.yaml bajo la apropiada url entrada:
secure: always

Por ejemplo:

- url: .* 
    script: main.app 
    secure: always 

Entonces, si un usuario intenta acceder a la dirección URL con HTTP ella será redirigida automáticamente a HTTPS. Muy genial.

+0

Parece que el soporte SSL para se han añadido para GAE ahora dominios personalizados. Gracias por la https://developers.google.com/appengine/docs/ssl?hl=fr: segura: siempre forma parte –

+0

Gracias por el comentario. Se eliminó ese párrafo (ya que la anotación no está disponible aquí). – zengabor

+0

¿Puedo ejecutar una aplicación en GAE sin SSL? – Pokuri

10

Si desea continuar con "web.xml" en lugar de utilizar la opción "app.yaml" (que sobrescribirá sus archivos web.xml & appengine-web.xml en el momento de la implementación), puede agregar:

<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> 

Referencia: https://cloud.google.com/appengine/docs/java/config/webxml#Security_and_Authentication

0

Agregue esto a su archivo 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> 
Cuestiones relacionadas