aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/BPKListAttributeBuilder.java
diff options
context:
space:
mode:
authorThomas Lenz <tlenz@iaik.tugraz.at>2020-07-07 15:25:58 +0200
committerThomas Lenz <tlenz@iaik.tugraz.at>2020-07-07 15:25:58 +0200
commit0e6a03ffbc11d07ee2d00abcd573239a971f89b5 (patch)
tree8bce1f4fb963185ba7e36e63bd282199cccba840 /id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/BPKListAttributeBuilder.java
parentaebaed0e889413491b5769babf39a200bd312992 (diff)
parentf8a4ef47e8a2a37402a400ea83650738c5d5cf2a (diff)
downloadmoa-id-spss-0e6a03ffbc11d07ee2d00abcd573239a971f89b5.tar.gz
moa-id-spss-0e6a03ffbc11d07ee2d00abcd573239a971f89b5.tar.bz2
moa-id-spss-0e6a03ffbc11d07ee2d00abcd573239a971f89b5.zip
Merge branch 'current_development' into development_preview
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/BPKListAttributeBuilder.java')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/BPKListAttributeBuilder.java41
1 files changed, 26 insertions, 15 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/BPKListAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/BPKListAttributeBuilder.java
index c5a8d88b7..8891dc6ab 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/BPKListAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/BPKListAttributeBuilder.java
@@ -1,6 +1,7 @@
package at.gv.egovernment.moa.id.protocols.builder.attributes;
+import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -28,25 +29,35 @@ public class BPKListAttributeBuilder extends BPKAttributeBuilder implements IPVP
public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
IAttributeGenerator<ATT> g) throws AttributeBuilderException {
- String result = LIST_ELEMENT_START + getBpkForSP(authData) + LIST_ELEMENT_END;
- //add additional bPKs if someone are available
- if (authData.getAdditionalbPKs() != null && !authData.getAdditionalbPKs().isEmpty()) {
- log.info("Adding additional bPKs into bPK attribute");
- for (Pair<String, String> el : authData.getAdditionalbPKs()) {
- result += DELIMITER_BPK_LIST
- + LIST_ELEMENT_START
- + removeBpkTypePrefix(el.getSecond())
- + DELIMITER_BPKTYPE_BPK
- + attrMaxSize(el.getFirst())
- + LIST_ELEMENT_END;
+ //get PVP attribute directly, if exists
+ String bpkListAttribute = authData.getGenericData(BPK_LIST_NAME, String.class);
+ if (StringUtils.isEmpty(bpkListAttribute)) {
+ String result = LIST_ELEMENT_START + getBpkForSP(authData) + LIST_ELEMENT_END;
+
+ //add additional bPKs if someone are available
+ if (authData.getAdditionalbPKs() != null && !authData.getAdditionalbPKs().isEmpty()) {
+ log.info("Adding additional bPKs into bPK attribute");
+ for (Pair<String, String> el : authData.getAdditionalbPKs()) {
+ result += DELIMITER_BPK_LIST
+ + LIST_ELEMENT_START
+ + removeBpkTypePrefix(el.getSecond())
+ + DELIMITER_BPKTYPE_BPK
+ + attrMaxSize(el.getFirst())
+ + LIST_ELEMENT_END;
+ }
+ log.trace("Authenticate user with bPK-List: " + result);
}
- log.trace("Authenticate user with bPK-List: " + result);
- }
- log.trace("Authenticate user with bPK/wbPK: " + result);
- return g.buildStringAttribute(BPK_LIST_FRIENDLY_NAME, BPK_LIST_NAME, result);
+ log.trace("Authenticate user with bPK/wbPK: " + result);
+ return g.buildStringAttribute(BPK_LIST_FRIENDLY_NAME, BPK_LIST_NAME, result);
+
+ } else {
+ log.trace("Authenticate user with bPK/wbPK: " + bpkListAttribute);
+ return g.buildStringAttribute(BPK_LIST_FRIENDLY_NAME, BPK_LIST_NAME, bpkListAttribute);
+
+ }
}
public <ATT> ATT buildEmpty(IAttributeGenerator<ATT> g) {