diff options
| author | Florian Reimair <florian.reimair@iaik.tugraz.at> | 2015-08-12 09:34:21 +0200 | 
|---|---|---|
| committer | Florian Reimair <florian.reimair@iaik.tugraz.at> | 2015-08-12 09:34:21 +0200 | 
| commit | eb0cf88708f3d689c2cb6bb0dbf83dd290bee887 (patch) | |
| tree | b5cbf3088a254c297a5e943e137233b9d33fed43 | |
| parent | ebe02bc990d362e39a37906385d7e470235e2627 (diff) | |
| download | moa-id-spss-eb0cf88708f3d689c2cb6bb0dbf83dd290bee887.tar.gz moa-id-spss-eb0cf88708f3d689c2cb6bb0dbf83dd290bee887.tar.bz2 moa-id-spss-eb0cf88708f3d689c2cb6bb0dbf83dd290bee887.zip | |
activated new saml engine
3 files changed, 1 insertions, 265 deletions
| diff --git a/id/server/idserverlib/pom.xml b/id/server/idserverlib/pom.xml index 19e81c36d..15a991700 100644 --- a/id/server/idserverlib/pom.xml +++ b/id/server/idserverlib/pom.xml @@ -75,7 +75,7 @@          <dependency>
              <groupId>eu.stork</groupId>
              <artifactId>SamlEngine</artifactId>
 -            <version>1.4.0</version>
 +            <version>1.5.1</version>
          </dependency>
  		<dependency>
 diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeProviderFactory.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeProviderFactory.java index 10b325234..a8a166a02 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeProviderFactory.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeProviderFactory.java @@ -25,7 +25,6 @@ package at.gv.egovernment.moa.id.protocols.stork2;  import at.gv.egovernment.moa.id.commons.db.dao.config.AttributeProviderPlugin;  import at.gv.egovernment.moa.id.protocols.stork2.attributeproviders.AttributeProvider;  import at.gv.egovernment.moa.id.protocols.stork2.attributeproviders.EHvdAttributeProviderPlugin; -import at.gv.egovernment.moa.id.protocols.stork2.attributeproviders.EHvdAttribute_deprecatedProviderPlugin;  import at.gv.egovernment.moa.id.protocols.stork2.attributeproviders.MandateAttributeRequestProvider;  import at.gv.egovernment.moa.id.protocols.stork2.attributeproviders.PVPAuthenticationProvider;  import at.gv.egovernment.moa.id.protocols.stork2.attributeproviders.SignedDocAttributeRequestProvider; @@ -50,7 +49,6 @@ public class AttributeProviderFactory {      public static List<String> getAvailablePlugins() {          List<String> result = new ArrayList<String>();          result.add("StorkAttributeRequestProvider"); -        result.add("EHvdAttributeProvider_deprecated");          result.add("EHvdAttributeProvider");          result.add("SignedDocAttributeRequestProvider");          result.add("MandateAttributeRequestProvider"); @@ -70,8 +68,6 @@ public class AttributeProviderFactory {              return new StorkAttributeRequestProvider(url, attributes);          } else if (shortname.equals("EHvdAttributeProvider")) {              return new EHvdAttributeProviderPlugin(url, attributes); -        } else if (shortname.equals("EHvdAttributeProvider_deprecated")) { -            return new EHvdAttribute_deprecatedProviderPlugin(url, attributes);          } else if (shortname.equals("SignedDocAttributeRequestProvider")) {              return new SignedDocAttributeRequestProvider(url, attributes);          } else if (shortname.equals("MandateAttributeRequestProvider")) { diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/EHvdAttribute_deprecatedProviderPlugin.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/EHvdAttribute_deprecatedProviderPlugin.java deleted file mode 100644 index a16603beb..000000000 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/EHvdAttribute_deprecatedProviderPlugin.java +++ /dev/null @@ -1,260 +0,0 @@ -/******************************************************************************* - * Copyright 2014 Federal Chancellery Austria - * MOA-ID has been developed in a cooperation between BRZ, the Federal - * Chancellery Austria - ICT staff unit, and Graz University of Technology. - * - * 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://www.osor.eu/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. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - *******************************************************************************/ -package at.gv.egovernment.moa.id.protocols.stork2.attributeproviders; - -import java.io.StringWriter; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.xml.bind.JAXBContext; -import javax.xml.bind.Marshaller; -import javax.xml.soap.MessageFactory; -import javax.xml.soap.SOAPBody; -import javax.xml.soap.SOAPConnection; -import javax.xml.soap.SOAPConnectionFactory; -import javax.xml.soap.SOAPElement; -import javax.xml.soap.SOAPEnvelope; -import javax.xml.soap.SOAPMessage; -import javax.xml.soap.SOAPPart; - -import at.gv.egovernment.moa.id.auth.builder.BPKBuilder; -import at.gv.egovernment.moa.id.auth.exception.MOAIDException; -import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.IAuthData; -import at.gv.egovernment.moa.id.protocols.stork2.ExternalAttributeRequestRequiredException; -import at.gv.egovernment.moa.id.protocols.stork2.MOASTORKRequest; -import at.gv.egovernment.moa.id.protocols.stork2.UnsupportedAttributeException; -import at.gv.egovernment.moa.logging.Logger; -import eu.stork.peps.auth.commons.IPersonalAttributeList; -import eu.stork.peps.auth.commons.PersonalAttribute; -import eu.stork.peps.auth.commons.PersonalAttributeList; -import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.AttributeStatusType; -import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.IsHealthCareProfessionalDeprecatedType; -import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.IsHealthCareProfessionalType; // IsHealthCareProfessionalDeprecatedType; -//import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion. _1_0.assertion.IsHealthCareProfessionalType; -import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.ObjectFactory; - -/** - * Fetches the attribute IsHealthcareProfessional from the BAGDAD SOAP service - */ -public class EHvdAttribute_deprecatedProviderPlugin extends AttributeProvider { -	 -	/** The destination. */ -	private Object destination; -	 -	/** -	 * Instantiates a new e hvd attribute provider plugin. -	 * -	 * @param url the service url -	 * @param supportedAttributes -	 */ -	public EHvdAttribute_deprecatedProviderPlugin(String url, String supportedAttributes) { -		super(supportedAttributes); -		destination = url; -	} - -	/* (non-Javadoc) -	 * @see at.gv.egovernment.moa.id.protocols.stork2.AttributeProvider#acquire(eu.stork.peps.auth.commons.PersonalAttribute) -	 */ -	@Override -	protected IPersonalAttributeList acquire(PersonalAttribute attribute, MOASTORKRequest moastorkRequest, IAuthData authData) -			throws UnsupportedAttributeException, -			ExternalAttributeRequestRequiredException, MOAIDException { - -		// break when we cannot handle the requested attribute -		if(!attributes.contains(attribute.getName())) -			throw new UnsupportedAttributeException(); -		 -		try { -	    	Logger.debug("initializing SOAP connections..."); -			// create SOAP connection -			SOAPConnection soapConnection = SOAPConnectionFactory.newInstance().createConnection(); -			 -			// assemble SOAP request -			MessageFactory messageFactory = MessageFactory.newInstance(); -			SOAPMessage requestMessage = messageFactory.createMessage(); -			SOAPPart requestPart = requestMessage.getSOAPPart(); - -			// (soap 1.1 relevant part. could not find a solution to use soap 1.2 in time. -			requestMessage.getMimeHeaders().setHeader("SOAPAction", "http://gesundheit.gv.at/BAGDAD/DataAccessService/IsHealthcareProfessional"); - -            /* -            Construct SOAP Request Message: -			<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> -			  <soap:Body> -			    <IsHealthcareProfessional xmlns="http://gesundheit.gv.at/BAGDAD/DataAccessService"> -			      <bPK>string</bPK> -			    </IsHealthcareProfessional> -			  </soap:Body> -			</soap:Envelope> - -			see https://stork.ehealth.gv.at/GDAService.asmx?op=IsHealthcareProfessional -             */ - -			// SOAP Envelope -			SOAPEnvelope envelope = requestPart.getEnvelope(); - -			// SOAP Body -			SOAPBody requestBody = envelope.getBody(); -			SOAPElement requestBodyElem = requestBody.addChildElement("IsHealthcareProfessional"); -			requestBodyElem.addAttribute(envelope.createName("xmlns"), "http://gesundheit.gv.at/BAGDAD/DataAccessService"); - -			SOAPElement requestBodyElem1 = requestBodyElem.addChildElement("bPK"); -			 -			//TODO: CHECK: IdentificationValue containts wbPK if MOA-ID is used as VIDP  -			requestBodyElem1.addTextNode(new BPKBuilder().buildBPK(authData.getIdentificationValue(), "GH")); - -			requestMessage.saveChanges(); - -			// perform SOAP call -	    	Logger.debug("call..."); -			SOAPMessage responseMessage = soapConnection.call(requestMessage, destination); - -			// parse SOAP response - -            /* -			<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> -			  <soap:Body> -			    <IsHealthcareProfessionalResponse xmlns="http://gesundheit.gv.at/BAGDAD/DataAccessService"> -			      <IsHealthcareProfessionalResult> -			        <RequestOK>boolean</RequestOK> -			        <Message>string</Message> -			        <IsHealthcareProfessional>boolean</IsHealthcareProfessional> -			        <NameOfOrganisation>string</NameOfOrganisation> -			        <Type>string</Type> -			        <Specialization>string</Specialization> -			      </IsHealthcareProfessionalResult> -			    </IsHealthcareProfessionalResponse> -			  </soap:Body> -			</soap:Envelope> - -			see https://stork.ehealth.gv.at/GDAService.asmx?op=IsHealthcareProfessional -             */ -	    	Logger.debug("call successful. Parse..."); -			SOAPBody responseBody = responseMessage.getSOAPBody(); - -			// iterate through tree -			SOAPElement responseElement = (SOAPElement) responseBody.getChildElements().next(); -			SOAPElement resultElement = (SOAPElement) responseElement.getChildElements().next(); - -			// collect all info in a map -			Iterator<?> it = resultElement.getChildElements(); -			Map<String, String> collection = new HashMap<String, String>(); -			while (it.hasNext()) { -				SOAPElement current = (SOAPElement) it.next(); - -				collection.put(current.getNodeName(), current.getTextContent()); -			} - -			// check if there is anything valid in the map -			if (collection.isEmpty() || collection.size() != 6) { -				Logger.warn("eHVD returned an unexpected count of values. Expected 6 got " + collection.size()); -				throw new IndexOutOfBoundsException("response attributes not like specified"); -			} - -			// - fetch request validity -			if (collection.get("RequestOK").equals("false")) { -				Logger.warn("eHVD reported an invalid request. The error message is: " + collection.get("Message")); -				throw new Exception("eHVD reported an invalid request"); -			} - -			PersonalAttribute acquiredAttribute = null; - -			if (collection.get("IsHealthcareProfessional").equals("false")) { -				// the citizen is no HCP -				acquiredAttribute = new PersonalAttribute("isHealthCareProfessional", false, new ArrayList<String>(), AttributeStatusType.NOT_AVAILABLE.value()); -			} else { -				// go on and parse the data -                IsHealthCareProfessionalDeprecatedType result = new IsHealthCareProfessionalDeprecatedType(); -				result.setNameOfOrganisation(collection.get("NameOfOrganisation")); - -				if (collection.get("Type").equals("Medical doctor")) -					result.setHCPType("D"); -				else -					result.setHCPType("?"); - -				if (collection.get("Specialization").contains("Arzt für Allgemeinmedizin")) -					result.setSpecialisation("GP"); -				else -					result.setSpecialisation("??"); - -				result.setAQAA(4); - -				final Marshaller m = JAXBContext.newInstance(IsHealthCareProfessionalDeprecatedType.class).createMarshaller(); -			    m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); -			     -			    StringWriter stringWriter = new StringWriter(); -			    m.marshal(new ObjectFactory().createIsHealthCareProfessionalDeprecated(result), stringWriter);		     -				 -				ArrayList<String> value = new ArrayList<String>(); -				value.add(stringWriter.toString()); - -				acquiredAttribute = new PersonalAttribute("isHealthCareProfessional", false, value, AttributeStatusType.AVAILABLE.value()); -			} - -			// pack and return the result -			PersonalAttributeList result = new PersonalAttributeList(); -			result.add(acquiredAttribute); - -			// add stork id for verification -			ArrayList<String> value = new ArrayList<String>(); -			value.add(new BPKBuilder().buildStorkeIdentifier(authData.getIdentityLink(), moastorkRequest.getSpCountry())); -			result.add(new PersonalAttribute("eIdentifier", false, value, AttributeStatusType.AVAILABLE.value())); - -			return result; -		} catch (Exception e) { -			throw new MOAIDException("stork.13", new Object[] { e }); -		} -	} - -    /* (non-Javadoc) -     * @see at.gv.egovernment.moa.id.protocols.stork2.AttributeProvider#performRedirect(java.lang.String, java.lang.String, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, at.gv.egovernment.moa.id.config.auth.OAAuthParameter) -     */ -	public void performRedirect(String url, -			HttpServletRequest req, HttpServletResponse resp, -			OAAuthParameter oaParam) throws MOAIDException { -		// there is no redirect required -	} - -	/* (non-Javadoc) -	 * @see at.gv.egovernment.moa.id.protocols.stork2.AttributeProvider#parse(javax.servlet.http.HttpServletRequest) -	 */ -	public IPersonalAttributeList parse(HttpServletRequest httpReq) -			throws UnsupportedAttributeException, MOAIDException { -		// there is no redirect required, so we throw an exception when someone asks us to parse a response -		throw new UnsupportedAttributeException(); -	} - -	/* (non-Javadoc) -	 * @see at.gv.egovernment.moa.id.protocols.stork2.attributeproviders.AttributeProvider#getPriority() -	 */ -	@Override -	public int getPriority() { -		return 99; -	} - -} | 
