[jboss-dev-forums] [Design of JBoss jBPM] - Re: Problem with more than 1 user
roccolocko
do-not-reply at jboss.com
Fri Jun 1 13:03:21 EDT 2007
Im not very familiarize with the use of filters in the web.xml, but probably it has something to do with this:
<filter-name>JbpmContextFilter</filter-name>
<filter-class>org.jbpm.web.JbpmContextFilter</filter-class>
<filter-mapping>
<filter-name>JbpmContextFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
In the class that the mention there (org.jbpm.web.JbpmContextFilter), in the doFilter method, at the end they use the jbpmContext.close();, which I believe is executing everytime a jsp is run, because of the mapping /*
the complete class is the following:
| package org.jbpm.web;
|
| import java.io.IOException;
| import java.io.Serializable;
| import java.security.Principal;
|
| import javax.servlet.Filter;
| import javax.servlet.FilterChain;
| import javax.servlet.FilterConfig;
| import javax.servlet.ServletException;
| import javax.servlet.ServletRequest;
| import javax.servlet.ServletResponse;
| import javax.servlet.http.HttpServletRequest;
|
| import org.jbpm.JbpmConfiguration;
| import org.jbpm.JbpmContext;
|
| public class JbpmContextFilter implements Filter, Serializable {
|
| private static final long serialVersionUID = 1L;
|
| String jbpmConfigurationResource = null;
| String jbpmContextName = null;
| boolean isAuthenticationEnabled = true;
|
| public void init(FilterConfig filterConfig) throws ServletException {
| // get the jbpm configuration resource
| this.jbpmConfigurationResource = filterConfig.getInitParameter("jbpm.configuration.resource");
|
| // get the jbpm context to be used from the jbpm configuration
| this.jbpmContextName = filterConfig.getInitParameter("jbpm.context.name");
| if (jbpmContextName==null) {
| jbpmContextName = JbpmContext.DEFAULT_JBPM_CONTEXT_NAME;
| }
|
| // see if authentication is turned off
| String isAuthenticationEnabledText = filterConfig.getInitParameter("authentication");
| if ( (isAuthenticationEnabledText!=null)
| && ("disabled".equalsIgnoreCase(isAuthenticationEnabledText))
| ) {
| isAuthenticationEnabled = false;
| }
| }
|
| public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
| String actorId = null;
|
| // see if we can get the authenticated swimlaneActorId
| if (servletRequest instanceof HttpServletRequest) {
| HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
| Principal userPrincipal = httpServletRequest.getUserPrincipal();
| if (userPrincipal != null) {
| actorId = userPrincipal.getName();
| }
| }
|
| JbpmContext jbpmContext = getJbpmConfiguration().createJbpmContext(jbpmContextName);
| try {
| if (isAuthenticationEnabled) {
| jbpmContext.setActorId(actorId);
| }
| filterChain.doFilter(servletRequest, servletResponse);
| } finally {
| jbpmContext.close();
| }
| }
|
| protected JbpmConfiguration getJbpmConfiguration() {
| return JbpmConfiguration.getInstance(jbpmConfigurationResource);
| }
|
| public void destroy() {
| }
| }
|
Could I be right?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4050557#4050557
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4050557
More information about the jboss-dev-forums
mailing list