diff options
Diffstat (limited to 'id/server/idserverlib/src/main')
| -rw-r--r-- | id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java | 15 | 
1 files changed, 13 insertions, 2 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 704f8b8a9..371cfb1d7 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 @@ -180,10 +180,21 @@ public class AttributeCollector implements IAction {          IPersonalAttributeList requestAttributeList = container.getRequest().getPersonalAttributeList();          IPersonalAttributeList responseAttributeList = container.getResponse().getPersonalAttributeList();          List<PersonalAttribute> missingAttributes = new ArrayList<PersonalAttribute>(); +        Logger.debug("aquire list of missing attributes");          for (PersonalAttribute current : requestAttributeList) -            if (!responseAttributeList.containsKey(current.getName())) -                if(null == current.getStatus() || (null != current.getStatus() && !current.getStatus().equals(AttributeStatusType.WITHHELD.value()))) +            if (!responseAttributeList.containsKey(current.getName())) { +                if(null == current.getStatus() || (null != current.getStatus() && !current.getStatus().equals(AttributeStatusType.WITHHELD.value()))) { +                    // add the ones we need                      missingAttributes.add(current); +                    Logger.debug("add " + current.getName() + " to the list of missing attributes"); +                } +            } else { +                // remove the ones we do not want to share from the response list +                if(null != current.getStatus() && current.getStatus().equals(AttributeStatusType.WITHHELD.value())) { +                    responseAttributeList.remove(current.getName()); +                    Logger.debug("remove " + current.getName() + " from the list of resulting attributes because the user does not want to disclose the data"); +                } +            }          Logger.info("collecting attributes...");  		Logger.debug("found " + missingAttributes.size() + " missing attributes"); | 
