EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.
-
Upload
rodolfo-lama -
Category
Documents
-
view
223 -
download
0
Transcript of EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.
EJB 3.0Transacciones y seguridad
Tutor: Ing. Juan E. Talavera Horn
2010
Transacciones
Atomicidad (Atomicity) Consistencia (Consistency) Aislamiento (Isolation) Durabilidad (Durability)
Aplicación de usuario
Arquitectura
Transaction Manager
Resource ManagerResource Manager
2-phase commit
Tipos de transacciones
LocalHace uso de un solo resource manager
GlobalHace 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
BMTBean 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 clase4. Puede sobre escribirse el permiso a nivel de clase con uno a nivel de
método
Annotations para seguridad
@DeclareRoles @RolesAllowed @PermitAll @DenyAll @RunAs