diff options
| author | Bojan Suzic <bojan.suzic@iaik.tugraz.at> | 2014-05-14 17:18:29 +0200 | 
|---|---|---|
| committer | Bojan Suzic <bojan.suzic@iaik.tugraz.at> | 2014-05-14 17:18:29 +0200 | 
| commit | e35dad4b75514aee5d1b019aa1cc44828a0b707b (patch) | |
| tree | bebf99f84a7a70f349a235d656c5eb7c7b0cde5e /id/server/idserverlib | |
| parent | 46c0d02baddd94c96bcfea5d27291ec25d838794 (diff) | |
| download | moa-id-spss-e35dad4b75514aee5d1b019aa1cc44828a0b707b.tar.gz moa-id-spss-e35dad4b75514aee5d1b019aa1cc44828a0b707b.tar.bz2 moa-id-spss-e35dad4b75514aee5d1b019aa1cc44828a0b707b.zip | |
requisting only attributes that can be handled by attribute provider
Diffstat (limited to 'id/server/idserverlib')
5 files changed, 35 insertions, 5 deletions
| diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java index e39f3606e..2f6dfe555 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java @@ -172,14 +172,28 @@ public class AttributeCollector implements IAction {  				aquiredAttributes.add((PersonalAttribute) currentAttribute.clone());  				addOrUpdateAll(container.getResponse().getPersonalAttributeList(), aquiredAttributes);              	// - check if we can find a suitable AttributeProvider Plugin +                  for (AttributeProvider currentProvider : AttributeProviderFactory.getConfiguredPlugins(oaParam.getStorkAPs())) { +                    // build a section of attribute provider's predefined attributes and missing attributes +                    // only missing attributes that can be handled by attribute provider will be sent to it +                    List<PersonalAttribute> currentProviderConfiguredAttributes = new ArrayList<PersonalAttribute>(); +                    for (String attributeName : currentProvider.getSupportedAttributeNames())  { +                        for (PersonalAttribute missingAttribute : missingAttributes) { +                            if (missingAttribute.getName().equals(attributeName)) { +                                currentProviderConfiguredAttributes.add(missingAttribute); +                                break; +                            } +                        } +                    } +                      try {                          // - hand over control to the suitable plugin                      	Logger.info(currentProvider.getClass().getSimpleName() + " called to handle attribute '" + currentAttribute.getName() + "'");                          //aquiredAttributes = currentProvider.acquire(currentAttribute, container.getRequest().getSpCountry(), moasession); -                        aquiredAttributes = currentProvider.acquire(missingAttributes, container.getRequest().getSpCountry(), moasession); +                        //aquiredAttributes = currentProvider.acquire(missingAttributes, container.getRequest().getSpCountry(), moasession); +                        aquiredAttributes = currentProvider.acquire(currentProviderConfiguredAttributes, container.getRequest().getSpCountry(), moasession);                          Logger.info(currentProvider.getClass().getSimpleName() + " can handle attribute '" + currentAttribute.getName() + "'");                          break; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeProvider.java index 8203c0c63..d7a4bfcc2 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeProvider.java @@ -62,7 +62,7 @@ public interface AttributeProvider {       * @return a list of attributes       * @throws MOAIDException if something went wrong       */ -    //public IPersonalAttributeList getSupportedAttributes() throws MOAIDException; +    public List<String> getSupportedAttributeNames() throws MOAIDException; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/EHvdAttributeProviderPlugin.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/EHvdAttributeProviderPlugin.java index 332d407be..c132d5640 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/EHvdAttributeProviderPlugin.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/EHvdAttributeProviderPlugin.java @@ -226,4 +226,13 @@ public class EHvdAttributeProviderPlugin implements AttributeProvider {  		// there is no redirect required, so we throw an exception when someone asks us to parse a response  		throw new UnsupportedAttributeException();  	} + +    @Override +    public List<String> getSupportedAttributeNames() throws MOAIDException { +        ArrayList<String> supportedAttributeNames = new ArrayList<String>(); +        for (String attributeName : this.attributes.split(",")) { +            supportedAttributeNames.add(attributeName); +        } +        return supportedAttributeNames; +    }  } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateAttributeRequestProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateAttributeRequestProvider.java index ccbe2abbd..d4f7066d0 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateAttributeRequestProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateAttributeRequestProvider.java @@ -18,6 +18,7 @@ import org.apache.velocity.app.VelocityEngine;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse;  import java.io.StringWriter; +import java.util.ArrayList;  import java.util.List;  /** @@ -151,6 +152,15 @@ public class MandateAttributeRequestProvider implements AttributeProvider {          return null;  //      } +    @Override +    public List<String> getSupportedAttributeNames() throws MOAIDException { +        ArrayList<String> supportedAttributeNames = new ArrayList<String>(); +        for (String attributeName : this.attributes.split(",")) { +            supportedAttributeNames.add(attributeName); +        } +        return supportedAttributeNames; +    } +  } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateRetrievalRequest.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateRetrievalRequest.java index 1e2811f74..ade2a0301 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateRetrievalRequest.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateRetrievalRequest.java @@ -159,9 +159,6 @@ public class MandateRetrievalRequest implements IAction {                  new ConsentEvaluator().requestConsent(container, httpResp, oaParam);              else                  new ConsentEvaluator().generateSTORKResponse(httpResp, container); - - -            //return (new AttributeCollector()).processRequest(container, httpReq, httpResp, moasession, oaParam);          } | 
