⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jbpmcontextholder.java

📁 workflow first jbpm
💻 JAVA
字号:
package com.yuyanshan.service.filt;

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;

import com.yuyanshan.service.BeanService;

public class JbpmContextHolder 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) BeanService.getBean("jbpmConfiguration");
	}

	public void destroy() {
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -