aboutsummaryrefslogtreecommitdiff
path: root/id.server/src/at/gv/egovernment/moa/id/proxy/DefaultLoginParameterResolver.java
diff options
context:
space:
mode:
Diffstat (limited to 'id.server/src/at/gv/egovernment/moa/id/proxy/DefaultLoginParameterResolver.java')
-rw-r--r--id.server/src/at/gv/egovernment/moa/id/proxy/DefaultLoginParameterResolver.java31
1 files changed, 21 insertions, 10 deletions
diff --git a/id.server/src/at/gv/egovernment/moa/id/proxy/DefaultLoginParameterResolver.java b/id.server/src/at/gv/egovernment/moa/id/proxy/DefaultLoginParameterResolver.java
index 033a74934..77f6652f3 100644
--- a/id.server/src/at/gv/egovernment/moa/id/proxy/DefaultLoginParameterResolver.java
+++ b/id.server/src/at/gv/egovernment/moa/id/proxy/DefaultLoginParameterResolver.java
@@ -1,6 +1,7 @@
package at.gv.egovernment.moa.id.proxy;
import java.io.IOException;
+import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -8,6 +9,7 @@ import java.util.Map;
import at.gv.egovernment.moa.id.config.proxy.OAConfiguration;
import at.gv.egovernment.moa.id.data.AuthenticationData;
import at.gv.egovernment.moa.util.Base64Utils;
+import at.gv.egovernment.moa.util.URLEncoder;
/**
* Implementation of interface <code>LoginParameterResolver</code>
@@ -79,7 +81,14 @@ public class DefaultLoginParameterResolver implements LoginParameterResolver {
for (Iterator iter = oaConf.getParamAuthMapping().keySet().iterator(); iter.hasNext();) {
String key = (String) iter.next();
String predicate = (String) oaConf.getParamAuthMapping().get(key);
- String resolvedValue = resolveValue(predicate, authData, clientIPAddress);
+ String resolvedValue;
+ try {
+ resolvedValue =
+ URLEncoder.encode(resolveValue(predicate, authData, clientIPAddress), "ISO-8859-1");
+ } catch (UnsupportedEncodingException e) {
+ //ISO-8859-1 is supported
+ resolvedValue = null;
+ }
result.put(key, resolvedValue);
}
}
@@ -97,27 +106,29 @@ public class DefaultLoginParameterResolver implements LoginParameterResolver {
private static String resolveValue(String predicate, AuthenticationData authData, String clientIPAddress) {
if (predicate.equals(MOAGivenName))
return authData.getGivenName();
- else if (predicate.equals(MOAFamilyName))
+ if (predicate.equals(MOAFamilyName))
return authData.getFamilyName();
- else if (predicate.equals(MOADateOfBirth))
+ if (predicate.equals(MOADateOfBirth))
return authData.getDateOfBirth();
- else if (predicate.equals(MOAVPK))
- return authData.getVPK();
- else if (predicate.equals(MOAPublicAuthority))
+ if (predicate.equals(MOABPK))
+ return authData.getPBK();
+ if (predicate.equals(MOAPublicAuthority))
if (authData.isPublicAuthority())
return "true";
else
return "false";
- else if (predicate.equals(MOABKZ))
+ if (predicate.equals(MOABKZ))
return authData.getPublicAuthorityCode();
- else if (predicate.equals(MOAQualifiedCertificate))
+ if (predicate.equals(MOAQualifiedCertificate))
if (authData.isQualifiedCertificate())
return "true";
else
return "false";
- else if (predicate.equals(MOAZMRZahl))
+ if (predicate.equals(MOAStammzahl))
return authData.getIdentificationValue();
- else if (predicate.equals(MOAIPAddress))
+ if (predicate.equals(MOAIdentificationValueType))
+ return authData.getIdentificationType();
+ if (predicate.equals(MOAIPAddress))
return clientIPAddress;
else return null;
}