aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeProvider.java
diff options
context:
space:
mode:
authorFlorian Reimair <florian.reimair@iaik.tugraz.at>2014-02-11 10:33:48 +0100
committerFlorian Reimair <florian.reimair@iaik.tugraz.at>2014-02-13 22:06:01 +0100
commit639017a14904323c0eb2cd5d8cccf65ad8f2a841 (patch)
tree5afd5a8084ac128b1b28230c02c1cf628cf15ea9 /id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeProvider.java
parenta01dd39072666b5b9b2ffeb97cef9a54e3dec97f (diff)
downloadmoa-id-spss-639017a14904323c0eb2cd5d8cccf65ad8f2a841.tar.gz
moa-id-spss-639017a14904323c0eb2cd5d8cccf65ad8f2a841.tar.bz2
moa-id-spss-639017a14904323c0eb2cd5d8cccf65ad8f2a841.zip
sketched stork attribute provider framework
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeProvider.java')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeProvider.java32
1 files changed, 32 insertions, 0 deletions
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
new file mode 100644
index 000000000..2e4f2d8c5
--- /dev/null
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeProvider.java
@@ -0,0 +1,32 @@
+package at.gv.egovernment.moa.id.protocols.stork2;
+
+import javax.activation.UnsupportedDataTypeException;
+import javax.servlet.http.HttpServletRequest;
+
+import eu.stork.peps.auth.commons.PersonalAttribute;
+
+/**
+ * An {@link AttributeProvider} can fetch a set of stork attributes. It might complete the query within one method call,
+ * but might also need to redirect to another webservice to accomplish its task.
+ */
+public interface AttributeProvider {
+
+ /**
+ * Acquire the specified attribute. Returns {@code null} when attribute retrieval is in progress, but requires for
+ * for redirecting the user to an external service. Use {@link AttributeProvider#parse(HttpServletRequest)} to parse
+ * the response.
+ *
+ * @param attributeName the attribute name
+ * @return the personal attribute
+ * @throws UnsupportedDataTypeException when the provider cannot acquire the specified attribute
+ */
+ public PersonalAttribute acquire(String attributeName) throws UnsupportedAttributeException;
+
+ /**
+ * Parses the response we got from the external attribute provider.
+ *
+ * @param httpReq the http req
+ * @return the personal attribute
+ */
+ public PersonalAttribute parse(HttpServletRequest httpReq);
+}