Differenze tra le versioni di "Tomcatxx"

Da WikiSitech.
Vai alla navigazioneVai alla ricerca
Riga 2: Riga 2:
  
 
== Configurazione tramite file parametri [http://java.sun.com/products/jndi/ JNDI] ==
 
== Configurazione tramite file parametri [http://java.sun.com/products/jndi/ JNDI] ==
<code>
+
<syntaxhighlight lang="properties">
 
<Environment description="Cartella file di configurazione ..."  
 
<Environment description="Cartella file di configurazione ..."  
 
name="url/com.netsitech.myapp.urlConfig"
 
name="url/com.netsitech.myapp.urlConfig"
 
type="java.lang.String"
 
type="java.lang.String"
 
value="file:///C:/Programmi/Sitech/myapp/config"/>
 
value="file:///C:/Programmi/Sitech/myapp/config"/>
</code>
+
</syntaxhighlight>
 
o in caso di architettura *nix
 
o in caso di architettura *nix
<code>
+
<syntaxhighlight lang="properties">
 
<Environment description="Cartella file di configurazione ..."  
 
<Environment description="Cartella file di configurazione ..."  
 
name="url/com.netsitech.myapp.urlConfig"
 
name="url/com.netsitech.myapp.urlConfig"
 
type="java.lang.String"
 
type="java.lang.String"
 
value="file:///etc/myapp/config"/>
 
value="file:///etc/myapp/config"/>
</code>
+
</syntaxhighlight>
 
<br>
 
<br>
 
== Esempio di configurazione per l'autenticazione LDAP ==
 
== Esempio di configurazione per l'autenticazione LDAP ==
 
La sezione di configurazione seguente, ma messa all'interno del tag <Engine> del file '''server.xml'''.
 
La sezione di configurazione seguente, ma messa all'interno del tag <Engine> del file '''server.xml'''.
<code>
+
<syntaxhighlight lang="properties">
 
<!-- Autenticazione Ldap Sitech -->
 
<!-- Autenticazione Ldap Sitech -->
 
<Realm className="org.apache.catalina.realm.JNDIRealm"
 
<Realm className="org.apache.catalina.realm.JNDIRealm"
Riga 30: Riga 30:
 
userSubtree="true"
 
userSubtree="true"
 
userRoleName="memberOf" />
 
userRoleName="memberOf" />
</code>
+
</syntaxhighlight>
 
<br>
 
<br>
 
E' importante ricordare che, nel caso particolare di ActiveDirectory, in corrispondenza della voce '''memberOf''', verranno elencati solo i gruppi secondari per l'utente. Come conseguenza di questo comportamento, è importante che il gruppo principale di assegnazione di ogni account, sia diverso da quello utilizzato per verificare le crednziali di autenticazione.<br>
 
E' importante ricordare che, nel caso particolare di ActiveDirectory, in corrispondenza della voce '''memberOf''', verranno elencati solo i gruppi secondari per l'utente. Come conseguenza di questo comportamento, è importante che il gruppo principale di assegnazione di ogni account, sia diverso da quello utilizzato per verificare le crednziali di autenticazione.<br>
Riga 36: Riga 36:
 
La configurazione per ottenere l'autenticazione va completata con alcune righe nel descrittore (file web.xml) della web application.<br>
 
La configurazione per ottenere l'autenticazione va completata con alcune righe nel descrittore (file web.xml) della web application.<br>
 
In particolare vanno aggiunte le seguenti righe:
 
In particolare vanno aggiunte le seguenti righe:
<code>
+
<syntaxhighlight lang="properties">
 
<security-constraint>
 
<security-constraint>
 
<web-resource-collection>
 
<web-resource-collection>
Riga 61: Riga 61:
 
</security-role>
 
</security-role>
  
</code>
+
</syntaxhighligth>
 
<br>
 
<br>
 
Le righe sopra esposte, fanno si che il sito pubblico in questione, contenga una cartella protetta individuata dal prefisso ''/areaprotetta'' all'interno della quale, ogni file (''/*'') è soggetto al controllo di autenticazione.<br>
 
Le righe sopra esposte, fanno si che il sito pubblico in questione, contenga una cartella protetta individuata dal prefisso ''/areaprotetta'' all'interno della quale, ogni file (''/*'') è soggetto al controllo di autenticazione.<br>
Riga 71: Riga 71:
 
Per proteggere una cartella è necessario creare un security-descriptor nel file '''web.xml'''.<br>
 
Per proteggere una cartella è necessario creare un security-descriptor nel file '''web.xml'''.<br>
 
Ecco un esempio di security descriptor
 
Ecco un esempio di security descriptor
<code xml>
+
<syntaxhighlight lang="xml">
 
   <!-- Define a Security Constraint on this Application -->
 
   <!-- Define a Security Constraint on this Application -->
 
   <security-constraint>
 
   <security-constraint>
Riga 94: Riga 94:
 
     <role-name>reserved</role-name>
 
     <role-name>reserved</role-name>
 
   </security-role>
 
   </security-role>
</code>
+
</syntaxhighligth>
 
Questo va bene nel caso in cui la cartella da proteggere appartenga ad un contesto (Context) già definito.<br>
 
Questo va bene nel caso in cui la cartella da proteggere appartenga ad un contesto (Context) già definito.<br>
 
Nel caso invece in cui si possa definire un contesto specifico per la cartella da proteggere, si può procedere come segue:
 
Nel caso invece in cui si possa definire un contesto specifico per la cartella da proteggere, si può procedere come segue:

Versione delle 10:46, 9 mag 2016

Tomcat 5.5x - Appunti di gestione/configurazione

Configurazione tramite file parametri JNDI

<Environment description="Cartella file di configurazione ..." 
			 name="url/com.netsitech.myapp.urlConfig"
			 type="java.lang.String"
			 value="file:///C:/Programmi/Sitech/myapp/config"/>

o in caso di architettura *nix

<Environment description="Cartella file di configurazione ..." 
			 name="url/com.netsitech.myapp.urlConfig"
			 type="java.lang.String"
			 value="file:///etc/myapp/config"/>


Esempio di configurazione per l'autenticazione LDAP

La sezione di configurazione seguente, ma messa all'interno del tag <Engine> del file server.xml.

<!-- Autenticazione Ldap Sitech -->
<Realm className="org.apache.catalina.realm.JNDIRealm"
	debug="99"
	connectionName="account-per-bind"
	connectionPassword="password-account-per-bind"
	connectionURL="ldap://ldap.server.dominio:389"
	referrals="follow"
	userBase="DC=2ndlevel-domain,DC=domain,DC=toplevel"
	userSearch="(sAMAccountName={0})"
	userSubtree="true"
	userRoleName="memberOf" />


E' importante ricordare che, nel caso particolare di ActiveDirectory, in corrispondenza della voce memberOf, verranno elencati solo i gruppi secondari per l'utente. Come conseguenza di questo comportamento, è importante che il gruppo principale di assegnazione di ogni account, sia diverso da quello utilizzato per verificare le crednziali di autenticazione.

La configurazione per ottenere l'autenticazione va completata con alcune righe nel descrittore (file web.xml) della web application.
In particolare vanno aggiunte le seguenti righe: <syntaxhighlight lang="properties"> <security-constraint> <web-resource-collection> <web-resource-name>Accesso all'area protetta del sito</web-resource-name> <url-pattern>/areaprotetta/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>CN=Utenti area protetta,OU=unita-organizzativa,DC=2ndevel-domain,DC=domain,DC=topleve</role-name> </auth-constraint> </security-constraint>

<login-config> <auth-method>BASIC</auth-method> <realm-name>Descrizione del realm</realm-name> </login-config>

<security-role> <description> Ruolo richiesto per l'accesso all'area protetta del sito </description> <role-name>CN=Utenti area protetta,OU=ufficio sviluppo,DC=2ndevel-domain,DC=domain,DC=topleve</role-name> </security-role>

</syntaxhighligth>
Le righe sopra esposte, fanno si che il sito pubblico in questione, contenga una cartella protetta individuata dal prefisso /areaprotetta all'interno della quale, ogni file (/*) è soggetto al controllo di autenticazione.
Saranno ammessi a quest'area tutti gli utenti per i quali esiste una definizione in AD (ldap) che preveda l'appartenenza al gruppo di protezione Utenti area protetta, dell'unità organizzativa ufficio sviluppo appartenente al dominio 2ndlevel.domain.toplevel.

Abilitare/Disabilitare il Directory Listing

Accedere al file web.xml presente nella cartella di configurazione dell'installazione Tomcat e impostare il valore del parametro listings al valore true o false.

Proteggere una cartella

Per proteggere una cartella è necessario creare un security-descriptor nel file web.xml.
Ecco un esempio di security descriptor <syntaxhighlight lang="xml">

 <security-constraint>
   <web-resource-collection>
     <web-resource-name>Descrizione della cartella da proteggere</web-resource-name>
     <url-pattern>/cartella-da-proteggere/*</url-pattern>
   </web-resource-collection>
   <auth-constraint>
     <role-name>reserved</role-name>
   </auth-constraint>
 </security-constraint>
 <login-config>
   <auth-method>BASIC</auth-method>
   <realm-name>Messaggio che vogliamo che compaia nella dialog di logon</realm-name>
 </login-config>
 <security-role>
   <description>Ruolo necessario per accedere alla cartella protetta</description>
   <role-name>reserved</role-name>
 </security-role>

</syntaxhighligth> Questo va bene nel caso in cui la cartella da proteggere appartenga ad un contesto (Context) già definito.
Nel caso invece in cui si possa definire un contesto specifico per la cartella da proteggere, si può procedere come segue:

  1. Creare il nuovo Context

<Context path="/cartella-da-proteggere" docBase="${catalina.home}/folder-da-proteggere" privileged="true" allowLinking="true" >

 <Valve className="org.apache.catalina.valves.RemoteAddrValve"
   allow="172.16.0.*, 10.*" deny="10.172.16.*"/>

</Context>

  1. Posizionarsi nella cartella identificata da ${catalina.home}/folder-da-proteggere
  2. Creare una cartella di nome WEB-INF
  3. Creare all'interno di questa un file web.xml il cui contenuto è il seguente:

<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID"

        version="2.4"
        xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 <display-name>Nome-Contesto</display-name>
 <description>Breve descrizione del contesto</description>
 <security-constraint>
   <web-resource-collection>
     <web-resource-name>Descrizione del contesto da proteggere</web-resource-name>
     <url-pattern>/*</url-pattern>
   </web-resource-collection>
   <auth-constraint>
     <role-name>reserved</role-name>
   </auth-constraint>
 </security-constraint>
 <login-config>
   <auth-method>BASIC</auth-method>
   <realm-name>Messaggio che vogliamo che compaia nella dialog di logon</realm-name>
 </login-config>
 <security-role>
   <description>Ruolo necessario per accedere al contesto protetto</description>
   <role-name>reserved</role-name>
 </security-role>

</web-app>