7-_EJB_Transacciones_-_seguridad

Download Report

Transcript 7-_EJB_Transacciones_-_seguridad

EJB 3.0
Transacciones y
seguridad
Tutor: Ing. Juan E. Talavera Horn
2010
Transacciones
Atomicidad (Atomicity)
 Consistencia (Consistency)
 Aislamiento (Isolation)
 Durabilidad (Durability)

Arquitectura
Aplicación de usuario
2-phase commit
Resource Manager
Transaction Manager
Resource Manager
Tipos de transacciones

Local
Hace uso de un solo resource manager

Global
Hace uso de más de un resource manager
Estándares y protocolos

Resource Manager implementa API JTA
(Java Transaction API)

Protocolo de consumación de 2 faces: XA
protocol
Transacciones en EJB 3.0

CMT
Container Managed Transactions

BMT
Bean Managed Transactions

CMT - Container Managed Transactions
@TransactionAttribute
Estado de transacción actual
Application exception
@ApplicationException(rollback=true)
public class CreditValidationException extends Exception {
….
}
@ApplicationException(rollback=true)
public class CreditProcessingException extends Exception {
….
}
@ApplicationException(rollback=true)
public class DatabaseException extends RuntimeException {
….
}
Rollback con excepciones
public void placeSnagItOrder(Item item, Customer customer)
throws CreditValidationException, CreditProcessingException, DatabaseException
{
if (!bidsExists(item)) {
validateCredit(customer);
chargeCustomer(customre,item);
removeItemFromBidding(item);
}
}

BMT - Bean Managed Transactions
Pros y contras de BMT (1)


No necesitan iniciar y terminar exactamente con
el inicio y fin de un método. Podría ser útil para
mantener transacción entre métodos de un
stateful bean
La transacción puede durar solo el tiempo
estríctamente necesario, y no durante todo el
método que podría implicar código que no
requiera de una transacción
Pros y contras de BMT (2)
Las BMTs no pueden unirse (join) a una
transacción existente
 Las transacciones existentes son siempre
suspendidas al invocar un método que
usa BMT

Seguridad en EJB 3
Autenticación
 Autorización
 Usuario (principal)
 Grupo
 Rol
 JAAS – Java Authentication and
Authorization Service

JAAS – Escenario habitual
Autenticación y autorización en la
capa Web
Seguridad en session beans
1. Los roles pueden declararse para toda la aplicación en deployment
descriptors
2. Si no se declaran los roles, el contenedor escanea las clases en busca
de roles
3. Pueden aplicarse a nivel de clase
4. Puede sobre escribirse el permiso a nivel de clase con uno a nivel de
método
Annotations para seguridad
@DeclareRoles
 @RolesAllowed
 @PermitAll
 @DenyAll
 @RunAs
