Author: nico.ben
Date: 2009-06-17 10:06:06 -0400 (Wed, 17 Jun 2009)
New Revision: 11170
Modified:
branches/community/Seam_2_2/doc/Seam_Reference_Guide/it-IT/Security.po
Log:
Italian translation
Modified: branches/community/Seam_2_2/doc/Seam_Reference_Guide/it-IT/Security.po
===================================================================
--- branches/community/Seam_2_2/doc/Seam_Reference_Guide/it-IT/Security.po 2009-06-16
23:35:05 UTC (rev 11169)
+++ branches/community/Seam_2_2/doc/Seam_Reference_Guide/it-IT/Security.po 2009-06-17
14:06:06 UTC (rev 11170)
@@ -6,7 +6,7 @@
"Project-Id-Version: Security\n"
"Report-Msgid-Bugs-To:
http://bugs.kde.org\n"
"POT-Creation-Date: 2009-06-11 18:45+0000\n"
-"PO-Revision-Date: 2009-06-11 22:41+0100\n"
+"PO-Revision-Date: 2009-06-17 16:05+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: it <stefano.travelli(a)gmail.com>\n"
"MIME-Version: 1.0\n"
@@ -133,7 +133,7 @@
#: Security.xml:97
#, no-c-format
msgid "The authentication features provided by Seam Security are built upon JAAS
(Java Authentication and Authorization Service), and as such provide a robust and highly
configurable API for handling user authentication. However, for less complex
authentication requirements Seam offers a much more simplified method of authentication
that hides the complexity of JAAS."
-msgstr "Le caratteristiche relative all'autenticazione nella gestione della
sicurezza di Seam sono costruite su JAAS (Java Authentication and Authorization Service,
servizio di autenticazione e autorizzazione Java) e, come tali, forniscono una API robusta
e altamente configurabile per gestire l'autentifica degli utenti. Comunque, per
requisiti di autentifica meno complessi, Seam offre un metodo di autentifica molto
semplificato che nasconde la complessità di JAAS."
+msgstr "Le caratteristiche relative all'autenticazione nella gestione della
sicurezza di Seam sono costruite su JAAS (Java Authentication and Authorization Service,
servizio di autenticazione e autorizzazione Java) e, come tali, forniscono una API robusta
e altamente configurabile per gestire l'autenticazione degli utenti. Comunque, per
requisiti di autenticazione meno complessi, Seam offre un metodo di autenticazione molto
semplificato che nasconde la complessità di JAAS."
#. Tag: title
#: Security.xml:104
@@ -151,7 +151,7 @@
#: Security.xml:113
#, no-c-format
msgid "The simplified authentication method provided by Seam uses a built-in JAAS
login module, <literal>SeamLoginModule</literal>, which delegates
authentication to one of your own Seam components. This login module is already configured
inside Seam as part of a default application policy and as such does not require any
additional configuration files. It allows you to write an authentication method using the
entity classes that are provided by your own application, or alternatively to authenticate
with some other third party provider. Configuring this simplified form of authentication
requires the <literal>identity</literal> component to be configured in
<literal>components.xml</literal>:"
-msgstr "Il metodo di autenticazione semplificato fornito da Seam usa un modulo di
login JAAS già fatto, <literal>SeamLoginModule</literal>, il quale delega
l'autentifica ad uno dei componenti dell'applicazione. Questo modulo di login è
già configurato all'interno di Seam come parte dei criteri di gestione di default e in
quanto tale non richiede alcun file di configurazione aggiuntivo. Esso consente di
scrivere un metodo di autentifica usando le classi entità che sono fornite
dall'applicazione o, in alternativa, di esegure l'autentifica con qualche altro
fornitore di terze parti. Per configurare questa forma semplificata di autentifica è
richiesto di di configurare il componente <literal>Identity</literal> in
<literal>components.xml</literal>:"
+msgstr "Il metodo di autenticazione semplificato fornito da Seam usa un modulo di
login JAAS già fatto, <literal>SeamLoginModule</literal>, il quale delega
l'autenticazione ad uno dei componenti dell'applicazione. Questo modulo di login è
già configurato all'interno di Seam come parte dei criteri di gestione di default e in
quanto tale non richiede alcun file di configurazione aggiuntivo. Esso consente di
scrivere un metodo di autenticazione usando le classi entità che sono fornite
dall'applicazione o, in alternativa, di esegure l'autenticazione con qualche altro
fornitore di terze parti. Per configurare questa forma semplificata di autentifica è
richiesto di di configurare il componente <literal>Identity</literal> in
<literal>components.xml</literal>:"
#. Tag: programlisting
#: Security.xml:122
@@ -197,7 +197,7 @@
#: Security.xml:135
#, no-c-format
msgid "The <literal>authenticate-method</literal> property specified for
<literal>identity</literal> in <literal>components.xml</literal>
specifies which method will be used by <literal>SeamLoginModule</literal> to
authenticate users. This method takes no parameters, and is expected to return a boolean,
which indicates whether authentication is successful or not. The user's username and
password can be obtained from <literal>Credentials.getUsername()</literal> and
<literal>Credentials.getPassword()</literal>, respectively (you can get a
reference to the <literal>credentials</literal> component via
<literal>Identity.instance().getCredentials()</literal>). Any roles that the
user is a member of should be assigned using
<literal>Identity.addRole()</literal>. Here's a complete example of an
authentication method inside a POJO component:"
-msgstr "La proprietà <literal>authenticate-method</literal> specificata
per <literal>identity</literal> in
<literal>components.xml</literal> specifica quale metodo sarà usato dal
<literal>SeamLoginModule</literal> per autenticare l'utente. Questo metodo
non ha parametri ed è previsto che restituisca un boolean, il quale indica se
l'autenticazione ha avuto successo o no. Il nome utente e la password possono essere
ottenuti da <literal>Credentials.getUsername()</literal> e
<literal>Credentials.getPassword()</literal> rispettivamente (è possibile
avere un riferimento al componente <literal>credentials</literal> tramite
<literal>Identity.instance().getCredentials()</literal>). Tutti i ruoli di cui
l'utente è membro devono essere assegnati usando
<literal>Identity.addRole()</literal>. Ecco un esempio completo di un metodo
di autentifica all'interno di un componente POJO:"
+msgstr "La proprietà <literal>authenticate-method</literal> specificata
per <literal>identity</literal> in
<literal>components.xml</literal> specifica quale metodo sarà usato dal
<literal>SeamLoginModule</literal> per autenticare l'utente. Questo metodo
non ha parametri ed è previsto che restituisca un boolean, il quale indica se
l'autenticazione ha avuto successo o no. Il nome utente e la password possono essere
ottenuti da <literal>Credentials.getUsername()</literal> e
<literal>Credentials.getPassword()</literal> rispettivamente (è possibile
avere un riferimento al componente <literal>credentials</literal> tramite
<literal>Identity.instance().getCredentials()</literal>). Tutti i ruoli di cui
l'utente è membro devono essere assegnati usando
<literal>Identity.addRole()</literal>. Ecco un esempio completo di un metodo
di autenticazione all'interno di un componente POJO:"
#. Tag: programlisting
#: Security.xml:147
@@ -265,13 +265,13 @@
#: Security.xml:149
#, no-c-format
msgid "In the above example, both <literal>User</literal> and
<literal>UserRole</literal> are application-specific entity beans. The
<literal>roles</literal> parameter is populated with the roles that the user
is a member of, which should be added to the <literal>Set</literal> as literal
string values, e.g. \"admin\", \"user\". In this case, if the user
record is not found and a <literal>NoResultException</literal> thrown, the
authentication method returns <literal>false</literal> to indicate the
authentication failed."
-msgstr "Nell'esempio precedente sia <literal>User</literal> che
<literal>UserRole</literal> sono entity bean specifici dell'applicazione.
Il parametro <literal>roles</literal> è popolato con i ruoli di cui
l'utente è membro, che devono essere aggiunti alla <literal>Set</literal>
come valori stringa, ad esempio \"amministratore\", \"utente\". In
questo caso, se il record dell'utente non viene trovato e una
<literal>NoResultException</literal> viene lanciata, il metodo di
autenticazione restituisce <literal>false</literal> per indicare che
l'autentifica è fallita."
+msgstr "Nell'esempio precedente sia <literal>User</literal> che
<literal>UserRole</literal> sono entity bean specifici dell'applicazione.
Il parametro <literal>roles</literal> è popolato con i ruoli di cui
l'utente è membro, che devono essere aggiunti alla <literal>Set</literal>
come valori stringa, ad esempio \"amministratore\", \"utente\". In
questo caso, se il record dell'utente non viene trovato e una
<literal>NoResultException</literal> viene lanciata, il metodo di
autenticazione restituisce <literal>false</literal> per indicare che
l'autenticazione è fallita."
#. Tag: para
#: Security.xml:158
#, no-c-format
msgid "When writing an authenticator method, it is important that it is kept minimal
and free from any side-effects. This is because there is no guarantee as to how many times
the authenticator method will be called by the security API, and as such it may be invoked
multiple times during a single request. Because of this, any special code that should
execute upon a successful or failed authentication should be written by implementing an
event observer. See the section on Security Events further down in this chapter for more
information about which events are raised by Seam Security."
-msgstr "Nella scrittura di metodo di autenticazione è importante ridurlo al minimo e
libero da ogni effetto collaterale. Il motivo è che non c'è garanzia sul numero di
volte che il metodo di autentifica può essere chiamato dalle API della sicurezza, di
conseguenza esso potrebbe essere invocato più volte durante una singola richiesta. Perciò
qualsiasi codice che si vuole eseguire in seguito ad una autentifica fallita o completata
con successo dovrebbe essere scritto implementando un observer. Vedi il paragrafo sugli
Eventi di Sicurezza più avanti in questo capitolo per maggiori informazioni su quali
eventi sono emessi dalla gestione della sicurezza Seam."
+msgstr "Nella scrittura di metodo di autenticazione è importante ridurlo al minimo e
libero da ogni effetto collaterale. Il motivo è che non c'è garanzia sul numero di
volte che il metodo di autenticazione può essere chiamato dalle API della sicurezza, di
conseguenza esso potrebbe essere invocato più volte durante una singola richiesta. Perciò
qualsiasi codice che si vuole eseguire in seguito ad una autenticazione fallita o
completata con successo dovrebbe essere scritto implementando un observer. Vedi il
paragrafo sugli Eventi di Sicurezza più avanti in questo capitolo per maggiori
informazioni su quali eventi sono emessi dalla gestione della sicurezza Seam."
#. Tag: title
#: Security.xml:170
@@ -283,7 +283,7 @@
#: Security.xml:172
#, no-c-format
msgid "The <literal>Identity.addRole()</literal> method behaves
differently depending on whether the current session is authenticated or not. If the
session is not authenticated, then <literal>addRole()</literal> should
<emphasis>only</emphasis> be called during the authentication process. When
called here, the role name is placed into a temporary list of pre-authenticated roles.
Once authentication is successful, the pre-authenticated roles then become
\"real\" roles, and calling <literal>Identity.hasRole()</literal>
for those roles will then return true. The following sequence diagram represents the list
of pre-authenticated roles as a first class object to show more clearly how it fits in to
the authentication process."
-msgstr "Il metodo <literal>Identity.addRole()</literal> si comporta in
modo diverso a seconda che la sessione corrente sia autenticata o meno. Se la sessione non
è autenticata, allora <literal>addRole()</literal> dovrebbe essere chiamato
<emphasis>solo</emphasis> durante il processo di autenticazione. Quando viene
chiamato in questo contesto, il nome del ruolo è messo in una lista temporanea di ruoli
pre autenticati. Una volta che l'autentifica è completata i ruoli pre autenticati
diventano ruoli \"reali\" e chiamando
<literal>Identity.hasRole()</literal> per questi ruoli si otterrà
<literal>true</literal>. Il seguente diagramma di sequenza rappresenta la
lista dei ruoli pre autenticati come oggetto in primo piano per mostrare più chiaramente
come si inserisce nel processo di autentifica."
+msgstr "Il metodo <literal>Identity.addRole()</literal> si comporta in
modo diverso a seconda che la sessione corrente sia autenticata o meno. Se la sessione non
è autenticata, allora <literal>addRole()</literal> dovrebbe essere chiamato
<emphasis>solo</emphasis> durante il processo di autenticazione. Quando viene
chiamato in questo contesto, il nome del ruolo è messo in una lista temporanea di ruoli
pre autenticati. Una volta che l'autenticazione è completata i ruoli pre autenticati
diventano ruoli \"reali\" e chiamando
<literal>Identity.hasRole()</literal> per questi ruoli si otterrà
<literal>true</literal>. Il seguente diagramma di sequenza rappresenta la
lista dei ruoli pre autenticati come oggetto in primo piano per mostrare più chiaramente
come si inserisce nel processo di autenticazione."
#. Tag: para
#: Security.xml:192
@@ -341,7 +341,7 @@
#: Security.xml:221
#, no-c-format
msgid "The <literal>credentials</literal> component provides both
<literal>username</literal> and <literal>password</literal>
properties, catering for the most common authentication scenario. These properties can be
bound directly to the username and password fields on a login form. Once these properties
are set, calling <literal>identity.login()</literal> will authenticate the
user using the provided credentials. Here's an example of a simple login form:"
-msgstr "Il componente <literal>credentials</literal> fornisce sia la
proprietà <literal>username</literal> che la
<literal>password</literal>, soddisfacendo lo scenario di autenticazione più
comune. Queste proprietà possono essere collegate direttamente ai campi username e
password di una form di accesso. Una volta che queste proprietà sono impostate, chiamando
<literal>identity.login()</literal> si otterrà l'autentifica
dell'utente usando le credenziali fornite. Ecco un esempio di una semplice form di
accesso: "
+msgstr "Il componente <literal>credentials</literal> fornisce sia la
proprietà <literal>username</literal> che la
<literal>password</literal>, soddisfacendo lo scenario di autenticazione più
comune. Queste proprietà possono essere collegate direttamente ai campi username e
password di una form di accesso. Una volta che queste proprietà sono impostate, chiamando
<literal>identity.login()</literal> si otterrà l'autenticazione
dell'utente usando le credenziali fornite. Ecco un esempio di una semplice form di
accesso: "
#. Tag: programlisting
#: Security.xml:229
@@ -433,7 +433,7 @@
#: Security.xml:280
#, no-c-format
msgid "Automatic client authentication with a persistent cookie stored on the client
machine is dangerous. While convenient for users, any cross-site scripting security hole
in your website would have dramatically more serious effects than usual. Without the
authentication cookie, the only cookie to steal for an attacker with XSS is the cookie of
the current session of a user. This means the attack only works when the user has an open
session - which should be a short timespan. However, it is much more attractive and
dangerous if an attacker has the possibility to steal a persistent Remember Me cookie that
allows him to login without authentication, at any time. Note that this all depends on how
well you protect your website against XSS attacks - it's up to you to make sure that
your website is 100% XSS safe - a non-trival achievement for any website that allows user
input to be rendered on a page."
-msgstr "L'autenticazione automatica tramite un cookie persistente memorizzato
sulla macchina client è pericolosa. Benché sia conveniente per gli utenti, qualsiasi
debolezza nella sicurezza che consenta un cross-site scripting nel sito avrebbe effetti
drammaticamente più gravi del solito. Senza il cookie di autentifica, il solo cookie che
un malintenzionato può prelevare tramite un attacco XSS è il cookie della sessione
corrente dell'utente. Ciò significa che l'attacco funziona solo quando
l'utente ha una sessione aperta, ovvero per un intervallo di tempo limitato. Al
contrario è molto più allettante e pericoloso se un malintenzionato ha la possibilità di
prelevare il cookie relativo alla funzione \"Ricordami su questo computer\", il
quale gli consentirebbe di accedere senza autentifica ogni volta che vuole. Notare che
questo dipende anche da quanto è efficace la protezione del sito dagli attacchi XSS. Sta a
chi scrive l'applicazione fare in modo che il sito sia si!
curo al 100% dagli attacchi XSS, un obiettivo non banale per qualsiasi sito che consente
di rappresentare sulle pagine un contenuto scritto dagli utenti."
+msgstr "L'autenticazione automatica tramite un cookie persistente memorizzato
sulla macchina client è pericolosa. Benché sia conveniente per gli utenti, qualsiasi
debolezza nella sicurezza che consenta un cross-site scripting nel sito avrebbe effetti
drammaticamente più gravi del solito. Senza il cookie di autenticazione, il solo cookie
che un malintenzionato può prelevare tramite un attacco XSS è il cookie della sessione
corrente dell'utente. Ciò significa che l'attacco funziona solo quando
l'utente ha una sessione aperta, ovvero per un intervallo di tempo limitato. Al
contrario è molto più allettante e pericoloso se un malintenzionato ha la possibilità di
prelevare il cookie relativo alla funzione \"Ricordami su questo computer\", il
quale gli consentirebbe di accedere senza autenticazione ogni volta che vuole. Notare che
questo dipende anche da quanto è efficace la protezione del sito dagli attacchi XSS. Sta a
chi scrive l'applicazione fare in modo che il sito !
sia sicuro al 100% dagli attacchi XSS, un obiettivo non banale per qualsiasi sito che
consente di rappresentare sulle pagine un contenuto scritto dagli utenti."
#. Tag: para
#: Security.xml:291
@@ -807,7 +807,7 @@
#: Security.xml:450
#, no-c-format
msgid "Although not recommended for use unless absolutely necessary, Seam provides
means for authenticating using either HTTP Basic or HTTP Digest (RFC 2617) methods. To use
either form of authentication, the <literal>authentication-filter</literal>
component must be enabled in components.xml:"
-msgstr "Benché l'uso non sia raccomandato a meno che non sia assolutamente
necessario, Seam fornisce gli strumenti per l'autenticazione in HTTP sia con metodo
Basic che Digest (RFC 2617). Per usare entrambe le forme di autentifica, occorre abilitare
il componente <literal>authentication-filter</literal> in
<literal>components.xml</literal>:"
+msgstr "Benché l'uso non sia raccomandato a meno che non sia assolutamente
necessario, Seam fornisce gli strumenti per l'autenticazione in HTTP sia con metodo
Basic che Digest (RFC 2617). Per usare entrambe le forme di autenticazione, occorre
abilitare il componente <literal>authentication-filter</literal> in
<literal>components.xml</literal>:"
#. Tag: programlisting
#: Security.xml:456
@@ -825,7 +825,7 @@
#: Security.xml:458
#, no-c-format
msgid "To enable the filter for basic authentication, set
<literal>auth-type</literal> to <literal>basic</literal>, or for
digest authentication, set it to <literal>digest</literal>. If using digest
authentication, the <literal>key</literal> and
<literal>realm</literal> must also be set:"
-msgstr "Per abilitare il filtro per l'autenticazione Basic impostare
<literal>auth-type</literal> a <literal>basic</literal>, oppure
per l'autentifica Digest, impostarlo a <literal>digest</literal>. Se si
usa l'autentifica Digest, occorre impostare anche un valore per
<literal>key</literal> e <literal>realm</literal>:"
+msgstr "Per abilitare il filtro per l'autenticazione Basic impostare
<literal>auth-type</literal> a <literal>basic</literal>, oppure
per l'autenticazione Digest, impostarlo a <literal>digest</literal>. Se si
usa l'autenticazione Digest, occorre impostare anche un valore per
<literal>key</literal> e <literal>realm</literal>:"
#. Tag: programlisting
#: Security.xml:464
@@ -2098,7 +2098,7 @@
#: Security.xml:1372
#, no-c-format
msgid "If you are using the Identity Management features in your Seam application,
then it is not required to provide an authenticator component (see previous Authentication
section) to enable authentication. Simply omit the
<literal>authenticator-method</literal> from the
<literal>identity</literal> configuration in
<literal>components.xml</literal>, and the
<literal>SeamLoginModule</literal> will by default use
<literal>IdentityManager</literal> to authenticate your application's
users, without any special configuration required."
-msgstr "Se in un'applicazione Seam si stanno usando le funzioni di gestione
delle identità, allora non è richiesto di fornire un componente
<literal>authenticator</literal> (vedi il precedente paragrafo Autenticazione)
per abilitare l'autentifica. Basta omettere
<literal>authenticator-method</literal> dalla configurazione di
<literal>identity</literal> in <literal>components.xml</literal> e
il <literal>SeamLoginModule</literal> userà per default
<literal>IdentityManger</literal> per autenticare gli utenti
dell'applicazione, senza nessuna configurazione speciale."
+msgstr "Se in un'applicazione Seam si stanno usando le funzioni di gestione
delle identità, allora non è richiesto di fornire un componente
<literal>authenticator</literal> (vedi il precedente paragrafo Autenticazione)
per abilitare l'autenticazione. Basta omettere
<literal>authenticator-method</literal> dalla configurazione di
<literal>identity</literal> in <literal>components.xml</literal> e
il <literal>SeamLoginModule</literal> userà per default
<literal>IdentityManger</literal> per autenticare gli utenti
dell'applicazione, senza nessuna configurazione speciale."
#. Tag: title
#: Security.xml:1383
@@ -2403,7 +2403,7 @@
#: Security.xml:1744
#, no-c-format
msgid "Authenticates the specified username and password using the configured
Identity Store. Returns <literal>true</literal> if successful or
<literal>false</literal> if authentication failed. Successful authentication
implies nothing beyond the return value of the method. It does not change the state of the
<literal>Identity</literal> component - to perform a proper Seam login the
<literal>Identity.login()</literal> must be used instead."
-msgstr "Autenticazione il nome utente e la password specificati usando
l'Identity Store configurato. Restituisce <literal>true</literal> se
conclude con successo, oppure <literal>false</literal> se l'autentifica
fallisce. Il successo dell'autenticazione non implica niente oltre al valore
restituito dal metodo. Non cambia lo stato del componente
<literal>Identity</literal>. Per eseguire un vero e proprio login deve essere
invece usato il metodo <literal>Identity.login()</literal>."
+msgstr "Autenticazione il nome utente e la password specificati usando
l'Identity Store configurato. Restituisce <literal>true</literal> se
conclude con successo, oppure <literal>false</literal> se l'autenticazione
fallisce. Il successo dell'autenticazione non implica niente oltre al valore
restituito dal metodo. Non cambia lo stato del componente
<literal>Identity</literal>. Per eseguire un vero e proprio login deve essere
invece usato il metodo <literal>Identity.login()</literal>."
#. Tag: literal
#: Security.xml:1757
@@ -3916,7 +3916,7 @@
#: Security.xml:3029
#, no-c-format
msgid "Besides the <literal>PermissionCheck</literal> facts, there is
also a <literal>org.jboss.seam.security.Role</literal> fact for each of the
roles that the authenticated user is a member of. These
<literal>Role</literal> facts are synchronized with the user's
authenticated roles at the beginning of every permission check. As a consequence, any
<literal>Role</literal> object that is inserted into the working memory during
the course of a permission check will be removed before the next permission check occurs,
if the authenticated user is not actually a member of that role. Besides the
<literal>PermissionCheck</literal> and <literal>Role</literal>
facts, the working memory also contains the
<literal>java.security.Principal</literal> object that was created as a result
of the authentication process."
-msgstr "Accanto al fatto <literal>PermissionCheck</literal> c'è
anche un fatto <literal>org.jboss.seam.security.Role</literal> per ogni ruolo
di cui l'utente autenticato è membro. Questi fatti <literal>Role</literal>
sono sincronizzati con i ruoli dell'utente autenticato all'inizio di ogni
controllo di permesso. Di conseguenza qualsiasi oggetto
<literal>Role</literal> che venisse inserito nella working memory nel corso
del controllo di permesso sarebbe rimosso prima che il controllo di permesso successivo
avvenga, a meno che l'utente autenticato non sia effettivamente membro di quel ruolo.
Insieme ai fatti <literal>PermissionCheck</literal> e
<literal>Role</literal> la working memory contiene anche l'oggetto
<literal>java.security.Principal</literal> che era stato creato come risultato
del processo di autentifica."
+msgstr "Accanto al fatto <literal>PermissionCheck</literal> c'è
anche un fatto <literal>org.jboss.seam.security.Role</literal> per ogni ruolo
di cui l'utente autenticato è membro. Questi fatti <literal>Role</literal>
sono sincronizzati con i ruoli dell'utente autenticato all'inizio di ogni
controllo di permesso. Di conseguenza qualsiasi oggetto
<literal>Role</literal> che venisse inserito nella working memory nel corso
del controllo di permesso sarebbe rimosso prima che il controllo di permesso successivo
avvenga, a meno che l'utente autenticato non sia effettivamente membro di quel ruolo.
Insieme ai fatti <literal>PermissionCheck</literal> e
<literal>Role</literal> la working memory contiene anche l'oggetto
<literal>java.security.Principal</literal> che era stato creato come risultato
del processo di autenticazione."
#. Tag: para
#: Security.xml:3040