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