Proteggere il servlet HTTP

La servlet HTTP è un componente J2EE che gestisce i messaggi HTTP in entrata. Per proteggere la servlet HTTP, occorre prima proteggere il bean aziendale. È possibile utilizzare l'autenticazione di base HTTP per proteggere la servlet HTTP. Gli utenti autorizzati, con nome utente e password validi, possono inviare una transazione XML al sistema.

Informazioni su questa attività

Per abilitare l'autenticazione di base HTTP, modificare il file web.xml dell'applicazione Web:

  • Rimuovere i commenti dalla sezione < security - constraint> dei servlet di integrazione. Ci sono tre sezioni < security - constraint>, una per ogni tipo di servizio: servizio aziendale, servizio della struttura oggetto e servizio standard.

L'associazione < web - resource - name> a service è:

< nome - risorsa - web> Servizio
Servlet servizio aziendale Servizio aziendale
Servlet App Service Servizio standard
Servlet servizio struttura oggetto Servizio strutt. oggetto

Procedura

  1. Nel file web.xml , annullare il commento delle sezioni dei vincoli di sicurezza per ciascun tipo di servizio, come nel seguente esempio di codice:
    <!--    
    <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. Verificare che la sezione < security - role> nel file web.xml non sia commentata, come nel seguente codice di esempio:
    <security-role>
      <description>An Integration User</description>
      <role-name>maximouser</role-name>
    </security-role>
  3. Modificare il valore da 0 a 1 nella sezione useAppServerSecurity <env-entry-name>, come nell'esempio seguente:
    <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>

Operazioni successive

È possibile distribuire un servizio Web in modo sicuro utilizzando un Secure Socket Layer (SSL) per i messaggi HTTPS. Configurare SSL sul server delle applicazioni con i certificati digitali appropriati.