diff options
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilder.java')
-rw-r--r-- | id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilder.java | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilder.java index fe73ce16b..4ef8dc359 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilder.java @@ -16,8 +16,13 @@ package at.gv.egovernment.moa.id.auth.builder; import java.text.MessageFormat; +import java.util.Calendar; +import at.gv.egovernment.moa.id.auth.data.AuthenticationSession; +import at.gv.egovernment.moa.id.config.TargetToSectorNameMapper; +import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; import at.gv.egovernment.moa.util.Constants; +import at.gv.egovernment.moa.util.DateTimeUtils; import at.gv.egovernment.moa.util.StringUtils; /** @@ -105,4 +110,137 @@ public class CreateXMLSignatureRequestBuilder implements Constants { return request; } + + /** + * Builds the <code><CreateXMLSignatureRequest></code> for a foreign ID. + * + * @param subject the subject of the foreign certificate + * @param oaParam parameter for the OA + * @param session current session + * @return String representation of <code><CreateXMLSignatureRequest></code> + */ + public String buildForeignID(String subject, OAAuthParameter oaParam, AuthenticationSession session) { + + String target = session.getTarget(); + String sectorName = TargetToSectorNameMapper.getSectorNameViaTarget(target); + + Calendar cal = Calendar.getInstance(); + String date = DateTimeUtils.buildDate(cal); + String time = DateTimeUtils.buildTime(cal); + + String request = ""; + request += "<sl:CreateXMLSignatureRequest xmlns:sl=\"http://www.buergerkarte.at/namespaces/securitylayer/1.2#\">"; + request += "<sl:KeyboxIdentifier>SecureSignatureKeypair</sl:KeyboxIdentifier>"; + request += "<sl:DataObjectInfo Structure=\"enveloping\">"; + request += "<sl:DataObject>"; + request += "<sl:XMLContent>"; + + request += "<html xmlns=\"http://www.w3.org/1999/xhtml\">"; + request += "<head>"; + request += "<title>Signatur der Anmeldedaten</title>"; + request += "<style type=\"text/css\" media=\"screen\">.boldstyle { font-weight: bold; } .italicstyle { font-style: italic; } .annotationstyle { font-size: small; } .graybground {background-color: #E0E0E0;}"; + request += ".titlestyle{ text-decoration:underline; font-weight:bold; font-family: Verdana; font-size: x-small; }"; + request += ".ernpstyle { font-size: x-small; }"; + request += ".h4style{ font-family: Verdana; }"; + request += "table.parameters { font-size: x-small; }"; + request += "</style>"; + request += "</head>"; + request += "<body>"; + request += "<h4 class=\"h4style\">Authentication Data:</h4>"; + request += "<p class=\"titlestyle\">Personal Data</p>"; + request += "<table class=\"parameters\">"; + request += "<tr>"; + request += "<td class=\"italicstyle\">Name:</td>"; + request += "<td>"; + request += subject; + request += "</td>"; + request += "</tr>"; + request += "</table>"; + request += "<p class=\"titlestyle\">Application Data</p>"; + request += "<table class=\"parameters\">"; + request += "<tr>"; + request += "<td class=\"italicstyle\">Name:</td>"; + request += "<td>"; + // friendlyname from OA + request += StringUtils.isEmpty(oaParam.getFriendlyName()) ? "" : oaParam.getFriendlyName(); + request += "</td>"; + request += "</tr>"; + request += "<tr>"; + request += "<td class=\"italicstyle\">Country:</td>"; + request += "<td>Austria</td>"; + request += "</tr>"; + request += "</table>"; + request += "<p class=\"titlestyle\">Technical Parameters</p>"; + request += "<table class=\"parameters\">"; + request += "<tr>"; + request += "<td class=\"italicstyle\">URL:</td>"; + request += "<td>"; + //public URL prefix from OA + request += oaParam.getPublicURLPrefix(); + request += "</td>"; + request += "</tr>"; + boolean business = oaParam.getBusinessService(); + if (business) { + // OA is businessservice + String identifierType = oaParam.getIdentityLinkDomainIdentifierType(); + String identifier = oaParam.getIdentityLinkDomainIdentifier(); + request += "<tr>"; + request += "<td class=\"italicstyle\">"; + request += identifierType + ":"; + request += "</td>"; + request += "<td>"; + request += identifier; + request += "</td>"; + request += "</tr>"; + } + else { + // OA is publicservice + request += "<tr>"; + request += "<td class=\"italicstyle\">"; + request += "Sector:</td>"; + request += "<td>"; + request += target + " (" + sectorName + ")"; + request += "</td>"; + request += "</tr>"; + + } + + request += "<tr>"; + request += "<td class=\"italicstyle\">Date:</td>"; + request += "<td>"; + request += date; + request += "</td>"; + request += "</tr>"; + request += "<tr>"; + request += "<td class=\"italicstyle\">Time:</td>"; + request += "<td>"; + request += time; + request += "</td>"; + request += "</tr>"; + request += "</table>"; + + request += "<p class=\"ernpstyle\">I hereby request to access this e-government application by using my " + + "domestic electronic identity. <br/>" + + "I further affirm that I am not yet registered with the Austrian Central " + + "Residents Registry and that I am not obliged to register with the Austrian " + + "Central Residents Registry according to Austrian law.<br/>" + + "In the event I am not yet registered with the Supplementary Register, I " + + "explicitly grant to do so according to §6 (5) E-Government Act (EGovG, idF: " + + "BGBl. I Nr. 7/2008 und BGBl. I Nr. 59/2008).</p>"; + + request += "</body>"; + request += "</html>"; + + request += "</sl:XMLContent>"; + request += "</sl:DataObject>"; + request += "<sl:TransformsInfo>"; + request += "<sl:FinalDataMetaInfo>"; + request += "<sl:MimeType>application/xhtml+xml</sl:MimeType>"; + request += "</sl:FinalDataMetaInfo>"; + request += "</sl:TransformsInfo>"; + request += "</sl:DataObjectInfo>"; + request += "</sl:CreateXMLSignatureRequest>"; + + return request; + } } |