[JBoss Portal] - JSF Portlet + IPC
by dcshonda
Hi everyone!
Please, help me. I have a problem with IPC Portlets + JSF + Seam. I am new in JBoss Seam and portlets and I am not very sure, what I am doing bad...
I have two JSF Portlets: Portlet A and Portlet B. I have a listener in portlet B, and it works fine.
My problem is that I have a <h:commandLink ...> in Portlet A, and I want to send data to Portlet B when I push the commandLink. My problem is that Portlet B does not get data from Portlet B.
Portlet A: (BuscadorOperacionesWindow)
|
| <h:dataTable id="tablaOperaciones" value="#{expedientes}" rows="10" class="blue-table" border="1" var="op">
| <h:column>
| <f:facet name="header">#{messages.expediente}</f:facet>
| <h:commandLink value="#{op.operacionId}" action="#gestorexpediente.enviaDatos(op.operacionId)}" >
| <f:param name="datoOp" value="#{op.operacionId}" />
| </h:commandLink>
| </h:column>
| ...
|
Portlet B: (VisorOperacionWindow)
| <h:panelGrid columns="2">
| <h:outputLabel value="#{messages.operacion}"/>
| <h:outputLabel id="datoOp"/>
| ...
|
Listener - Portlet B
| public class PortletB extends GenericPortlet
| {
| public static class Listener implements PortalNodeEventListener
| {
| public PortalNodeEvent onEvent(PortalNodeEventContext context, PortalNodeEvent event)
| {
| PortalNode node = event.getNode();
| String nodeName = node.getName();
|
| WindowActionEvent newEvent = null;
|
| if (nodeName.equals("BuscadorOperacionesWindow") && event instanceof WindowActionEvent)
| {
|
| WindowActionEvent wae = (WindowActionEvent) event;
| PortalNode windowB = node.resolve("../VisorOperacionWindow");
| if (windowB != null)
| {
| newEvent = new WindowActionEvent(windowB);
| newEvent.setMode(wae.getMode());
| newEvent.setWindowState(wae.getWindowState());
|
| Map parametros = (Map)wae.getParameters();
| for (Iterator keyValuePairs = parametros.entrySet().iterator(); keyValuePairs.hasNext();)
| {
| Map.Entry entry = (Map.Entry) keyValuePairs.next();
| Object key = entry.getKey();
| Object value = entry.getValue();
| if(key.equals("datoOp"))
| {
| HashMap param = new HashMap();
| param.put(key, value);
| newEvent.setParameters(param);
| return newEvent;
| }
| }
| return context.dispatch();
| }
| }
| return context.dispatch();
| }
| }
| }
|
Anyone, can help me, please.
Thanks very much
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4122175#4122175
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4122175
18 years, 6 months
[JBoss Seam] - How to properly end nested conversation using pageFlow??
by seyan
I have a problem with ending nested conversation (invoked from conversation with custom/natural conversation Id). Conversations are defined in pages.xml:
| <conversation name="testConversation" parameter-name="operationID"
| parameter-value="#{operation.id}" />
|
| <page view-id="/businessOperation.xhtml"
| conversation="testConversation" no-conversation-view-id="browseBusinessOperations.xhtml">
| <begin-conversation join="true"
| pageflow="businessOperationModify"/>
| </page>
|
| <page view-id="/newBusinessOperation.xhtml" no-conversation-view-id="browseBusinessOperations.xhtml">
| <begin-conversation nested="true" pageflow="businessOperationCreateNewVersion"/>
| </page>
|
Parent conversation uses following page flow:
| <pageflow-definition xmlns="http://jboss.com/products/seam/pageflow"
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xsi:schemaLocation="http://jboss.com/products/seam/pageflow http://jboss.com/products/seam/pageflow-2.0.xsd"
| name="businessOperationModify">
| <start-page name="startPage" view-id="/businessOperation.xhtml">
| <redirect/>
| <transition name="businessOperationEdited" to="enableEdit"/>
| <transition name="browseBusinessOperations" to="browseBO"/>
| <transition name="newBusinessOperation" to="newBO"/>
| </start-page>
|
| <page name="enableEdit" view-id="/businessOperation.xhtml">
| <redirect/>
| </page>
| <page name="newBO" view-id="/newBusinessOperation.xhtml">
| <redirect/>
| </page>
| <page name="browseBO" view-id="/browseBusinessOperations.xhtml">
| <end-conversation />
| <redirect/>
| </page>
| <end-state name="end"/>
| </pageflow-definition>
|
pageflow for nested conversation
| <pageflow-definition xmlns="http://jboss.com/products/seam/pageflow"
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xsi:schemaLocation="http://jboss.com/products/seam/pageflow http://jboss.com/products/seam/pageflow-2.0.xsd"
| name="businessOperationCreateNewVersion">
| <start-page name="startPage" view-id="/newBusinessOperation.xhtml">
| <redirect/>
| <transition name="browseBusinessOperations" to="browseBusinessOperations"/>
| </start-page>
| <page name="browseBusinessOperations" view-id="/browseBusinessOperations.xhtml">
| <end-conversation ></end-conversation>
| <redirect></redirect>
|
| </page>
| <end-state name="end"/>
| </pageflow-definition>
|
After the transition to page on which nested conversation should end, it still propagates to that page and other pages (i.e. /browseBusinessOperations.xhtml)
Maybe I'm doing something wrong?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4122167#4122167
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4122167
18 years, 6 months
[JBoss Seam] - [SeamPhaseListener] swallowing exception
by jamesjmp
hi,
I have added some restrictions taking into consideration the user's roles to access some pages. They work ok and when the org.jboss.seam.security.AuthorizationException appears the flow is redirected properly.
Howewer I find that the very first time after starting the server or deploying if I try to access with a not authorized user to a forbidden page the AuthorizationException is swallowed, access to the page is granted and there is no redirection to error page.
The trace is this:
13:32:38,218 ERROR [SeamPhaseListener] uncaught exception
org.jboss.seam.security.AuthorizationException: Authorization check failed for expression [#{authenticator.admin}]
at org.jboss.seam.security.Identity.checkRestriction(Identity.java:160)
at org.jboss.seam.pages.Page.enter(Page.java:206)
at org.jboss.seam.core.Pages.enterPage(Pages.java:276)
at org.jboss.seam.jsf.AbstractSeamPhaseListener.enterPage(AbstractSeamPhaseListener.java:276)
at org.jboss.seam.jsf.AbstractSeamPhaseListener.beforeRender(AbstractSeamPhaseListener.java:214)
at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:56)
at org.apache.myfaces.lifecycle.LifecycleImpl.informPhaseListenersBefore(LifecycleImpl.java:520)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:342)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:53)
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:79)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:619)
13:32:38,375 ERROR [SeamPhaseListener] swallowing exception
org.jboss.seam.security.AuthorizationException: Authorization check failed for expression [#{authenticator.admin}]
at org.jboss.seam.security.Identity.checkRestriction(Identity.java:160)
at org.jboss.seam.pages.Page.enter(Page.java:206)
at org.jboss.seam.core.Pages.enterPage(Pages.java:276)
at org.jboss.seam.jsf.AbstractSeamPhaseListener.enterPage(AbstractSeamPhaseListener.java:276)
at org.jboss.seam.jsf.AbstractSeamPhaseListener.beforeRender(AbstractSeamPhaseListener.java:214)
at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:56)
at org.apache.myfaces.lifecycle.LifecycleImpl.informPhaseListenersBefore(LifecycleImpl.java:520)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:342)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:53)
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:79)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:619)
But the following times I try to acces to a forbidden page, restrictions work properly, in this cases the trace is this
13:33:03,468 ERROR [SeamPhaseListener] uncaught exception
org.jboss.seam.security.AuthorizationException: Authorization check failed for expression [#{authenticator.admin}]
at org.jboss.seam.security.Identity.checkRestriction(Identity.java:160)
at org.jboss.seam.pages.Page.enter(Page.java:206)
at org.jboss.seam.core.Pages.enterPage(Pages.java:276)
at org.jboss.seam.jsf.AbstractSeamPhaseListener.enterPage(AbstractSeamPhaseListener.java:276)
at org.jboss.seam.jsf.AbstractSeamPhaseListener.beforeRender(AbstractSeamPhaseListener.java:214)
at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:56)
at org.apache.myfaces.lifecycle.LifecycleImpl.informPhaseListenersBefore(LifecycleImpl.java:520)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:342)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:53)
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:79)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:619)
So the following times there is no exception swallowing.
In pages.xml the exception is defined this way:
I wonder why is this happening and if there is a way to solve it with configuration.
| ...
| <page view-id="/FirmEdit.xhtml">
| <restrict>#{authenticator.adminGral}</restrict>
| </page>
| ...
| <exception class="org.jboss.seam.security.AuthorizationException">
| <redirect view-id="/error2.xhtml">
| <message>You don't have permission to do this - AuthorizationException!!</message>
| </redirect>
| </exception>
| ...
|
And my Authenticator.java has this method:
| public boolean isAdminGral() {
| return identity.hasRole("adminGral");
| }
|
Tha fact of it working properly except the first time after starting the server or deploying is that puzzles me. why is then and only then the exception swallowed?
thanks in advance!
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4122165#4122165
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4122165
18 years, 6 months