diff options
Diffstat (limited to 'eaaf_core/src')
-rw-r--r-- | eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/process/springweb/AbstractAuthSourceServlet.java | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/process/springweb/AbstractAuthSourceServlet.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/process/springweb/AbstractAuthSourceServlet.java deleted file mode 100644 index bd352bef..00000000 --- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/process/springweb/AbstractAuthSourceServlet.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright 2017 Graz University of Technology EAAF-Core Components has been developed in a - * cooperation between EGIZ, A-SIT Plus, A-SIT, and Graz University of Technology. - * - * Licensed under the EUPL, Version 1.2 or - as soon they will be approved by the European - * Commission - subsequent versions of the EUPL (the "Licence"); You may not use this work except in - * compliance with the Licence. You may obtain a copy of the Licence at: - * https://joinup.ec.europa.eu/news/understanding-eupl-v12 - * - * Unless required by applicable law or agreed to in writing, software distributed under the Licence - * is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the Licence for the specific language governing permissions and limitations under - * the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text file for details on the - * various modules and licenses. The "NOTICE" text file is part of the distribution. Any derivative - * works that you distribute must include a readable copy of the "NOTICE" text file. -*/ - -package at.gv.egiz.eaaf.core.impl.idp.process.springweb; - -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; - -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.NoSuchBeanDefinitionException; -import org.springframework.beans.factory.NoUniqueBeanDefinitionException; -import org.springframework.web.context.WebApplicationContext; -import org.springframework.web.context.support.WebApplicationContextUtils; - -import at.gv.egiz.eaaf.core.api.idp.process.ExecutionContext; -import at.gv.egiz.eaaf.core.api.idp.process.ProcessEngine; -import at.gv.egiz.eaaf.core.impl.idp.process.ProcessInstance; - -/** - * Abstract HttpServlet that provides means for retrieving the process engine - * (Spring Web required) as well as retrieving the underlying process instance - * and execution context evaluating a certain request parameter. - * - * @author tknall - * - */ -public abstract class AbstractAuthSourceServlet extends HttpServlet { - - private static final long serialVersionUID = 1L; - - private ProcessEngine processEngine; - - /** - * Returns the name of the request parameter representing the respective - * instance id. - * <p/> - * Default is {@code processInstanceId}. - * - * @return The request parameter name. - */ - public String getProcessInstanceIdParameterName() { - return "processInstanceId"; - } - - /** - * Returns the underlying process engine instance. - * - * @return The process engine (never {@code null}). - * @throws NoSuchBeanDefinitionException if no {@link ProcessEngine} bean was - * found. - * @throws NoUniqueBeanDefinitionException if more than one - * {@link ProcessEngine} bean was found. - * @throws BeansException if a problem getting the - * {@link ProcessEngine} bean occurred. - * @throws IllegalStateException if the Spring WebApplicationContext - * was not found, which means that the - * servlet is used outside a Spring web - * environment. - */ - public synchronized ProcessEngine getProcessEngine() { - if (processEngine == null) { - final WebApplicationContext ctx = - WebApplicationContextUtils.getWebApplicationContext(getServletContext()); - if (ctx == null) { - throw new IllegalStateException( - "Unable to find Spring WebApplicationContext. " - + "Servlet needs to be executed within a Spring web environment."); - } - processEngine = ctx.getBean(ProcessEngine.class); - } - return processEngine; - } - - /** - * Retrieves the process instance referenced by the request parameter - * {@link #getProcessInstanceIdParameterName()}. - * - * @param request The HttpServletRequest. - * @return The process instance (never {@code null}). - * @throws NoSuchBeanDefinitionException if no {@link ProcessEngine} bean was - * found. - * @throws NoUniqueBeanDefinitionException if more than one - * {@link ProcessEngine} bean was found. - * @throws BeansException if a problem getting the - * {@link ProcessEngine} bean occurred. - * @throws IllegalStateException if the Spring WebApplicationContext - * was not found, which means that the - * servlet is used outside a Spring web - * environment. - * @throws IllegalArgumentException in case the process instance id - * referenced by the request parameter - * {@link #getProcessInstanceIdParameterName()} - * does not exist. - */ - public ProcessInstance getProcessInstance(final HttpServletRequest request) { - final String processInstanceId = - StringUtils.trimToNull(request.getParameter(getProcessInstanceIdParameterName())); - if (processInstanceId == null) { - throw new IllegalArgumentException( - "Missing request parameter '" + getProcessInstanceIdParameterName() + "'."); - } - return getProcessEngine().getProcessInstance(processInstanceId); - } - - /** - * Retrieves the execution context for the respective process instance - * referenced by the request parameter - * {@link #getProcessInstanceIdParameterName()}. - * - * @param request The HttpServletRequest. - * @return The execution context (never {@code null}). - * @throws NoSuchBeanDefinitionException if no {@link ProcessEngine} bean was - * found. - * @throws NoUniqueBeanDefinitionException if more than one - * {@link ProcessEngine} bean was found. - * @throws BeansException if a problem getting the - * {@link ProcessEngine} bean occurred. - * @throws IllegalStateException if the Spring WebApplicationContext - * was not found, which means that the - * servlet is used outside a Spring web - * environment. - * @throws IllegalArgumentException in case the process instance id - * referenced by the request parameter - * {@link #getProcessInstanceIdParameterName()} - * does not exist. - */ - public ExecutionContext getExecutionContext(final HttpServletRequest request) { - return getProcessInstance(request).getExecutionContext(); - } - -} |