diff options
13 files changed, 198 insertions, 19 deletions
diff --git a/common/src/main/java/at/gv/egovernment/moa/util/MiscUtil.java b/common/src/main/java/at/gv/egovernment/moa/util/MiscUtil.java index c2f2c9f47..246b0eb31 100644 --- a/common/src/main/java/at/gv/egovernment/moa/util/MiscUtil.java +++ b/common/src/main/java/at/gv/egovernment/moa/util/MiscUtil.java @@ -53,6 +53,7 @@ import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.xml.sax.SAXException; +import at.gv.egovernment.moa.logging.Logger; import at.gv.egovernment.moa.util.ex.EgovUtilException; @@ -67,8 +68,6 @@ public class MiscUtil { public static final String DEFAULT_SLASH = "/"; - public static Log log = LogFactory.getLog(MiscUtil.class); - private static final int IO_BUFFER_SIZE = 4 * 1024; public static void copyStream(InputStream is, OutputStream os) throws IOException { @@ -303,7 +302,7 @@ public class MiscUtil { try { return sdf.parse(dateString); } catch (ParseException e) { - log.warn(null, "Error parsing date.", e); + Logger.warn("Error parsing date.", e); return null; } } diff --git a/id/ConfigWebTool/pom.xml b/id/ConfigWebTool/pom.xml index 7154cc2bb..36fe03457 100644 --- a/id/ConfigWebTool/pom.xml +++ b/id/ConfigWebTool/pom.xml @@ -69,7 +69,6 @@ <dependency> <groupId>MOA.id.server</groupId> <artifactId>moa-id-commons</artifactId> - <version>2.0.1</version> </dependency> <dependency> <groupId>MOA.id.server</groupId> @@ -140,11 +139,17 @@ <type>jar</type> <scope>compile</scope> </dependency> - <dependency> +<!-- <dependency> <groupId>iaik</groupId> <artifactId>commons-iaik</artifactId> <version>0.7.1</version> - </dependency> + <exclusions> + <exclusion> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + </exclusion> + </exclusions> + </dependency> --> </dependencies> diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/filter/EncodingFilter.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/filter/EncodingFilter.java new file mode 100644 index 000000000..71f9536ae --- /dev/null +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/filter/EncodingFilter.java @@ -0,0 +1,123 @@ +package at.gv.egovernment.moa.id.configuration.filter; + +import java.io.IOException; +import java.nio.charset.Charset; + +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; + +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.log4j.Logger; + +/** + * @author <a href="mailto:thomas.knall@iaik.tugraz.at">Thomas Knall</a> + */ +public class EncodingFilter implements javax.servlet.Filter { + + private static final String SERVLET_INIT_PARAM_ENCODING = "encoding"; + + private static final String SERVLET_INIT_PARAM_SET_REQUEST_ENCODING = "setRequestEncoding"; + private static final String SERVLET_INIT_PARAM_FORCE_REQUEST_ENCODING = "forceRequestEncoding"; + + private static final String SERVLET_INIT_PARAM_SET_RESPONSE_ENCODING = "setResponseEncoding"; + private static final String SERVLET_INIT_PARAM_FORCE_RESPONSE_ENCODING = "forceResponseEncoding"; + + private static final boolean DEFAULT_SET_REQUEST_ENCODING_VALUE = true; + private static final boolean DEFAULT_FORCE_REQUEST_ENCODING_VALUE = true; + private static final boolean DEFAULT_SET_RESPONSE_ENCODING_VALUE = false; + private static final boolean DEFAULT_FORCE_RESPONSE_ENCODING_VALUE = false; + + private Logger log = Logger.getLogger(getClass().getName()); + + private String encoding = null; + + private boolean setRequestEncoding; + private boolean forceRequestEncoding; + + private boolean setResponseEncoding; + private boolean forceResponseEncoding; + + private boolean enabled = false; + + private boolean parseBooleanInitParameter(final FilterConfig filterConfig, String parameterName, boolean defaultValue) { + String paramValue = filterConfig.getInitParameter(parameterName); + if (paramValue == null) { + return defaultValue; + } + paramValue = paramValue.trim(); + if (paramValue.equalsIgnoreCase("true")) { + return true; + } else if (paramValue.equalsIgnoreCase("false")){ + return false; + } else { + log.warn("Unknown value \"" + paramValue + "\" for init parameter \"" + parameterName + "\" detected. Should be \"true\" or \"false\". Using default value \"" + defaultValue + "\"."); + return defaultValue; + } + } + + public void init(final FilterConfig filterConfig) throws ServletException { + log.debug("Initializing encoding filter (" + getClass().getName() + ")."); + + // mandatory parameter encoding + String desiredEncoding = filterConfig.getInitParameter(SERVLET_INIT_PARAM_ENCODING); + if (StringUtils.isEmpty(desiredEncoding)) { + log.warn("Unable to initialize encoding filter (" + getClass().getName() + "). Init parameter \"" + SERVLET_INIT_PARAM_ENCODING + "\" empty or not supplied."); + } else if (!Charset.isSupported(desiredEncoding)) { + log.warn("Unable to initialize encoding filter (" + getClass().getName() + "). Encoding \"" + desiredEncoding + "\" is not supported."); + } else { + this.encoding = desiredEncoding; + this.enabled = true; + this.setRequestEncoding = this.parseBooleanInitParameter(filterConfig, SERVLET_INIT_PARAM_SET_REQUEST_ENCODING, DEFAULT_SET_REQUEST_ENCODING_VALUE); + this.forceRequestEncoding = this.parseBooleanInitParameter(filterConfig, SERVLET_INIT_PARAM_FORCE_REQUEST_ENCODING, DEFAULT_FORCE_REQUEST_ENCODING_VALUE); + this.setResponseEncoding = this.parseBooleanInitParameter(filterConfig, SERVLET_INIT_PARAM_SET_RESPONSE_ENCODING, DEFAULT_SET_RESPONSE_ENCODING_VALUE); + this.forceResponseEncoding = this.parseBooleanInitParameter(filterConfig, SERVLET_INIT_PARAM_FORCE_RESPONSE_ENCODING, DEFAULT_FORCE_RESPONSE_ENCODING_VALUE); + log.debug("Encoding filter \"" + getClass().getName() + "\" configured: " + this.toString(true)); + + } + } + + public String toString(boolean verbose) { + if (verbose) { + return new ToStringBuilder(this) + .append(SERVLET_INIT_PARAM_ENCODING, this.encoding) + .append(SERVLET_INIT_PARAM_SET_REQUEST_ENCODING, this.setRequestEncoding) + .append(SERVLET_INIT_PARAM_FORCE_REQUEST_ENCODING, this.forceRequestEncoding) + .append(SERVLET_INIT_PARAM_SET_RESPONSE_ENCODING, this.setResponseEncoding) + .append(SERVLET_INIT_PARAM_FORCE_RESPONSE_ENCODING, this.forceResponseEncoding) + .toString(); + } else { + return super.toString(); + } + } + + public void doFilter(ServletRequest request, ServletResponse response, final FilterChain filterChain) throws IOException, ServletException { + if (this.enabled) { + if (this.setRequestEncoding) { + if (this.forceRequestEncoding) { + log.trace("Forcing request encoding \"" + this.encoding + "\"."); + request.setCharacterEncoding(this.encoding); + } else if (request.getCharacterEncoding() == null) { + log.trace("Request character encoding not set. Setting to \"" + this.encoding + "\"."); + request.setCharacterEncoding(this.encoding); + } + } + if (this.setResponseEncoding) { + if (this.forceResponseEncoding) { + log.trace("Forcing response encoding \"" + this.encoding + "\"."); + response.setCharacterEncoding(this.encoding); + } else if (response.getCharacterEncoding() == null) { + log.trace("Response character encoding not set. Setting to \"" + this.encoding + "\"."); + response.setCharacterEncoding(this.encoding); + } + } + } + filterChain.doFilter(request, response); + } + + public void destroy() { + } +} diff --git a/id/ConfigWebTool/src/main/resources/struts.xml b/id/ConfigWebTool/src/main/resources/struts.xml index 9a098da5a..55490788d 100644 --- a/id/ConfigWebTool/src/main/resources/struts.xml +++ b/id/ConfigWebTool/src/main/resources/struts.xml @@ -6,10 +6,23 @@ <struts> <constant name="struts.custom.i18n.resources" value="webpages" /> + <constant name="struts.mapper.action.prefix.enabled" value="true" /> + <constant name="struts.mapper.action.prefix.crossNamespaces" value="false" /> <package name="default" namespace="/" extends="struts-default"> - <default-interceptor-ref name="defaultStack"/> + + + <interceptors> + <interceptor-stack name="OwnStack"> + <interceptor-ref name="defaultStack" /> + <interceptor-ref name="params"> + <param + name="excludeParams">^class\..*,^dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,^parameters\..*,^method:.*</param> + </interceptor-ref> + </interceptor-stack> + </interceptors> + <default-interceptor-ref name="OwnStack"/> <action name="index" method="start" class="at.gv.egovernment.moa.id.configuration.struts.action.IndexAction"> <result name="success">/index.jsp</result> @@ -69,7 +82,16 @@ <package name="secure" namespace="/secure" extends="struts-default"> - <default-interceptor-ref name="defaultStack"/> + <interceptors> + <interceptor-stack name="OwnStack"> + <interceptor-ref name="defaultStack" /> + <interceptor-ref name="params"> + <param + name="excludeParams">^class\..*,^dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,^parameters\..*,^method:.*</param> + </interceptor-ref> + </interceptor-stack> + </interceptors> + <default-interceptor-ref name="OwnStack"/> <action name="index"> <result type="redirectAction"> diff --git a/id/ConfigWebTool/src/main/webapp/WEB-INF/web.xml b/id/ConfigWebTool/src/main/webapp/WEB-INF/web.xml index a44cf8ce5..b55e97f23 100644 --- a/id/ConfigWebTool/src/main/webapp/WEB-INF/web.xml +++ b/id/ConfigWebTool/src/main/webapp/WEB-INF/web.xml @@ -46,7 +46,7 @@ <filter> <filter-name>EncodingFilter</filter-name> - <filter-class>at.iaik.commons.webapp.filter.encoding.EncodingFilter</filter-class> + <filter-class>at.gv.egovernment.moa.id.configuration.filter.EncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> diff --git a/id/server/data/deploy/conf/moa-id-configuration/moa-id-configtool.properties b/id/server/data/deploy/conf/moa-id-configuration/moa-id-configtool.properties index 2bb9cb005..05b5fbdef 100644 --- a/id/server/data/deploy/conf/moa-id-configuration/moa-id-configtool.properties +++ b/id/server/data/deploy/conf/moa-id-configuration/moa-id-configtool.properties @@ -2,6 +2,8 @@ general.login.deaktivate=false general.publicURLContext=https://localhost:8443/moa-id-configuration +general.defaultlanguage=de + ##Mail general.mail.host=smtp.localhost... #general.mail.host.port= diff --git a/id/server/doc/handbook/config/config.html b/id/server/doc/handbook/config/config.html index c704e85d1..ddbe1ac37 100644 --- a/id/server/doc/handbook/config/config.html +++ b/id/server/doc/handbook/config/config.html @@ -200,6 +200,12 @@ <td>Public URL Prefix unter dem die zu konfigurierende MOA-ID-Auth Instanz erreichbar ist</td> </tr> <tr> + <td>general.defaultlanguage</td> + <td>de, en</td> + <td><p>Hiermit kann die Sprache, welche für die Darstellung der Texte verwendet wird, festgelegt werden.</p> + <p><strong>Hinweis</strong>: Aktuell wird nur Deutsch (de) oder Englisch (en) unterstützt.</p></td> + </tr> + <tr> <td>general.userrequests.cleanup.delay</td> <td>18</td> <td>Innerhalb dieses Zeitraums muss ein neuer Benutzer die im Benutzerprofil hinterlegte eMail Adresse validieren. </td> diff --git a/id/server/idserverlib/pom.xml b/id/server/idserverlib/pom.xml index ae4c57fc8..285a5da9c 100644 --- a/id/server/idserverlib/pom.xml +++ b/id/server/idserverlib/pom.xml @@ -34,7 +34,6 @@ <dependency>
<groupId>MOA.id.server</groupId>
<artifactId>moa-id-commons</artifactId>
- <version>${pom.version}</version>
</dependency>
<!-- <dependency>
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/PostBinding.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/PostBinding.java index 6517325b9..11e280d8f 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/PostBinding.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/PostBinding.java @@ -122,7 +122,13 @@ public class PostBinding implements IDecoder, IEncoder { MOARequest request = new MOARequest(inboundMessage); request.setVerified(false); - request.setEntityID(messageContext.getPeerEntityMetadata().getEntityID()); + + if (messageContext.getPeerEntityMetadata() != null) + request.setEntityID(messageContext.getPeerEntityMetadata().getEntityID()); + + else + Logger.info("No Metadata found for OA with EntityID " + inboundMessage.getIssuer().getValue()); + request.setRelayState(messageContext.getRelayState()); return request; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ParamValidatorUtils.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ParamValidatorUtils.java index 0cb11cf5f..5eb55317a 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ParamValidatorUtils.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ParamValidatorUtils.java @@ -232,8 +232,8 @@ public class ParamValidatorUtils implements MOAIDAuthConstants{ return true;
}
else {
- Logger.error("Fehler Ueberpruefung Parameter bkuURI. bkuURI ist nicht auf Liste der vertrauenswuerdigen BKUs (Konfigurationselement: MOA-IDConfiguration/TrustedBKUs)");
- Logger.error("Ueberpruefte bkuURI: " + bkuURI);
+ Logger.error("Fehler Ueberpruefung Parameter bkuURI. "
+ + bkuURI + " ist nicht auf Liste der vertrauenswuerdigen BKUs (Konfigurationselement: MOA-IDConfiguration/TrustedBKUs)");
return false;
}
}
diff --git a/id/server/stork2-commons/pom.xml b/id/server/stork2-commons/pom.xml index b13035307..c1dd27924 100644 --- a/id/server/stork2-commons/pom.xml +++ b/id/server/stork2-commons/pom.xml @@ -122,8 +122,8 @@ <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> - <source>1.7</source> - <target>1.7</target> + <source>1.6</source> + <target>1.6</target> </configuration> </plugin> <plugin> diff --git a/id/server/stork2-commons/src/test/java/eu/stork/peps/tests/ComplexAttributesMarshalling.java b/id/server/stork2-commons/src/test/java/eu/stork/peps/tests/ComplexAttributesMarshalling.java index c7e195fa6..d411a2f42 100644 --- a/id/server/stork2-commons/src/test/java/eu/stork/peps/tests/ComplexAttributesMarshalling.java +++ b/id/server/stork2-commons/src/test/java/eu/stork/peps/tests/ComplexAttributesMarshalling.java @@ -88,10 +88,15 @@ public class ComplexAttributesMarshalling { m.marshal(objf.createCanonicalResidenceAddress(object), new FileOutputStream("CanonicalAddressType.xml"));
m.marshal(objf.createCanonicalResidenceAddress(object), System.out);
}
- catch (JAXBException | FileNotFoundException e)
+ catch (JAXBException e )
{
e.printStackTrace();
+
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+
}
+
}
/**
@@ -156,8 +161,14 @@ public class ComplexAttributesMarshalling { m.marshal(o.createHasAccountInBank(object), new FileOutputStream ("hasbankaccount.xml"));
m.marshal(o.createHasAccountInBank(object), System.out);
- } catch (JAXBException | FileNotFoundException e) {
+ }
+ catch (JAXBException e )
+ {
+ e.printStackTrace();
+
+ } catch (FileNotFoundException e) {
e.printStackTrace();
+
}
}
/**
@@ -68,8 +68,8 @@ <fork>true</fork>
<executable>${env.BUILD_EXECUTEABLE}</executable>
<compilerVersion>${env.BUILD_VERSION}</compilerVersion>
- <source>1.7</source>
- <target>1.7</target>
+ <source>1.6</source>
+ <target>1.6</target>
</configuration>
</plugin>
<plugin>
@@ -226,6 +226,12 @@ <scope>compile</scope>
</dependency>
<dependency>
+ <groupId>MOA.id.server</groupId>
+ <artifactId>moa-id-commons</artifactId>
+ <version>2.0.1</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
<groupId>MOA.spss.server</groupId>
<artifactId>moa-spss-lib</artifactId>
<version>2.0.1</version>
|