diff options
| author | Thomas Lenz <thomas.lenz@egiz.gv.at> | 2019-08-05 12:22:31 +0200 | 
|---|---|---|
| committer | Thomas Lenz <thomas.lenz@egiz.gv.at> | 2019-08-05 12:22:31 +0200 | 
| commit | 8d10b11ffa05104fabf242474cc35bc456744ace (patch) | |
| tree | 28a100fd9c0de91d8f9548c62f1ab391a9ac3295 /connector_lib/src | |
| parent | e44e885e95d7477ecae2d54c8963a8a2093326ac (diff) | |
| download | National_eIDAS_Gateway-8d10b11ffa05104fabf242474cc35bc456744ace.tar.gz National_eIDAS_Gateway-8d10b11ffa05104fabf242474cc35bc456744ace.tar.bz2 National_eIDAS_Gateway-8d10b11ffa05104fabf242474cc35bc456744ace.zip | |
refactor to eIDAS-Node v2.3.0 and use Apache Ignite as new cache implementation
refactor to multi-language support
Diffstat (limited to 'connector_lib/src')
| -rw-r--r-- | connector_lib/src/main/java/at/asitplus/eidas/specific/connector/MSeIDASNodeConstants.java | 4 | ||||
| -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 | 
3 files changed, 118 insertions, 5 deletions
| 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 3ca82a66..37de50a7 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"; @@ -114,4 +116,6 @@ 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; +	} + +} | 
