Class AbstractSecurityWebSocketMessageBrokerConfigurer
java.lang.Object
org.springframework.web.socket.config.annotation.AbstractWebSocketMessageBrokerConfigurer
org.springframework.security.config.annotation.web.socket.AbstractSecurityWebSocketMessageBrokerConfigurer
- All Implemented Interfaces:
org.springframework.beans.factory.SmartInitializingSingleton,org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer
@Order(-2147483548)
@Import(ObjectPostProcessorConfiguration.class)
public abstract class AbstractSecurityWebSocketMessageBrokerConfigurer
extends org.springframework.web.socket.config.annotation.AbstractWebSocketMessageBrokerConfigurer
implements org.springframework.beans.factory.SmartInitializingSingleton
Allows configuring WebSocket Authorization.
For example:
@Configuration
public class WebSocketSecurityConfig extends
AbstractSecurityWebSocketMessageBrokerConfigurer {
@Override
protected void configureInbound(MessageSecurityMetadataSourceRegistry messages) {
messages.simpDestMatchers("/user/queue/errors").permitAll()
.simpDestMatchers("/admin/**").hasRole("ADMIN").anyMessage()
.authenticated();
}
}
- Since:
- 4.0
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddArgumentResolvers(List<org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver> argumentResolvers) voidfinal voidconfigureClientInboundChannel(org.springframework.messaging.simp.config.ChannelRegistration registration) protected voidprotected voidcustomizeClientInboundChannel(org.springframework.messaging.simp.config.ChannelRegistration registration) Allows subclasses to customize the configuration of theChannelRegistration.inboundChannelSecurity(MessageSecurityMetadataSource messageSecurityMetadataSource) voidregisterStompEndpoints(org.springframework.web.socket.config.annotation.StompEndpointRegistry registry) protected booleanDetermines if a CSRF token is required for connecting.voidsetApplicationContext(org.springframework.context.ApplicationContext context) voidsetMessageExpessionHandler(List<SecurityExpressionHandler<org.springframework.messaging.Message<Object>>> expressionHandlers) Deprecated.voidsetMessageExpressionHandler(List<SecurityExpressionHandler<org.springframework.messaging.Message<Object>>> expressionHandlers) voidsetObjectPostProcessor(ObjectPostProcessor<Object> objectPostProcessor) Methods inherited from class org.springframework.web.socket.config.annotation.AbstractWebSocketMessageBrokerConfigurer
addReturnValueHandlers, configureClientOutboundChannel, configureMessageBroker, configureMessageConverters, configureWebSocketTransport
-
Constructor Details
-
AbstractSecurityWebSocketMessageBrokerConfigurer
public AbstractSecurityWebSocketMessageBrokerConfigurer()
-
-
Method Details
-
registerStompEndpoints
public void registerStompEndpoints(org.springframework.web.socket.config.annotation.StompEndpointRegistry registry) - Specified by:
registerStompEndpointsin interfaceorg.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer
-
addArgumentResolvers
public void addArgumentResolvers(List<org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver> argumentResolvers) - Specified by:
addArgumentResolversin interfaceorg.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer- Overrides:
addArgumentResolversin classorg.springframework.web.socket.config.annotation.AbstractWebSocketMessageBrokerConfigurer
-
configureClientInboundChannel
public final void configureClientInboundChannel(org.springframework.messaging.simp.config.ChannelRegistration registration) - Specified by:
configureClientInboundChannelin interfaceorg.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer- Overrides:
configureClientInboundChannelin classorg.springframework.web.socket.config.annotation.AbstractWebSocketMessageBrokerConfigurer
-
sameOriginDisabled
protected boolean sameOriginDisabled()Determines if a CSRF token is required for connecting. This protects against remote sites from connecting to the application and being able to read/write data over the connection. The default is false (the token is required).
Subclasses can override this method to disable CSRF protection
- Returns:
- false if a CSRF token is required for connecting, else true
-
customizeClientInboundChannel
protected void customizeClientInboundChannel(org.springframework.messaging.simp.config.ChannelRegistration registration) Allows subclasses to customize the configuration of theChannelRegistration.- Parameters:
registration- theChannelRegistrationto customize
-
csrfChannelInterceptor
-
inboundChannelSecurity
@Bean public ChannelSecurityInterceptor inboundChannelSecurity(MessageSecurityMetadataSource messageSecurityMetadataSource) -
securityContextChannelInterceptor
-
inboundMessageSecurityMetadataSource
-
configureInbound
- Parameters:
messages-
-
setApplicationContext
@Autowired public void setApplicationContext(org.springframework.context.ApplicationContext context) -
setMessageExpessionHandler
@Deprecated public void setMessageExpessionHandler(List<SecurityExpressionHandler<org.springframework.messaging.Message<Object>>> expressionHandlers) Deprecated. -
setMessageExpressionHandler
@Autowired(required=false) public void setMessageExpressionHandler(List<SecurityExpressionHandler<org.springframework.messaging.Message<Object>>> expressionHandlers) -
setObjectPostProcessor
@Autowired(required=false) public void setObjectPostProcessor(ObjectPostProcessor<Object> objectPostProcessor) -
afterSingletonsInstantiated
public void afterSingletonsInstantiated()- Specified by:
afterSingletonsInstantiatedin interfaceorg.springframework.beans.factory.SmartInitializingSingleton
-