![Page 1: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/2.jpg)
Transacciones
Atomicidad (Atomicity) Consistencia (Consistency) Aislamiento (Isolation) Durabilidad (Durability)
![Page 3: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/7.jpg)
CMT - Container Managed Transactions
![Page 8: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/8.jpg)
![Page 9: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/9.jpg)
@TransactionAttribute
![Page 10: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/10.jpg)
Estado de transacción actual
![Page 11: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/13.jpg)
BMT - Bean Managed Transactions
![Page 14: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/14.jpg)
![Page 15: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/18.jpg)
JAAS – Escenario habitual
![Page 19: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/19.jpg)
Autenticación y autorización en la capa Web
![Page 20: EJB 3.0 Transacciones y seguridad Tutor: Ing. Juan E. Talavera Horn 2010](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b4751a28abb57c91a732/html5/thumbnails/21.jpg)
Annotations para seguridad
@DeclareRoles @RolesAllowed @PermitAll @DenyAll @RunAs