Protección del servlet HTTP

El servlet HTTP es un componente J2EE que maneja los envíos HTTP de entrada. Para proteger el servlet HTTP, en primer lugar debe proteger el enterprise bean. Puede utilizar la autenticación básica HTTP para proteger el servlet HTTP. Los usuarios autorizados, con nombre de usuario y contraseña válidos puede enviar una transacción XML al sistema.

Acerca de esta tarea

Para habilitar la autenticación básica HTTP, modifique el archivo web.xml de la aplicación Web:

  • Elimine los comentarios de la sección <security-constraint> de los servlets de integración. Existen tres secciones <security-constraint>, una para cada tipo de servicio: servicio empresarial, servicio de estructura de objeto y servicio estándar.

La correlación &amp;lt;web-resource-name> a servicio es:

<web-resource-name> Servicio
Servlet de servicio empresarial Servicio empresarial
Servlet de servicio de aplicación Servicio estándar
Servlet de servicio de estructura de objeto Servicio de estructura de objeto

Procedimiento

  1. En el archivo web.xml, descomente las secciones de restricciones de seguridad para cada tipo de servicio, como en el ejemplo de código siguiente:
    <!--    
    <security-constraint>
    <web-resource-collection>
    <web-resource-name>Enterprise Service Servlet</web-resource-name>
    <description>
      Enterprise Service Servlet (HTTP POST) accessible by authorized users
    </description>
    <url-pattern>/es/*</url-pattern>
    <url-pattern>/esqueue/*</url-pattern>
    <http-method>GET</http-method>
    <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
    <description>
      Roles that have access to Enterprise Service Servlet (HTTP POST)
    </description>
    <role-name>maximouser</role-name>
    </auth-constraint>
    <user-data-constraint>
    <description>data transmission gaurantee</description>
    <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
    </security-constraint>
    
    <security-constraint>
    <web-resource-collection>
    <web-resource-name>App Service Servlet</web-resource-name>
    <description>
      App Service Servlet (HTTP POST) accessible by authorized users
    </description>
    <url-pattern>/ss/*</url-pattern>
    <http-method>GET</http-method>
    <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
    <description>
      Roles that have access to App Service Servlet (HTTP POST)
    </description>
    <role-name>maximouser</role-name>
    </auth-constraint>
    <user-data-constraint>
    <description>data transmission gaurantee</description>
    <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
    </security-constraint>
    
    <security-constraint>
    <web-resource-collection>
    <web-resource-name>Object Structure Service Servlet</web-resource-name>
    <description>
      Object Structure Service Servlet (HTTP POST) accessible by authorized users
    </description>
    <url-pattern>/os/*</url-pattern>
    <http-method>GET</http-method>
    <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
    <description>
      Roles that have access to Object Structure Service Servlet (HTTP POST)
    </description>
    <role-name>maximouser</role-name>
    </auth-constraint>
    <user-data-constraint>
    <description>data transmission gaurantee</description>
    <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
        </security-constraint>
    
        --> 
  2. Verifique que la sección <security-role> del archivo web.xml no esté marcada como comentario, como en el código de ejemplo siguiente:
    <security-role>
      <description>An Integration User</description>
      <role-name>maximouser</role-name>
    </security-role>
  3. Cambie el valor de 0 a 1 en la sección <env-entry-name> de useAppServerSecurity, como en el ejemplo siguiente:
    <description>
      Indicates whether to use Application Server security or not
    </description>
    <env-entry-name>useAppServerSecurity</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>1</env-entry-value>
    </env-entry>

Qué hacer a continuación

Puede desplegar con seguridad un servicio web utilizando SSL (Secure Socket Layer) para envíos HTTPS. Configure SSL en el servidor de aplicaciones con los certificados digitales adecuados.