summaryrefslogtreecommitdiff
path: root/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/verification/PvpSamlMessageHandlerChain.java
diff options
context:
space:
mode:
authorThomas Lenz <thomas.lenz@egiz.gv.at>2020-01-31 20:41:54 +0100
committerThomas Lenz <thomas.lenz@egiz.gv.at>2020-01-31 20:41:54 +0100
commitd41afe91ee59daf6b5f5037cecac52900fe2ccb2 (patch)
tree3a19e1818d276d701574758ce6166b2f3a7e2030 /eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/verification/PvpSamlMessageHandlerChain.java
parent0cf9926282ba4aa46bad3f4e8020cec72683492f (diff)
downloadEAAF-Components-d41afe91ee59daf6b5f5037cecac52900fe2ccb2.tar.gz
EAAF-Components-d41afe91ee59daf6b5f5037cecac52900fe2ccb2.tar.bz2
EAAF-Components-d41afe91ee59daf6b5f5037cecac52900fe2ccb2.zip
a lot of more OpenSAML3 refactoring staff
This version is also NOT stable!
Diffstat (limited to 'eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/verification/PvpSamlMessageHandlerChain.java')
-rw-r--r--eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/verification/PvpSamlMessageHandlerChain.java71
1 files changed, 71 insertions, 0 deletions
diff --git a/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/verification/PvpSamlMessageHandlerChain.java b/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/verification/PvpSamlMessageHandlerChain.java
new file mode 100644
index 00000000..e43d0423
--- /dev/null
+++ b/eaaf_modules/eaaf_module_pvp2_core/src/main/java/at/gv/egiz/eaaf/modules/pvp2/impl/verification/PvpSamlMessageHandlerChain.java
@@ -0,0 +1,71 @@
+package at.gv.egiz.eaaf.modules.pvp2.impl.verification;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.opensaml.messaging.context.MessageContext;
+import org.opensaml.messaging.handler.MessageHandler;
+import org.opensaml.messaging.handler.MessageHandlerChain;
+import org.opensaml.messaging.handler.MessageHandlerException;
+import org.opensaml.saml.common.SAMLObject;
+
+import lombok.extern.slf4j.Slf4j;
+import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+
+@Slf4j
+public class PvpSamlMessageHandlerChain implements MessageHandlerChain<SAMLObject> {
+ private final List<MessageHandler<SAMLObject>> handlers = new ArrayList<>();
+ private boolean isInitialized = false;
+
+ @Override
+ public void invoke(MessageContext<SAMLObject> messageContext) throws MessageHandlerException {
+ if (!isInitialized) {
+ throw new RuntimeException("Component: "
+ + PvpSamlMessageHandlerChain.class.getName() + " not initialized");
+
+ }
+ for (final MessageHandler<SAMLObject> handler : getHandlers()) {
+ log.trace("Initializing SAML message handler: {}", handler.getClass().getName());
+ handler.invoke(messageContext);
+
+ }
+
+ }
+
+ @Override
+ public boolean isInitialized() {
+ return isInitialized;
+
+ }
+
+ @Override
+ public void initialize() throws ComponentInitializationException {
+ if (!isInitialized) {
+ for (final MessageHandler<SAMLObject> handler : getHandlers()) {
+ log.trace("Initializing SAML message handler: {}", handler.getClass().getName());
+ handler.initialize();
+
+ }
+
+ isInitialized = true;
+ }
+
+ }
+
+ @Override
+ public List<MessageHandler<SAMLObject>> getHandlers() {
+ return handlers;
+
+ }
+
+ public void addHandler(MessageHandler<SAMLObject> handler) {
+ handlers.add(handler);
+
+ }
+
+ public void addHandlers(List<MessageHandler<SAMLObject>> handlerList) {
+ handlers.addAll(handlerList);
+
+ }
+
+}