Hi, I agree with Matthias and strongly suggest to use the securitycontext el extension, it'll be much simpler.
Regards, Cagatay On 3/22/07, Matthias Wessendorf <[EMAIL PROTECTED]> wrote:
Hey Kuno, the issue is, that the component expects a <tr:commandNavigationItem> component. The point is, you wrap it by using <acegijsf:authorize>. It would be good, if you could *nest* the <acegijsf:authorize> inside other components. <tr:commandNavigationItem> <acegijsf:authorize /> </tr:commandNavigationItem> See see blog discussion, that using tabs might be not the best way of doing this security stuff. There is also something like: http://wiki.apache.org/myfaces/SecurityContext in myfaces, for using EL based sec. checks. -M On 3/22/07, Kuno Baeriswyl <[EMAIL PROTECTED]> wrote: > Hi Cafatay! > > Thanks for your hint! I've found an example application > http://www.nabble.com/Appfuse-+-facelets-+-other-goodies-t1019957s2369.htmland added the facelets JSP taglib mapping to my web.xml > > <context-param> > <param-name>facelets.LIBRARIES</param-name> > <param-value>/WEB-INF/acegijsf.taglib.xml</param-value> > </context-param> > > But, I still get an error: > > 22.03.2007 09:41:53 > org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.NavigationPaneRendererrenderContent > SCHWERWIEGEND: Warning: illegal component hierarchy detected, expected > UIXCommand but found another type of component instead. > java.lang.ClassCastException: net.sf.jsfcomp.acegijsf.Authorize > > Do you have any idea? > > Kuno > > On Thu, 2007-03-22 at 10:04 +0200, Cagatay Civici wrote: > > Hi, > > > > Have you defined the acegijsf components in your facelets-taglib config? > > > > Cagatay > > > > On 3/22/07, Kuno Baeriswyl <[EMAIL PROTECTED]> wrote: > > > > > > Hello everybody, > > > > > > I like to put trinidad, facelets and acegi together. The appserver > > > compiles the HTML page, but complains about an unvalid type: > > > > > > 22.03.2007 08:35:21 com.sun.facelets.tag.jsf.ComponentRule warnAttr > > > WARNUNG: /layout.xhtml @7,42 > > > xmlns:authz="http://acegisecurity.org/authz" Property 'authz' is not on > > > type: org.apache.myfaces.trinidad.component.core.CoreDocument > > > 22.03.2007 08:35:23 > > > > > > org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.NavigationPaneRendererrenderContent > > > SCHWERWIEGEND: Warning: illegal component hierarchy detected, expected > > > UIXCommand but found another type of component instead. > > > java.lang.ClassCastException: com.sun.facelets.compiler.UILiteralText > > > > > > I've found an promising acegi-jsf component to solve that problem : > > > > > > http://www.jroller.com/page/cagataycivici?entry=acegi_jsf_components_hit_the > > > > > > But, I still get the same error: > > > > > > 22.03.2007 08:52:35 com.sun.facelets.tag.jsf.ComponentRule warnAttr > > > WARNUNG: /layout.xhtml @7,42 > > > xmlns:acegijsf="http://sourceforge.net/projects/jsf-comp/acegijsf" > > > Property 'acegijsf' is not on type: > > > org.apache.myfaces.trinidad.component.core.CoreDocument > > > 22.03.2007 08:52:41 > > > > > > org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.NavigationPaneRendererrenderContent > > > SCHWERWIEGEND: Warning: illegal component hierarchy detected, expected > > > UIXCommand but found another type of component instead. > > > java.lang.ClassCastException: com.sun.facelets.compiler.UILiteralText > > > > > > I think I still get the same error. Can any body help me? > > > > > > Here is my facelet and faces-config.xml: > > > > > > << START template.xhtml >> > > > <tr:document > > > xmlns:ui="http://java.sun.com/jsf/facelets" > > > xmlns:h="http://java.sun.com/jsf/html" > > > xmlns:f="http://java.sun.com/jsf/core" > > > xmlns:tr="http://myfaces.apache.org/trinidad" > > > xmlns:acegijsf="http://sourceforge.net/projects/jsf-comp/acegijsf " > > > title="OPIZ - Pizza online bestellen"> > > > <tr:panelGroupLayout layout="vertical"> > > > <f:facet name="separator"> > > > <tr:separator/> > > > </f:facet> > > > <tr:commandLink immediate="true" text="Home" > > > action="home"/> > > > <tr:outputFormatted styleUsage="instruction" > > > value="BKW Intranet"/> > > > <tr:panelPage > > > > <f:facet name="navigation1"> > > > <tr:form> > > > <tr:navigationPane hint="tabs" shortDesc="Wähle Tab"> > > > <tr:commandNavigationItem text="home" action="home"/> > > > <acegijsf:authorize > > > ifNotGranted="ROLE_ADMIN"> > > > <tr:commandNavigationItem > > > text="Warenkorb" action="showOrder"/> > > > </acegijsf:authorize> > > > <acegijsf:authorize > > > ifNotGranted="ROLE_CUSTOMER,ROLE_ADMIN"> > > > <tr:commandNavigationItem > > > text="Registrieren" action="register"/> > > > <tr:commandNavigationItem > > > text="Anmelden" > > > action="login"/> > > > </acegijsf:authorize> > > > <acegijsf:authorize > > > ifAnyGranted="ROLE_ADMIN"> > > > <tr:commandNavigationItem > > > text="Kundenliste" > > > action="showCustomer"/> > > > </acegijsf:authorize> > > > <acegijsf:authorize > > > ifAnyGranted="ROLE_CUSTOMER"> > > > <tr:commandNavigationItem > > > text="Meine Daten" > > > action="#{customerAction.editCustomer}"/> > > > <tr:commandNavigationItem > > > text="Meine Bestellungen" > > > action="orderHistory"/> > > > </acegijsf:authorize> > > > <acegijsf:authorize > > > ifAnyGranted="ROLE_CUSTOMER,ROLE_ADMIN"> > > > <tr:commandNavigationItem > > > text="Abmelden" > > > action="logout"/> > > > <acegijsf:authentication > > > operation="username"/> > > > </acegijsf:authorize> > > > </tr:navigationPane> > > > </tr:form> > > > </f:facet> > > > <f:facet name="navigationGlobal"> > > > <tr:navigationPane hint="buttons"> > > > <tr:commandNavigationItem text="help" > > > icon="/images/globalhelp.gif" > > > action="guide.navigationPane"/> > > > <tr:commandNavigationItem text="help more" > > > icon="/images/globalhelp.gif" > > > action="guide.navigationPane"/> > > > <tr:commandNavigationItem text="Disabled" > > > icon="/images/globalhelp.gif" > > > action="guide.navigationPane" > > > disabled="true"/> > > > <tr:commandNavigationItem text="Disabled" > > > icon="/images/globalhelp.gif" > > > action="guide.navigationPane" > > > disabled="true"/> > > > </tr:navigationPane> > > > </f:facet> > > > <f:facet name="branding"> > > > <tr:outputFormatted value="OPIZ - Pizza online > > > bestellen" > > > styleUsage="inContextBranding"/> > > > </f:facet> > > > <f:facet name="appCopyright"> > > > <tr:outputText value="copyright by BKW Energie AG > > > 2007"/> > > > </f:facet> > > > <f:facet name="appPrivacy"> > > > <tr:commandLink text="privacy" action="action.none" /> > > > </f:facet> > > > <f:facet name="appAbout"> > > > <tr:commandLink text="about" action="action.none" /> > > > </f:facet> > > > > > > <ui:insert name="content"> > > > <ui:include src=""/> > > > </ui:insert> > > > </tr:panelPage> > > > </tr:panelGroupLayout> > > > </tr:document> > > > > > > << END template.xhtml >> > > > > > > << START faces-config.xml >> > > > <?xml version="1.0"?> > > > > > > <!DOCTYPE faces-config PUBLIC > > > "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" > > > "http://java.sun.com/dtd/web-facesconfig_1_0.dtd"> > > > > > > <faces-config> > > > > > > <application> > > > <variable-resolver> > > > org.springframework.web.jsf.DelegatingVariableResolver > > > </variable-resolver> > > > <locale-config> > > > <default-locale>de_DE</default-locale> > > > <supported-locale>de</supported-locale> > > > <supported-locale>en</supported-locale> > > > </locale-config> > > > <default-render-kit-id> > > > org.apache.myfaces.trinidad.core > > > </default-render-kit-id> > > > </application> > > > > > > <component> > > > > > > <component-type>net.sf.jsfcomp.acegijsf.Authorize</component-type> > > > > > > <component-class>net.sf.jsfcomp.acegijsf.Authorize</component-class> > > > </component> > > > > > > <component> > > > > > > <component-type>net.sf.jsfcomp.acegijsf.Authentication </component-type> > > > > > > <component-class>net.sf.jsfcomp.acegijsf.Authentication </component-class> > > > </component> > > > > > > <navigation-rule> > > > <from-view-id>/*</from-view-id> > > > <navigation-case> > > > <from-outcome>logout</from-outcome> > > > <to-view-id>/j_acegi_logout.jsp</to-view-id> > > > </navigation-case> > > > </navigation-rule> > > > <navigation-rule> > > > <from-view-id>/opiz/*</from-view-id> > > > <navigation-case> > > > <from-outcome>home</from-outcome> > > > <to-view-id>/opiz/choosePizza.xhtml</to-view-id> > > > </navigation-case> > > > <navigation-case> > > > <from-outcome>register</from-outcome> > > > <to-view-id>/opiz/register.jsp</to-view-id> > > > </navigation-case> > > > <navigation-case> > > > <from-outcome>login</from-outcome> > > > <to-view-id>/opiz/login.jsp</to-view-id> > > > </navigation-case> > > > <navigation-case> > > > <from-outcome>showOrder</from-outcome> > > > <to-view-id>/opiz/showOrder.jsp</to-view-id> > > > </navigation-case> > > > <navigation-case> > > > <from-outcome>showCustomer</from-outcome> > > > <to-view-id>/opiz/showCustomer.jsp</to-view-id> > > > </navigation-case> > > > <navigation-case> > > > <from-outcome>editCustomer</from-outcome> > > > <to-view-id>/opiz/editCustomer.jsp</to-view-id> > > > </navigation-case> > > > <navigation-case> > > > <from-outcome>orderHistory</from-outcome> > > > <to-view-id>/opiz/showOrderHistory.jsp</to-view-id> > > > </navigation-case> > > > </navigation-rule> > > > <navigation-rule> > > > <from-view-id>/opiz/login.jsp</from-view-id> > > > <navigation-case> > > > <from-outcome>login</from-outcome> > > > <to-view-id>/j_acegi_security_check.jsp</to-view-id> > > > </navigation-case> > > > </navigation-rule> > > > <navigation-rule> > > > <from-view-id>/opiz/register.jsp</from-view-id> > > > <navigation-case> > > > <from-outcome>register</from-outcome> > > > <to-view-id>/opiz/showRegistration.jsp</to-view-id> > > > </navigation-case> > > > <navigation-case> > > > <from-outcome>cancel</from-outcome> > > > <to-view-id>/opiz/choosePizza.xhtml</to-view-id> > > > </navigation-case> > > > </navigation-rule> > > > <navigation-rule> > > > <from-view-id>/opiz/choosePizza.xhtml</from-view-id> > > > <navigation-case> > > > <from-outcome>add</from-outcome> > > > <to-view-id>/opiz/showOrder.jsp</to-view-id> > > > </navigation-case> > > > <navigation-case> > > > <from-outcome>customize</from-outcome> > > > <to-view-id>/opiz/topPizza.jsp</to-view-id> > > > </navigation-case> > > > <navigation-case> > > > <from-outcome>cancel</from-outcome> > > > <to-view-id>/opiz/cancel.jsp</to-view-id> > > > </navigation-case> > > > </navigation-rule> > > > <navigation-rule> > > > <from-view-id>/opiz/topPizza.jsp</from-view-id> > > > <navigation-case> > > > <from-outcome>add</from-outcome> > > > <to-view-id>/opiz/showOrder.jsp</to-view-id> > > > </navigation-case> > > > <navigation-case> > > > <from-outcome>cancel</from-outcome> > > > <to-view-id>/opiz/cancel.jsp</to-view-id> > > > </navigation-case> > > > </navigation-rule> > > > <navigation-rule> > > > <from-view-id>/opiz/showOrder.jsp</from-view-id> > > > <navigation-case> > > > <from-outcome>order</from-outcome> > > > <to-view-id>/opiz/order.jsp</to-view-id> > > > </navigation-case> > > > <navigation-case> > > > <from-outcome>cancel</from-outcome> > > > <to-view-id>/opiz/cancel.jsp</to-view-id> > > > </navigation-case> > > > <navigation-case> > > > <from-outcome>continue</from-outcome> > > > <to-view-id>/opiz/choosePizza.xhtml</to-view-id> > > > </navigation-case> > > > </navigation-rule> > > > <navigation-rule> > > > <from-view-id>/opiz/order.jsp</from-view-id> > > > <navigation-case> > > > <from-outcome>deliver</from-outcome> > > > <to-view-id>/opiz/deliver.jsp</to-view-id> > > > </navigation-case> > > > <navigation-case> > > > <from-outcome>cancel</from-outcome> > > > <to-view-id>/opiz/cancel.jsp</to-view-id> > > > </navigation-case> > > > </navigation-rule> > > > <navigation-rule> > > > <from-view-id>/opiz/showOrderHistory.jsp</from-view-id> > > > <navigation-case> > > > <from-outcome>cancel</from-outcome> > > > <to-view-id>/opiz/cancel.jsp</to-view-id> > > > </navigation-case> > > > </navigation-rule> > > > <navigation-rule> > > > <from-view-id>/opiz/editCustomer.jsp</from-view-id> > > > <navigation-case> > > > <from-outcome>cancel</from-outcome> > > > <to-view-id>/opiz/choosePizza.xhtml</to-view-id> > > > </navigation-case> > > > </navigation-rule> > > > > > > <converter> > > > <converter-id>pizzaConverter</converter-id> > > > <converter-class> > > > de.hanser.buch.opiz.web.jsf.PizzaConverter > > > </converter-class> > > > </converter> > > > <converter> > > > <converter-for-class> > > > de.hanser.buch.opiz.domain.Topping > > > </converter-for-class> > > > <converter-class> > > > de.hanser.buch.opiz.web.jsf.ToppingConverter > > > </converter-class> > > > </converter> > > > > > > </faces-config> > > > > > > << END faces-config.xml >> > > > > -- Matthias Wessendorf http://tinyurl.com/fmywh further stuff: blog: http://jroller.com/page/mwessendorf mail: mwessendorf-at-gmail-dot-com
