Enterprise JavaBeans (EJB) 3.0 provided the ability to intercept EJB business methods by using AroundInvoke interceptors. Based on these interceptors, you can access the method name, its parameters, and its EJB context.
You also can perform tasks such as security checks, logging, auditing or frequently changing the values of method parameters in your Java EE applications using EJB interceptors.
Here is a simple EJB interceptor:
public class MyInterceptor { @Resource private EJBContext context; @AroundInvoke protected Object audit(InvocationContext ctx) throws Exception { Principal principal = context.getCallerPrincipal(); if (userIsValid(principal)) { //TODO logging here }else{ //TODO logging & exception } return ctx.proceed(); } }
To use this interceptor, you need only to place an annotation on the designated EJB, like this:
@Interceptors(MyInterceptor.class) @Stateless public class MyBean { // TODO}