[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