[java-identity-provider] branch master updated: Convert to ApplicationContextAware Function.

Scott Cantor cantor.2 at osu.edu
Tue Oct 15 15:22:09 EDT 2019


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch master
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=e9d3c0b94df2041e3f45fc07082e4d330fd1b7ce

The following commit(s) were added to refs/heads/master by this push:
       new  e9d3c0b   Convert to ApplicationContextAware Function.
e9d3c0b is described below

commit e9d3c0b94df2041e3f45fc07082e4d330fd1b7ce
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Oct 15 15:22:04 2019 -0400

    Convert to ApplicationContextAware Function.
---
 .../impl/SpringAwareMessageEncoderFactory.java     | 38 ++++++++++++----------
 1 file changed, 21 insertions(+), 17 deletions(-)

diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/SpringAwareMessageEncoderFactory.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/SpringAwareMessageEncoderFactory.java
index 8282a53..77bb0ff 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/SpringAwareMessageEncoderFactory.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/profile/impl/SpringAwareMessageEncoderFactory.java
@@ -17,41 +17,45 @@
 
 package net.shibboleth.idp.saml.profile.impl;
 
+import java.util.function.Function;
+
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.profile.context.SpringRequestContext;
 import net.shibboleth.idp.saml.binding.BindingDescriptor;
-import net.shibboleth.utilities.java.support.annotation.constraint.ThreadSafeAfterInit;
-import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 
 import org.opensaml.messaging.encoder.MessageEncoder;
-import org.opensaml.profile.action.MessageEncoderFactory;
 import org.opensaml.profile.context.ProfileRequestContext;
 import org.opensaml.saml.common.messaging.context.SAMLBindingContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
 
 
 /**
- * A factory that returns the correct {@link MessageEncoder} to use based on an underlying {@link BindingDescriptor}.
+ * A function that returns the correct {@link MessageEncoder} to use based on an underlying {@link BindingDescriptor}.
  */
- at ThreadSafeAfterInit
-public class SpringAwareMessageEncoderFactory extends AbstractInitializableComponent implements MessageEncoderFactory {
+public class SpringAwareMessageEncoderFactory
+        implements Function<ProfileRequestContext,MessageEncoder>, ApplicationContextAware {
 
     /** Class logger. */
     @Nonnull private final Logger log = LoggerFactory.getLogger(SpringAwareMessageEncoderFactory.class);
     
+    /** Application context injected by surroundings. */
+    @Nullable private ApplicationContext applicationContext;
+    
     /** {@inheritDoc} */
-    @Override
-    @Nullable public MessageEncoder getMessageEncoder(@Nonnull final ProfileRequestContext profileRequestContext) {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+    public void setApplicationContext(@Nullable final ApplicationContext context) {
+        applicationContext = context;
+    }
+    
+    /** {@inheritDoc} */
+    @Nullable public MessageEncoder apply(@Nullable final ProfileRequestContext profileRequestContext) {
         
-        final SpringRequestContext springContext = profileRequestContext.getSubcontext(SpringRequestContext.class);
-        if (springContext == null || springContext.getRequestContext() == null) {
-            log.warn("No Spring request context, unable to lookup message encoder bean");
+        if (applicationContext == null) {
+            log.warn("No Spring ApplicationContext set");
             return null;
         } else if (profileRequestContext.getOutboundMessageContext() == null) {
             log.warn("No outbound message context, unable to lookup message encoder");
@@ -70,9 +74,9 @@ public class SpringAwareMessageEncoderFactory extends AbstractInitializableCompo
         
         final BindingDescriptor descriptor = (BindingDescriptor) bindingContext.getBindingDescriptor();
         if (descriptor.getEncoderBeanId() != null) {
+            
             try {
-                return springContext.getRequestContext().getActiveFlow().getApplicationContext().getBean(
-                        descriptor.getEncoderBeanId(), MessageEncoder.class);
+                return applicationContext.getBean(descriptor.getEncoderBeanId(), MessageEncoder.class);
             } catch (final BeansException e) {
                 log.warn("Error instantiating message encoder from bean ID {}", descriptor.getEncoderBeanId(), e);
             }
@@ -81,5 +85,5 @@ public class SpringAwareMessageEncoderFactory extends AbstractInitializableCompo
         log.warn("Failed to find a message encoder based on binding URI: {}", bindingContext.getBindingUri());
         return null;
     }
-
+    
 }
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list