hi jose, i've tested it with owb. i'll test if there is a bug in weld which blocks this feature.
regards, gerhard http://www.irian.at Your JSF/JavaEE powerhouse - JavaEE Consulting, Development and Courses in English and German Professional Support for Apache MyFaces 2012/4/20 José Luis Cetina <[email protected]> > This example doesnt work for me too: > > https://issues.apache.org/jira/browse/EXTCDI-262 > > > > El 20 de abril de 2012 09:57, José Luis Cetina <[email protected] > >escribió: > > > This dont work for me, here are my small test: > > > > *//DECISION VOTER* > > import java.util.Set; > > import javax.interceptor.InvocationContext; > > import > > > org.apache.myfaces.extensions.cdi.core.api.security.AbstractAccessDecisionVoter; > > import > > org.apache.myfaces.extensions.cdi.core.api.security.AccessDecisionVoter; > > import > > org.apache.myfaces.extensions.cdi.core.api.security.SecurityViolation; > > > > @javax.enterprise.context.ApplicationScoped > > public class PermissionAccessDecisionVoter extends > > AbstractAccessDecisionVoter implements AccessDecisionVoter{ > > > > @Override > > protected void checkPermission(InvocationContext ic, > > Set<SecurityViolation> violations) { > > System.out.println("verifying .........."); > > } > > } > > > --------------------------------------------------------------------------------------------------------------------------------------- > > > > *//Interface for annotation* > > > > import java.lang.annotation.ElementType; > > import java.lang.annotation.Retention; > > import java.lang.annotation.RetentionPolicy; > > import java.lang.annotation.Target; > > import javax.enterprise.inject.Stereotype; > > import org.apache.myfaces.extensions.cdi.core.api.security.Secured; > > > > @Stereotype > > @Target(value = {ElementType.METHOD, ElementType.FIELD, > ElementType.TYPE}) > > @Retention(value = RetentionPolicy.RUNTIME) > > @Secured(PermissionAccessDecisionVoter.class) > > public @interface ModuloPantallaBinding { > > > > } > > > > > --------------------------------------------------------------------------------------------------------------------------------------- > > *//ViewConfig* > > import org.apache.myfaces.extensions.cdi.core.api.config.view.ViewConfig; > > import org.apache.myfaces.extensions.cdi.jsf.api.config.view.Page; > > > > @Page(navigation = Page.NavigationMode.REDIRECT) > > public class Index implements ViewConfig{ > > > > } > > > --------------------------------------------------------------------------------------------------------------------------------------- > > > > *//BEAN* > > import java.io.Serializable; > > import javax.faces.application.FacesMessage; > > import javax.faces.context.FacesContext; > > import javax.faces.event.ActionEvent; > > import javax.inject.Named; > > import org.apache.myfaces.extensions.cdi.core.api.config.view.View; > > import > > > org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ViewAccessScoped; > > import org.apache.myfaces.extensions.cdi.jsf.api.config.view.InitView; > > > > @Named > > @View(Index.class) > > @ViewAccessScoped > > @ModuloPantallaBinding > > public class MyBean implements Serializable{ > > > > @InitView > > public void init(){ > > System.out.println("init method"); > > } > > > > public void test(ActionEvent e){ > > FacesContext.getCurrentInstance().addMessage(null, new > > FacesMessage(FacesMessage.SEVERITY_INFO, "msg", "msg detail")); > > } > > } > > > > > --------------------------------------------------------------------------------------------------------------------------------------- > > > > > > *//XHTML* > > I Have only a commandbutton in a form: > > > > <p:commandButton value="Test" update="public_messages" > > actionListener="#{myBean.test}" /> > > > > > > > > > --------------------------------------------------------------------------------------------------------------------------------------- > > > > *//LOG* > > Información: > > > org.apache.myfaces.extensions.cdi.core.impl.provider.DefaultServiceProvider > > installed successfully. > > Información: > > > org.apache.myfaces.extensions.cdi.core.impl.provider.DefaultServiceProviderContext > > installed successfully. > > Información: Computed the following CODI ProjectStage: Production > > Información: abc.Index will be used as page-definition. > > Información: abc.MyBean will be used as page-bean. > > Información: Initializing Mojarra 2.1.6 (SNAPSHOT 20111206) for context > > '/WebApplication2' > > Información: [Started] MyFaces CODI (Extensions CDI) alternative config > > > org.apache.myfaces.extensions.cdi.core.alternative.config.AlternativeCodiCoreConfig > > is active (v1.0.4) > > > > Información: [Started] MyFaces CODI (Extensions CDI) alternative config > > > org.apache.myfaces.extensions.cdi.jsf.alternative.config.AlternativeJsfModuleConfig > > is active (v1.0.4) > > > > Información: Running on PrimeFaces 3.2 > > Información: WEB0671: Loading application [WebApplication2] at > > [/WebApplication2] > > Información: WebApplication2 was successfully deployed in 11,853 > > milliseconds. > > Información: WEB0169: Created HTTP listener [http-listener-2] on > host/port > > [0.0.0.0:8181] > > Información: Grizzly Framework 1.9.46 started in: 69ms - bound to [ > > 0.0.0.0:8181] > > Información: [Started] MyFaces CODI (Extensions CDI) alternative config > > > org.apache.myfaces.extensions.cdi.core.alternative.scope.conversation.config.AlternativeWindowContextConfig > > is active (v1.0.4) > > > > Información: [Started] MyFaces CODI (Extensions CDI) alternative config > > > org.apache.myfaces.extensions.cdi.core.alternative.scope.conversation.config.AlternativeConversationConfig > > is active (v1.0.4) > > > > Información: [Started] MyFaces CODI JSF-Module v1.0.4 for JSF 2.0 > > Used JSF implementation: Mojarra v2.1.6-SNAPSHOT > > config implementation: > > > org.apache.myfaces.extensions.cdi.jsf.alternative.config.AlternativeJsfModuleConfig$Proxy$_$$_WeldClientProxy > > config implementation: > > > org.apache.myfaces.extensions.cdi.jsf.alternative.config.AlternativeJsfModuleConfig > > config implementation: > > org.apache.myfaces.extensions.cdi.jsf.api.config.JsfModuleConfig > > method: isInvalidValueAwareMessageInterpolatorEnabled > > value: true > > method: isUseViewConfigsAsNavigationCasesEnabled > > value: true > > method: isInitialRedirectEnabled > > value: true > > method: isAlwaysKeepMessages > > value: true > > config implementation: > > > org.apache.myfaces.extensions.cdi.core.alternative.scope.conversation.config.AlternativeWindowContextConfig$Proxy$_$$_WeldClientProxy > > config implementation: > > > org.apache.myfaces.extensions.cdi.core.alternative.scope.conversation.config.AlternativeWindowContextConfig > > config implementation: > > > org.apache.myfaces.extensions.cdi.core.api.scope.conversation.config.WindowContextConfig > > method: isAddWindowIdToActionUrlsEnabled > > value: false > > method: getWindowContextTimeoutInMinutes > > value: 60 > > method: isCloseEmptyWindowContextsEnabled > > value: false > > method: isEagerWindowContextDetectionEnabled > > value: true > > method: isCreateWindowContextEventEnabled > > value: false > > method: isCloseWindowContextEventEnabled > > value: false > > method: isUrlParameterSupported > > value: true > > method: isUnknownWindowIdsAllowed > > value: false > > method: getMaxWindowContextCount > > value: 64 > > config implementation: > > > org.apache.myfaces.extensions.cdi.core.alternative.scope.conversation.config.AlternativeConversationConfig$Proxy$_$$_WeldClientProxy > > config implementation: > > > org.apache.myfaces.extensions.cdi.core.alternative.scope.conversation.config.AlternativeConversationConfig > > config implementation: > > > org.apache.myfaces.extensions.cdi.core.api.scope.conversation.config.ConversationConfig > > method: isConversationRequiredEnabled > > value: true > > method: isRestartConversationEventEnabled > > value: false > > method: isCloseConversationEventEnabled > > value: false > > method: isStartConversationEventEnabled > > value: false > > method: getConversationTimeoutInMinutes > > value: 30 > > method: isScopeBeanEventEnabled > > value: false > > method: isAccessBeanEventEnabled > > value: false > > method: isUnscopeBeanEventEnabled > > value: false > > MessageContextConfig class: > > > org.apache.myfaces.extensions.cdi.message.impl.DefaultMessageContextConfig > > MessageInterpolator class: class > > > org.apache.myfaces.extensions.cdi.jsf.impl.message.FacesMessageInterpolator > > MessageResolver class: class > > > org.apache.myfaces.extensions.cdi.jsf.impl.message.JsfAwareApplicationMessagesMessageResolver > > MessageHandler class: class > > org.apache.myfaces.extensions.cdi.jsf.impl.message.JsfAwareMessageHandler > > LocaleResolver class: class > > org.apache.myfaces.extensions.cdi.jsf.impl.message.JsfAwareLocaleResolver > > FormatterFactory class: class > > org.apache.myfaces.extensions.cdi.message.impl.DefaultFormatterFactory > > > > Información: [Started] MyFaces CODI JPA-Module v1.0.4 > > > > Información: [Started] MyFaces CODI (Extensions CDI) Core v1.0.4 > > Used CDI implementation: Weld v20111122-2001 > > project-stage: Production > > project-stage class: > > > org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStage$Production > > application-parameters: > > name: com.sun.faces.forceLoadConfiguration > > value: true > > name: com.sun.faces.validateXml > > value: true > > name: javax.faces.PROJECT_STAGE > > value: Development > > config implementation: > > > org.apache.myfaces.extensions.cdi.core.alternative.config.AlternativeCodiCoreConfig$Proxy$_$$_WeldClientProxy > > config implementation: > > > org.apache.myfaces.extensions.cdi.core.alternative.config.AlternativeCodiCoreConfig > > config implementation: > > org.apache.myfaces.extensions.cdi.core.api.config.CodiCoreConfig > > method: isAdvancedQualifierRequiredForDependencyInjection > > value: true > > method: isConfigurationLoggingEnabled > > value: true > > method: isInvalidBeanCreationEventEnabled > > value: false > > > > Advertencia: The value of the JSF 2 project stage (Development) is > > different from the CODI project stage (Production) > > Información: [Started] MyFaces CODI Scripting-Module v1.0.4 > > > > Información: [Started] MyFaces CODI Bean-Validation-Module v1.0.4 > > *Información: init method* > > > > > > > > As you can see in the last line of log file the init method call correct > > but the legen verifying.... never occur... > > > > BUT if i set the @Secure to the viewconfig it works (and removing the > > @ModuloPantallaBinding annotation from managedbean): > > > > > > *//ViewConfig with Secured annotation* > > import org.apache.myfaces.extensions.cdi.core.api.config.view.ViewConfig; > > import org.apache.myfaces.extensions.cdi.core.api.security.Secured; > > import org.apache.myfaces.extensions.cdi.jsf.api.config.view.Page; > > > > @Page(navigation = Page.NavigationMode.REDIRECT) > > @Secured(PermissionAccessDecisionVoter.class) > > public class Index implements ViewConfig{ > > > > } > > > > > --------------------------------------------------------------------------------------------------------------------------------------- > > > > * > > * > > *//LOG* > > Información: > > > org.apache.myfaces.extensions.cdi.core.impl.provider.DefaultServiceProvider > > installed successfully. > > Información: > > > org.apache.myfaces.extensions.cdi.core.impl.provider.DefaultServiceProviderContext > > installed successfully. > > Información: Computed the following CODI ProjectStage: Production > > Información: abc.Index will be used as page-definition. > > Información: abc.MyBean will be used as page-bean. > > Información: Initializing Mojarra 2.1.6 (SNAPSHOT 20111206) for context > > '/WebApplication2' > > Información: [Started] MyFaces CODI (Extensions CDI) alternative config > > > org.apache.myfaces.extensions.cdi.core.alternative.config.AlternativeCodiCoreConfig > > is active (v1.0.4) > > > > Información: [Started] MyFaces CODI (Extensions CDI) alternative config > > > org.apache.myfaces.extensions.cdi.jsf.alternative.config.AlternativeJsfModuleConfig > > is active (v1.0.4) > > > > Información: Running on PrimeFaces 3.2 > > Información: WEB0671: Loading application [WebApplication2] at > > [/WebApplication2] > > Información: WebApplication2 was successfully deployed in 8,759 > > milliseconds. > > Información: > > > org.apache.myfaces.extensions.cdi.core.impl.provider.DefaultServiceProvider > > installed successfully. > > Información: > > > org.apache.myfaces.extensions.cdi.core.impl.provider.DefaultServiceProviderContext > > installed successfully. > > Información: Computed the following CODI ProjectStage: Production > > Información: abc.Index will be used as page-definition. > > Información: abc.MyBean will be used as page-bean. > > Información: Initializing Mojarra 2.1.6 (SNAPSHOT 20111206) for context > > '/WebApplication2' > > Información: [Started] MyFaces CODI (Extensions CDI) alternative config > > > org.apache.myfaces.extensions.cdi.core.alternative.config.AlternativeCodiCoreConfig > > is active (v1.0.4) > > > > Información: [Started] MyFaces CODI (Extensions CDI) alternative config > > > org.apache.myfaces.extensions.cdi.jsf.alternative.config.AlternativeJsfModuleConfig > > is active (v1.0.4) > > > > Información: Running on PrimeFaces 3.2 > > Información: WEB0671: Loading application [WebApplication2] at > > [/WebApplication2] > > Información: WebApplication2 was successfully deployed in 5,790 > > milliseconds. > > Información: [Started] MyFaces CODI (Extensions CDI) alternative config > > > org.apache.myfaces.extensions.cdi.core.alternative.scope.conversation.config.AlternativeWindowContextConfig > > is active (v1.0.4) > > > > Información: [Started] MyFaces CODI (Extensions CDI) alternative config > > > org.apache.myfaces.extensions.cdi.core.alternative.scope.conversation.config.AlternativeConversationConfig > > is active (v1.0.4) > > > > Información: [Started] MyFaces CODI JSF-Module v1.0.4 for JSF 2.0 > > Used JSF implementation: Mojarra v2.1.6-SNAPSHOT > > config implementation: > > > org.apache.myfaces.extensions.cdi.jsf.alternative.config.AlternativeJsfModuleConfig$Proxy$_$$_WeldClientProxy > > config implementation: > > > org.apache.myfaces.extensions.cdi.jsf.alternative.config.AlternativeJsfModuleConfig > > config implementation: > > org.apache.myfaces.extensions.cdi.jsf.api.config.JsfModuleConfig > > method: isInvalidValueAwareMessageInterpolatorEnabled > > value: true > > method: isUseViewConfigsAsNavigationCasesEnabled > > value: true > > method: isInitialRedirectEnabled > > value: true > > method: isAlwaysKeepMessages > > value: true > > config implementation: > > > org.apache.myfaces.extensions.cdi.core.alternative.scope.conversation.config.AlternativeWindowContextConfig$Proxy$_$$_WeldClientProxy > > config implementation: > > > org.apache.myfaces.extensions.cdi.core.alternative.scope.conversation.config.AlternativeWindowContextConfig > > config implementation: > > > org.apache.myfaces.extensions.cdi.core.api.scope.conversation.config.WindowContextConfig > > method: isAddWindowIdToActionUrlsEnabled > > value: false > > method: getWindowContextTimeoutInMinutes > > value: 60 > > method: isCloseEmptyWindowContextsEnabled > > value: false > > method: isEagerWindowContextDetectionEnabled > > value: true > > method: isCreateWindowContextEventEnabled > > value: false > > method: isCloseWindowContextEventEnabled > > value: false > > method: isUrlParameterSupported > > value: true > > method: isUnknownWindowIdsAllowed > > value: false > > method: getMaxWindowContextCount > > value: 64 > > config implementation: > > > org.apache.myfaces.extensions.cdi.core.alternative.scope.conversation.config.AlternativeConversationConfig$Proxy$_$$_WeldClientProxy > > config implementation: > > > org.apache.myfaces.extensions.cdi.core.alternative.scope.conversation.config.AlternativeConversationConfig > > config implementation: > > > org.apache.myfaces.extensions.cdi.core.api.scope.conversation.config.ConversationConfig > > method: isConversationRequiredEnabled > > value: true > > method: isRestartConversationEventEnabled > > value: false > > method: isCloseConversationEventEnabled > > value: false > > method: isStartConversationEventEnabled > > value: false > > method: getConversationTimeoutInMinutes > > value: 30 > > method: isScopeBeanEventEnabled > > value: false > > method: isAccessBeanEventEnabled > > value: false > > method: isUnscopeBeanEventEnabled > > value: false > > MessageContextConfig class: > > > org.apache.myfaces.extensions.cdi.message.impl.DefaultMessageContextConfig > > MessageInterpolator class: class > > > org.apache.myfaces.extensions.cdi.jsf.impl.message.FacesMessageInterpolator > > MessageResolver class: class > > > org.apache.myfaces.extensions.cdi.jsf.impl.message.JsfAwareApplicationMessagesMessageResolver > > MessageHandler class: class > > org.apache.myfaces.extensions.cdi.jsf.impl.message.JsfAwareMessageHandler > > LocaleResolver class: class > > org.apache.myfaces.extensions.cdi.jsf.impl.message.JsfAwareLocaleResolver > > FormatterFactory class: class > > org.apache.myfaces.extensions.cdi.message.impl.DefaultFormatterFactory > > > > Información: [Started] MyFaces CODI JPA-Module v1.0.4 > > > > Información: [Started] MyFaces CODI (Extensions CDI) Core v1.0.4 > > Used CDI implementation: Weld v20111122-2001 > > project-stage: Production > > project-stage class: > > > org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStage$Production > > application-parameters: > > name: com.sun.faces.forceLoadConfiguration > > value: true > > name: com.sun.faces.validateXml > > value: true > > name: javax.faces.PROJECT_STAGE > > value: Development > > config implementation: > > > org.apache.myfaces.extensions.cdi.core.alternative.config.AlternativeCodiCoreConfig$Proxy$_$$_WeldClientProxy > > config implementation: > > > org.apache.myfaces.extensions.cdi.core.alternative.config.AlternativeCodiCoreConfig > > config implementation: > > org.apache.myfaces.extensions.cdi.core.api.config.CodiCoreConfig > > method: isAdvancedQualifierRequiredForDependencyInjection > > value: true > > method: isConfigurationLoggingEnabled > > value: true > > method: isInvalidBeanCreationEventEnabled > > value: false > > > > Advertencia: The value of the JSF 2 project stage (Development) is > > different from the CODI project stage (Production) > > Información: [Started] MyFaces CODI Scripting-Module v1.0.4 > > > > Información: [Started] MyFaces CODI Bean-Validation-Module v1.0.4 > > *Información: verifying ..........* > > *Información: verifying ..........* > > *Información: init method* > > *Información: verifying ..........* > > *Información: verifying ..........* > > * > > * > > * > > * > > * > > * > > * > > * > > * > > * > > > --------------------------------------------------------------------------------------------------------------------------------------- > > > > * > > * > > * > > * > > *Why? Thanks* > > * > > * > > > > 2012/4/19 Gerhard Petracek <[email protected]> > > > >> hi jose, > >> > >> here it works without an issue -> please provide the codi startup-log > >> about > >> the configuration you are using. > >> > >> @ package: > >> please use: javax.enterprise.context > >> > >> regards, > >> gerhard > >> > >> http://www.irian.at > >> > >> Your JSF/JavaEE powerhouse - > >> JavaEE Consulting, Development and > >> Courses in English and German > >> > >> Professional Support for Apache MyFaces > >> > >> > >> > >> 2012/4/19 José Luis Cetina <[email protected]> > >> > >> > Thanks Gerhard, but i have a problem. > >> > My checkpermision method never get called, i dont know why, i have > this: > >> > > >> > *//ANOTATION* > >> > @Stereotype > >> > @Target(value = {ElementType.METHOD, ElementType.FIELD, > >> ElementType.TYPE}) > >> > @Retention(value = RetentionPolicy.RUNTIME) > >> > @Secured(PermissionAccessDecisionVoter.class) > >> > public @interface ModuloPantallaBinding { > >> > ModulosPantallasEnum codigoModulo(); > >> > } > >> > > >> > *//MANAGED BEAN* > >> > @Named > >> > @ViewAccessScoped > >> > @View(IInicio.SeleccionRoles.class) > >> > > >> > > >> > @ModuloPantallaBinding(codigoModulo=ModulosPantallasEnum.SELECCION_ROLES_INICIO) > >> > public class SeleccionRolesMBean implements Serializable { > >> > . > >> > . > >> > . > >> > } > >> > > >> > *//Secure class* > >> > import javax.faces.bean.ApplicationScoped; > >> > @ApplicationScoped > >> > public class PermissionAccessDecisionVoter extends > >> > AbstractAccessDecisionVoter implements AccessDecisionVoter{ > >> > . > >> > > >> > protected void checkPermission(InvocationContext ic, > >> Set<SecurityViolation> > >> > violations) { > >> > *ModuloPantallaBinding obj*= > >> > voterContext.getMetaDataFor(ModuloPantallaBinding.class.getName(), > >> > ModuloPantallaBinding.class); > >> > > >> > > >> > } > >> > . > >> > } > >> > > >> > > >> > is correct the package javax.faces.bean.ApplicationScoped > >> > for @ApplicationScoped or have to be: > >> > javax.enterprise.context.ApplicationScoped;??? > >> > > >> > My checkPermission method never get called, but if i use the > anottation > >> > @Secure in my: > >> > @Secured(PermissionAccessDecisionVoter.class) > >> > public @Page(name="seleccion_roles") class SeleccionRoles > implements > >> > IInicio{} > >> > > >> > it works but the obj always is null. > >> > > >> > Thanks > >> > > >> > > >> > 2012/4/19 Gerhard Petracek <[email protected]> > >> > > >> > > hi jose, > >> > > > >> > > see the description at [1] - it will be added to the wiki soon. > >> > > > >> > > regards, > >> > > gerhard > >> > > > >> > > [1] https://issues.apache.org/jira/browse/EXTCDI-262 > >> > > > >> > > http://www.irian.at > >> > > > >> > > Your JSF/JavaEE powerhouse - > >> > > JavaEE Consulting, Development and > >> > > Courses in English and German > >> > > > >> > > Professional Support for Apache MyFaces > >> > > > >> > > > >> > > > >> > > 2012/4/19 José Luis Cetina <[email protected]> > >> > > > >> > > > Hello somebody know where i can find an example of > >> > > > @Secured and Stereotypes > >> > > > > >> > > > Im triying to work with @Secured and Stereotypes with metadata > but i > >> > have > >> > > > some doubts > >> > > > > >> > > > > >> > > > -- > >> > > > > ------------------------------------------------------------------- > >> > > > *SCJA. José Luis Cetina* > >> > > > > ------------------------------------------------------------------- > >> > > > > >> > > > >> > > >> > > >> > > >> > -- > >> > ------------------------------------------------------------------- > >> > *SCJA. José Luis Cetina* > >> > ------------------------------------------------------------------- > >> > > >> > > > > > > > > -- > > ------------------------------------------------------------------- > > *SCJA. José Luis Cetina* > > ------------------------------------------------------------------- > > > > > > > -- > ------------------------------------------------------------------- > *SCJA. José Luis Cetina* > ------------------------------------------------------------------- >

