В моей JEE6-КДИ-веб-приложение, я объявил перехватчик безопасности, как этот:Настройка перехватчик будет использоваться для ВСЕХ CDI-бобами внутри приложения
//Secure.java
@Inherited
@Target({TYPE, METHOD})
@Retention(RUNTIME)
@InterceptorBinding
public @interface Secure
{}
//SecurityInterceptor.java
@Secure
@Interceptor
public class SecurityInterceptor
{
@AroundInvoke
protected Object invoke(InvocationContext ctx) throws Exception
{
// do stuff
ctx.proceed();
}
}
И объявил его внутри beans.xml:
//beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
<alternatives/>
<decorators/>
<interceptors>
<class>com.profitbricks.security.SecurityInterceptor</class>
</interceptors>
</beans>
чтобы использовать его, я аннотировать CDI-боба соответственно:
//CDI bean using Inteceptor
@Named @RequestScoped
@Secure
public class TestBean {
public String doStuff() {
}
}
Теперь я спрашиваю себя, сделать я должен аннотировать ВСЕ мои CDI-Бобы используют этот перехватчик? Или есть способ настроить beans.xml для использования перехватчика для всех моих CDI-бобов, не объявляя его для каждого отдельного компонента?
Это относится только к EE7, но не приносит никакой пользы –