aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/RequestManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/RequestManager.java')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/RequestManager.java48
1 files changed, 48 insertions, 0 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/RequestManager.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/RequestManager.java
new file mode 100644
index 000000000..a043bfde5
--- /dev/null
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/RequestManager.java
@@ -0,0 +1,48 @@
+package at.gv.egovernment.moa.id.protocols.pvp2x.requestHandler;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import at.gv.egovernment.moa.id.MOAIDException;
+import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;
+import at.gv.egovernment.moa.id.protocols.pvp2x.binding.MOARequest;
+import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.SAMLRequestNotSupported;
+
+public class RequestManager {
+
+ private static RequestManager instance = null;
+
+ private List<IRequestHandler> handler;
+
+ public static synchronized RequestManager getInstance() {
+ if(instance == null) {
+ instance = new RequestManager();
+ }
+ return instance;
+ }
+
+ private RequestManager() {
+ handler = new ArrayList<IRequestHandler>();
+ handler.add(new AuthnRequestHandler());
+ handler.add(new ArtifactResolution());
+ }
+
+ public void handle(MOARequest obj, HttpServletRequest req, HttpServletResponse resp, AuthenticationSession moasession)
+ throws SAMLRequestNotSupported, MOAIDException {
+ Iterator<IRequestHandler> it = handler.iterator();
+ while(it.hasNext()) {
+ IRequestHandler handler = it.next();
+ if(handler.handleObject(obj)) {
+ handler.process(obj, req, resp, moasession);
+ return;
+ }
+ }
+
+ // not handled
+ throw new SAMLRequestNotSupported();
+ }
+}