EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

21
EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010

Transcript of EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

Page 1: 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

Page 2: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

Transacciones

Atomicidad (Atomicity) Consistencia (Consistency) Aislamiento (Isolation) Durabilidad (Durability)

Page 3: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

Aplicación de usuario

Arquitectura

Transaction Manager

Resource ManagerResource Manager

2-phase commit

Page 4: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

Tipos de transacciones

LocalHace uso de un solo resource manager

GlobalHace uso de más de un resource manager

Page 5: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

Estándares y protocolos

Resource Manager implementa API JTA (Java Transaction API)

Protocolo de consumación de 2 faces: XA protocol

Page 6: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

Transacciones en EJB 3.0

CMT Container Managed Transactions

BMTBean Managed Transactions

Page 7: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

CMT - Container Managed Transactions

Page 8: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.
Page 9: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

@TransactionAttribute

Page 10: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

Estado de transacción actual

Page 11: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

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 {….}

Page 12: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

Rollback con excepciones

public void placeSnagItOrder(Item item, Customer customer) throws CreditValidationException, CreditProcessingException, DatabaseException {

if (!bidsExists(item)) {validateCredit(customer);chargeCustomer(customre,item);removeItemFromBidding(item);

}

}

Page 13: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

BMT - Bean Managed Transactions

Page 14: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.
Page 15: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

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

Page 16: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

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

Page 17: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

Seguridad en EJB 3

Autenticación Autorización Usuario (principal) Grupo Rol JAAS – Java Authentication and

Authorization Service

Page 18: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

JAAS – Escenario habitual

Page 19: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

Autenticación y autorización en la capa Web

Page 20: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

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

Page 21: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010.

Annotations para seguridad

@DeclareRoles @RolesAllowed @PermitAll @DenyAll @RunAs