ejb 3.0 transacciones y seguridad tutor: ing. juan e. talavera horn 2010

Post on 23-Jan-2016

223 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related