package org.jboss.seam.security; import java.lang.annotation.Annotation; import javax.enterprise.context.ApplicationScoped; import javax.enterprise.event.Observes; import javax.inject.Inject; import org.jboss.seam.security.AuthorizationException; import org.jboss.seam.security.events.AuthorizationCheckEvent; /** * This event observer * * @author Shane Bryzak */ public @ApplicationScoped class AuthorizationObserver { @Inject SecurityExtension extension; public void observeAuthorizationCheckEvent(@Observes AuthorizationCheckEvent event) { boolean failed = false; for (Annotation binding : event.getBindings()) { try { extension.checkAuthorization(binding); } catch (AuthorizationException ex) { failed = true; } } if (!failed) { event.setPassed(true); } } }