diff options
Diffstat (limited to 'connector_lib')
| -rw-r--r-- | connector_lib/pom.xml | 3 | ||||
| -rw-r--r-- | connector_lib/src/main/java/at/asitplus/eidas/specific/connector/MSeIDASNodeConstants.java | 3 | ||||
| -rw-r--r-- | connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/DefaultVelocityGUIBuilderImpl.java (renamed from connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/DefaultGUIBuilderImpl.java) | 9 | ||||
| -rw-r--r-- | connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/SpringMVCGUIFormBuilderImpl.java | 110 | 
4 files changed, 118 insertions, 7 deletions
| diff --git a/connector_lib/pom.xml b/connector_lib/pom.xml index 590adb22..0771f3e5 100644 --- a/connector_lib/pom.xml +++ b/connector_lib/pom.xml @@ -5,11 +5,10 @@    <parent>      <groupId>at.asitplus.eidas</groupId>      <artifactId>ms_specific</artifactId> -    <version>1.x</version> +    <version>1.0.3-snapshot</version>    </parent>    <groupId>at.asitplus.eidas.ms_specific</groupId>    <artifactId>connector_lib</artifactId> -  <version>${egiz.eidas.version}</version>    <name>ms_specific_connector_lib</name>    <packaging>jar</packaging> diff --git a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/MSeIDASNodeConstants.java b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/MSeIDASNodeConstants.java index eee1ad62..0835daf8 100644 --- a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/MSeIDASNodeConstants.java +++ b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/MSeIDASNodeConstants.java @@ -39,6 +39,8 @@ public class MSeIDASNodeConstants {  	public static final String PROP_CONFIG_TECHNICALLOG_WRITE_MDS_INTO_TECH_LOG = "technicallog.write.MDS.into.techlog";  	public static final String PROP_CONFIG_WEBCONTENT_STATIC_PATH = "webcontent.static.directory";  +	public static final String PROP_CONFIG_WEBCONTENT_PROPERTIES_PATH = "webcontent.properties"; +	public static final String PROP_CONFIG_WEBCONTENT_TEMPLATES_PATH = "webcontent.templates";  	public static final String PROP_CONFIG_MONITORING_EIDASNODE_METADATAURL = "monitoring.eIDASNode.metadata.url"; @@ -117,4 +119,5 @@ public class MSeIDASNodeConstants {  	public static final List<String> COUNTRY_SELECTION_PARAM_WHITELIST =   			Arrays.asList(REQ_PARAM_SELECTED_COUNTRY, REQ_PARAM_SELECTED_ENVIRONMENT); +	  } diff --git a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/DefaultGUIBuilderImpl.java b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/DefaultVelocityGUIBuilderImpl.java index f4049267..e618e68d 100644 --- a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/DefaultGUIBuilderImpl.java +++ b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/DefaultVelocityGUIBuilderImpl.java @@ -28,18 +28,17 @@ import org.slf4j.Logger;  import org.slf4j.LoggerFactory;  import org.springframework.stereotype.Service; -import at.gv.egiz.eaaf.core.api.gui.IGUIFormBuilder;  import at.gv.egiz.eaaf.core.api.gui.IVelocityGUIBuilderConfiguration;  import at.gv.egiz.eaaf.core.exceptions.GUIBuildException;  import at.gv.egiz.eaaf.core.impl.gui.AbstractVelocityGUIFormBuilderImpl; -@Service("DefaultGUIBuilderImpl") -public class DefaultGUIBuilderImpl extends AbstractVelocityGUIFormBuilderImpl implements IGUIFormBuilder { -	private static final Logger log = LoggerFactory.getLogger(DefaultGUIBuilderImpl.class); +@Service("DefaultVelocityGUIBuilderImpl") +public class DefaultVelocityGUIBuilderImpl extends AbstractVelocityGUIFormBuilderImpl { +	private static final Logger log = LoggerFactory.getLogger(DefaultVelocityGUIBuilderImpl.class);  	private static final String CLASSPATH_HTMLTEMPLATES_DIR = "templates/"; -	public DefaultGUIBuilderImpl() throws GUIBuildException { +	public DefaultVelocityGUIBuilderImpl() throws GUIBuildException {  		super();   	} diff --git a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/SpringMVCGUIFormBuilderImpl.java b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/SpringMVCGUIFormBuilderImpl.java new file mode 100644 index 00000000..84218611 --- /dev/null +++ b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/SpringMVCGUIFormBuilderImpl.java @@ -0,0 +1,110 @@ +package at.asitplus.eidas.specific.connector.gui; + +import java.util.Locale; +import java.util.Map; + +import javax.annotation.Nullable; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.servlet.LocaleResolver; +import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.servlet.View; +import org.springframework.web.servlet.ViewResolver; + +import at.gv.egiz.eaaf.core.api.gui.IGUIBuilderConfiguration; +import at.gv.egiz.eaaf.core.api.gui.ISpringMVCGUIFormBuilder; +import at.gv.egiz.eaaf.core.exceptions.GUIBuildException; + +public class SpringMVCGUIFormBuilderImpl implements ISpringMVCGUIFormBuilder { +	private static final Logger log = LoggerFactory.getLogger(SpringMVCGUIFormBuilderImpl.class); +	 +	private @Autowired(required=false) ViewResolver[] viewResolvers; +	private @Autowired(required=false) LocaleResolver localeResolver; +	 +	@Override +	public void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IGUIBuilderConfiguration config, +			String loggerName) throws GUIBuildException { +		build(httpReq, httpResp, config, null, loggerName); + +	} + +	@Override +	public void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IGUIBuilderConfiguration config, +			String contentType, String loggerName) throws GUIBuildException { +		try { +			final ModelAndView mav = new ModelAndView(config.getViewName());		 +			if (config.getViewParameters() != null) +				mav.addAllObjects(config.getViewParameters()); +					 +			render(mav, httpReq, httpResp); +			 +		} catch (final Exception e) { +			log.info("Can NOT generate GUI for illustration", e); +			throw new GUIBuildException(e.getMessage(), e); +			 +		} + +	} +	 +	protected void render(ModelAndView mv, HttpServletRequest request, HttpServletResponse response) throws Exception { +		// Determine locale for request and apply it to the response. +		final Locale locale = +				(this.localeResolver != null ? this.localeResolver.resolveLocale(request) : request.getLocale()); +		response.setLocale(locale); + +		View view; +		final String viewName = mv.getViewName(); +		if (viewName != null) { +			// We need to resolve the view name. +			view = resolveViewName(viewName, mv.getModelMap(), locale, request); +			if (view == null) +				throw new ServletException("Could not resolve view with name '" + mv.getViewName() + "' "); +			 +		} else { +			// No need to lookup: the ModelAndView object contains the actual View object. +			view = mv.getView(); +			if (view == null) +				throw new ServletException("ModelAndView [" + mv + "] neither contains a view name nor a " + "View object "); +				 +		} + +		// Delegate to the View object for rendering. +		if (log.isTraceEnabled()) +			log.trace("Rendering view [" + view + "] "); +			 +		try { +			if (mv.getStatus() != null) +				response.setStatus(mv.getStatus().value()); +				 +			view.render(mv.getModelMap(), request, response); +			 +		} catch (final Exception ex) { +			if (log.isDebugEnabled()) +				log.debug("Error rendering view [" + view + "]", ex); +			 +			throw ex; +			 +		} +		 +	} +	 +	protected View resolveViewName(String viewName, @Nullable Map<String, Object> model, +			Locale locale, HttpServletRequest request) throws Exception { +		if (viewResolvers != null) { +			for (final ViewResolver viewResolver : this.viewResolvers) { +				final View view = viewResolver.resolveViewName(viewName, locale); +				if (view != null) +					return view; +				 +			} +		} +		 +		return null; +	} + +} | 
