Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sesion04 Traspas
Sesion04 Traspas
Enterprise JavaBeans
Sesión 4:
Seguridad y transacciones
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 1
Índice seguridad
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 2
Arquitectura de seguridad en J2EE
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 3
La seguridad en J2EE como abstracción
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 4
Conceptos fundamentales J2EE
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 5
Mapeado de roles
Específico
vendedor
en
despliegue
tiempo -de
del
J2EE – de
tiempo
desarrollo
en
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 6
Tipos de seguridad en EJB (1)
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 7
Tipos de seguridad (2)
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 8
Autentificación
properties.put(Context.SECURITY_PRINCIPAL, "domingo" );
properties.put(Context.SECURITY_CREDENTIALS, "dgldgldgl");
properties.put(Context.PROVIDER_URL, "t3://localhost:7001");
javax.naming.Context jndiContext =
new javax.naming.InitialContext(properties);
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 9
Autentificación 2
if (ejbContext.isCallerInRole(
"registered")) {
...
}
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 10
Autorización declarativa
<asembly-descriptor>
Declaración <security-role>
<role-name>Administrador</role-name>
de los roles <role-name>Usuario-registrado</role-name>
</security-role>
<method-permission>
<role-name>Administrador</role-name>
<role-name>Usuario-registrado</role-name>
<method>
<ejb-name>Trader</ejb-name>
<method-name>compra</method-name>
</method>
<method-permission>
...
</asembly-descriptor>
Declaración
de los permisos
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 11
Asignación de Principals a roles
<security-role-assignment>
<role-name>Administrador</role-name>
<principal-name>Administrators</principal-name>
<principal-name>dmartinez</principal-name>
</security-role-assignment>
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 12
RunAs
<security-identity>
ejb-jar.xml <run-as>EJBAppAdmin</run-as>
</security-role-assignment>
<run-as-role-assignment>
weblogic-ejb-jar.xml <role-name>EJBAppAdmin</role-name>
<run-as-principal-name>dmartinez</run-as>
</run-as-role-assignment>
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 13
Índice transacciones
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 14
Definición de transacción
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 15
Atomicidad: transferencia entre cuentas
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 16
Más carácterísticas (ACID)
Consistencia
Responsabilidad del programador
Aislamiento (o seriabilidad)
El resultado de la ejecución de un conjunto concurrente
de transacciones debe ser equivalente a una ejecución en
serie de las misma.
Los datos que participan en una transacción deben
quedar ocultos (aislados) hasta el commit.
Durabilidad
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 17
Alcance de las transacciones
Transacciones locales
Usan un único gestor de recursos, por ejemplo una transacción que
accede a una única base de datos o recurso.
Transacciones globales
Son transacciones que usan un único gestor de transacciones y más
de una gestor de recursos. Se debe usar el protocolo two-phase
commit para realizar un commit de la transacción.
Transacciones distribuidas
Son transacciones en las que intervienen más de un gestor de
transacciones. Al igual que en las transacciones globales, se usa
también el protocolo two-phase-commit para asegurar la correcta
ejecución de la transacción.
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 18
Demarcación de transacciones
try {
userTran.begin();
cliente.grabaPedido(pedido);
tarjetaCredito = cliente.tarjetaCredito();
tarjetaCredito.carga(pedido.precio);
almacen.descuenta(pedido);
userTran.commit();
}
catch (Exception e} {
userTran.rollback();
}
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 19
Transacciones y concurrencia: problemas
Instancia 1 Instancia 2
1. Leer el dato X 1. Leer el dato X
2. Sumar 10 a X 2. Sumar 10 a X
3. Escribir el dato X 3. Escribir el dato X
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 20
Two-phase blocking
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 21
Ejemplo
Instancia 1 Instancia 2
1. Bloqueo de escritura 1. Bloqueo de escritura
sobre X sobre X
2. Leer el dato X 2. Leer el dato X
3. Sumar 10 a X 3. Sumar 10 a X
4. Escribir el dato X 4. Escribir el dato X
5. Liberar X 5. Liberar X
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 22
Control optimista
Instancia 1 Instancia 2
1. Clonar X, guardando 1. Clonar X, guardando
el número de versión el número de versión
2. Sumar 10 a X 2. Sumar 10 a X
3. Si el número de versión 3. Si el número de versión
de X es el mismo que el de X es el mismo que el
del clon: escribirlo del clon: escribirlo
4. Sino: abortar la transacción 4. Sino: abortar la transacción
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 23
TP Monitor
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 24
Estándares en transacciones
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 25
Modelo DTP de X/Open
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 26
JTA
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 27
Interfaces JTA
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 28
javax.transaction.Status
STATUS_ACTIVE
STATUS_COMMITED
STATUS_COMMITTING
STATUS_MARKED_ROLLBACK
STATUS_PREPARED
STATUS_PREPARING
STATUS_ROLLEDBAC
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 29
javax.transaction.UserTransaction
void begin()
void commit()
int getStatus()
void rollback()
void setRollbackOnly()
void setTransactionTimeout
(int seconds)
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 30
Programación de transacciones con JTA
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 31
Transacciones en EJB
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 32
Propagación de transacciones
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 33
Propagación de transacciones
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 34
Atributo Required
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 35
Atributo RequiresNew
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 36
Atributo Mandatory
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Seguridad y transacciones 37