diff options
| author | Florian Reimair <florian.reimair@iaik.tugraz.at> | 2016-01-05 11:01:00 +0100 | 
|---|---|---|
| committer | Florian Reimair <florian.reimair@iaik.tugraz.at> | 2016-01-05 11:23:43 +0100 | 
| commit | 5371cce8ad520a49840c37cdf1d952c233f47320 (patch) | |
| tree | b0fb925b0e486650c926367d50fd437ca0e76635 | |
| parent | 0aecf1865143cf6dc86980a279836f443616495c (diff) | |
| download | moa-id-spss-5371cce8ad520a49840c37cdf1d952c233f47320.tar.gz moa-id-spss-5371cce8ad520a49840c37cdf1d952c233f47320.tar.bz2 moa-id-spss-5371cce8ad520a49840c37cdf1d952c233f47320.zip | |
metadata delivery. draft but working.
2 files changed, 91 insertions, 0 deletions
| diff --git a/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/tasks/GenerateAuthnRequestTask.java b/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/tasks/GenerateAuthnRequestTask.java index 159728e92..c4f7bdae0 100644 --- a/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/tasks/GenerateAuthnRequestTask.java +++ b/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/tasks/GenerateAuthnRequestTask.java @@ -106,6 +106,8 @@ public class GenerateAuthnRequestTask extends AbstractAuthServletTask {  			int qaaLevel = 1;  			authnRequest.setQaa(qaaLevel);  			authnRequest.setPersonalAttributeList(pAttList); +			String issuer = "http://localhost:12344/moa-id-auth/eidas/metadata"; +			authnRequest.setIssuer(issuer);  			engine.initRequestedAttributes(pAttList);  			authnRequest = engine.generateEIDASAuthnRequest(authnRequest); diff --git a/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/utils/EidasMetaDataServlet.java b/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/utils/EidasMetaDataServlet.java new file mode 100644 index 000000000..dd7671765 --- /dev/null +++ b/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/utils/EidasMetaDataServlet.java @@ -0,0 +1,89 @@ +/******************************************************************************* + *  Copyright 2015 e-SENS project + * + *  Licensed under the EUPL, Version 1.1 or - as soon they will be + *  approved by the European Commission - subsequent versions of + *  the EUPL (the "Licence"); + *  You may not use this work except in compliance with the Licence. + *  You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl + * + *  Unless required by applicable law or agreed to in writing, software + *  distributed under the Licence is distributed on an "AS IS" basis, + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + *  implied. + *  See the Licence for the specific language governing permissions and + *  limitations under the Licence. + *******************************************************************************/ +package at.gv.egovernment.moa.id.auth.modules.eidas.utils; +import iaik.security.ecc.provider.ECCProvider; +import iaik.security.provider.IAIK; + +import java.io.IOException; +import java.security.Security; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.slf4j.Logger; + +import at.gv.egovernment.moa.id.auth.modules.eidas.exceptions.EIDASEngineException; +import eu.eidas.auth.engine.EIDASSAMLEngine; +import eu.eidas.auth.engine.metadata.MetadataConfigParams; +import eu.eidas.auth.engine.metadata.MetadataGenerator; +import eu.eidas.engine.exceptions.SAMLEngineException; + + +/** + * First version to provide some valid metadata to an asking eIDaS node + */ +@WebServlet("/eidas/metadata") +public class EidasMetaDataServlet extends HttpServlet { +    private static final long serialVersionUID = -2129228304760706063L; +    private Logger logger = org.slf4j.LoggerFactory.getLogger(EidasMetaDataServlet.class);  +    /** +     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse +     *      response) +     */ +    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { +        try { +            logger.info("EidasMetaDataServlet GET"); +             +            String metadata_url = "metadataurl"; +            String sp_return_url = "sp_return_url"; +            String metaData = generateMetadata(metadata_url, sp_return_url); + +            response.setContentType("text/html"); +            response.getWriter().print(metaData); +            response.flushBuffer(); +        } catch (Exception e) { +            e.printStackTrace(); +        }  +    } + +    public String generateMetadata(String metadata_url, String sp_return_url) throws SAMLEngineException, EIDASEngineException{ +        String metadata="invalid metadata"; +         +		// FIXME workaround!? +		Security.removeProvider("IAIK"); +		Security.removeProvider("IAIK_ECC"); + +		EIDASSAMLEngine engine = SAMLEngineUtils.createSAMLEngine(); + +		IAIK.addAsProvider(); +		ECCProvider.addAsProvider(true); +         +        MetadataGenerator generator = new MetadataGenerator(); +        MetadataConfigParams mcp=new MetadataConfigParams(); +        generator.setConfigParams(mcp); +        generator.initialize(engine); +        mcp.setEntityID(metadata_url); +        generator.addSPRole(); // TODO addIDPRole(); +        String returnUrl = sp_return_url; +        mcp.setAssertionConsumerUrl(returnUrl); +        metadata = generator.generateMetadata(); +        return metadata; +    } +} | 
