Class ChannelSecurityInterceptor
- java.lang.Object
-
- org.springframework.security.access.intercept.AbstractSecurityInterceptor
-
- org.springframework.security.messaging.access.intercept.ChannelSecurityInterceptor
-
- All Implemented Interfaces:
org.springframework.beans.factory.Aware
,org.springframework.beans.factory.InitializingBean
,org.springframework.context.ApplicationEventPublisherAware
,org.springframework.context.MessageSourceAware
,org.springframework.messaging.support.ChannelInterceptor
public final class ChannelSecurityInterceptor extends AbstractSecurityInterceptor implements org.springframework.messaging.support.ChannelInterceptor
Performs security handling of Message resources via a ChannelInterceptor implementation.The
SecurityMetadataSource
required by this security interceptor is of typeMessageSecurityMetadataSource
.Refer to
AbstractSecurityInterceptor
for details on the workflow.- Since:
- 4.0
-
-
Field Summary
-
Fields inherited from class org.springframework.security.access.intercept.AbstractSecurityInterceptor
logger, messages
-
-
Constructor Summary
Constructors Constructor Description ChannelSecurityInterceptor(MessageSecurityMetadataSource metadataSource)
Creates a new instance
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
afterReceiveCompletion(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel, java.lang.Exception ex)
void
afterSendCompletion(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel, boolean sent, java.lang.Exception ex)
java.lang.Class<?>
getSecureObjectClass()
Indicates the type of secure objects the subclass will be presenting to the abstract parent for processing.SecurityMetadataSource
obtainSecurityMetadataSource()
org.springframework.messaging.Message<?>
postReceive(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel)
void
postSend(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel, boolean sent)
boolean
preReceive(org.springframework.messaging.MessageChannel channel)
org.springframework.messaging.Message<?>
preSend(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel)
-
Methods inherited from class org.springframework.security.access.intercept.AbstractSecurityInterceptor
afterInvocation, afterPropertiesSet, beforeInvocation, finallyInvocation, getAccessDecisionManager, getAfterInvocationManager, getAuthenticationManager, getRunAsManager, isAlwaysReauthenticate, isRejectPublicInvocations, isValidateConfigAttributes, setAccessDecisionManager, setAfterInvocationManager, setAlwaysReauthenticate, setApplicationEventPublisher, setAuthenticationManager, setMessageSource, setPublishAuthorizationSuccess, setRejectPublicInvocations, setRunAsManager, setValidateConfigAttributes
-
-
-
-
Constructor Detail
-
ChannelSecurityInterceptor
public ChannelSecurityInterceptor(MessageSecurityMetadataSource metadataSource)
Creates a new instance- Parameters:
metadataSource
- the MessageSecurityMetadataSource to use. Cannot be null.- See Also:
DefaultMessageSecurityMetadataSource
,ExpressionBasedMessageSecurityMetadataSourceFactory
-
-
Method Detail
-
getSecureObjectClass
public java.lang.Class<?> getSecureObjectClass()
Description copied from class:AbstractSecurityInterceptor
Indicates the type of secure objects the subclass will be presenting to the abstract parent for processing. This is used to ensure collaborators wired to theAbstractSecurityInterceptor
all support the indicated secure object class.- Specified by:
getSecureObjectClass
in classAbstractSecurityInterceptor
- Returns:
- the type of secure object the subclass provides services for
-
obtainSecurityMetadataSource
public SecurityMetadataSource obtainSecurityMetadataSource()
- Specified by:
obtainSecurityMetadataSource
in classAbstractSecurityInterceptor
-
preSend
public org.springframework.messaging.Message<?> preSend(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel)
- Specified by:
preSend
in interfaceorg.springframework.messaging.support.ChannelInterceptor
-
postSend
public void postSend(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel, boolean sent)
- Specified by:
postSend
in interfaceorg.springframework.messaging.support.ChannelInterceptor
-
afterSendCompletion
public void afterSendCompletion(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel, boolean sent, java.lang.Exception ex)
- Specified by:
afterSendCompletion
in interfaceorg.springframework.messaging.support.ChannelInterceptor
-
preReceive
public boolean preReceive(org.springframework.messaging.MessageChannel channel)
- Specified by:
preReceive
in interfaceorg.springframework.messaging.support.ChannelInterceptor
-
postReceive
public org.springframework.messaging.Message<?> postReceive(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel)
- Specified by:
postReceive
in interfaceorg.springframework.messaging.support.ChannelInterceptor
-
afterReceiveCompletion
public void afterReceiveCompletion(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel, java.lang.Exception ex)
- Specified by:
afterReceiveCompletion
in interfaceorg.springframework.messaging.support.ChannelInterceptor
-
-