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

Upload: rodolfo-lama

Post on 23-Jan-2016

223 views

Category:

Documents


0 download

TRANSCRIPT

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