java - proyecto - httpOnly Session Cookie+Servlet 3.0(por ejemplo, Glassfish v3)
java web application netbeans tutorial (2)
Esto se admite a través de un web.xml
Servlet 3.0 (consulte web-common_3_0.xsd
):
<web-app>
<session-config>
<cookie-config>
<!--
Specifies whether any session tracking cookies created
by this web application will be marked as HttpOnly
-->
<http-only>true</http-only>
</cookie-config>
</session-config>
</web-app>
De forma predeterminada, Glassfish v3 no establece la marca httpOnly en las cookies de sesión (cuando se crea como es habitual con request.getSession()
).
Lo sé, hay un método javax.servlet.SessionCookieConfig.setHttpOnly()
, pero no estoy seguro, si esa es la mejor manera de hacerlo, y si es así, dónde sería el mejor lugar para poner esa línea.
Por cierto, por supuesto, no se puede hacer en el propio servlet (por ejemplo, en init ()):
java.lang.IllegalStateException: PWC1426:
Unable to configure httpOnly session tracking cookie property for
servlet context /..., because this servlet context has already been initialized
En general, preferiría usar una opción de configuración, por ejemplo, en web.xml.
También puede agregar <secure>true</secure>
para aumentar la seguridad.
<session-config>
<cookie-config>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>
</session-config>