Allow Validator config in XML websocket namespace
This commit adds a new "validator" XML attribute to the `<websocket:message-broker/>` element. This allows configuring a specific Validator to be used for payload validation. Issue: SPR-13996
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2015 the original author or authors.
|
||||
* Copyright 2002-2016 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -60,6 +60,8 @@ import org.springframework.mock.web.test.MockServletContext;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
|
||||
import org.springframework.util.MimeTypeUtils;
|
||||
import org.springframework.validation.Errors;
|
||||
import org.springframework.validation.Validator;
|
||||
import org.springframework.web.HttpRequestHandler;
|
||||
import org.springframework.web.context.support.GenericWebApplicationContext;
|
||||
import org.springframework.web.servlet.HandlerMapping;
|
||||
@@ -356,6 +358,14 @@ public class MessageBrokerBeanDefinitionParserTests {
|
||||
public void customChannels() {
|
||||
loadBeanDefinitions("websocket-config-broker-customchannels.xml");
|
||||
|
||||
SimpAnnotationMethodMessageHandler annotationMethodMessageHandler =
|
||||
this.appContext.getBean(SimpAnnotationMethodMessageHandler.class);
|
||||
|
||||
Validator validator = annotationMethodMessageHandler.getValidator();
|
||||
assertNotNull(validator);
|
||||
assertSame(this.appContext.getBean("myValidator"), validator);
|
||||
assertThat(validator, Matchers.instanceOf(TestValidator.class));
|
||||
|
||||
List<Class<? extends MessageHandler>> subscriberTypes =
|
||||
Arrays.<Class<? extends MessageHandler>>asList(SimpAnnotationMethodMessageHandler.class,
|
||||
UserDestinationMessageHandler.class, SimpleBrokerMessageHandler.class);
|
||||
@@ -520,3 +530,13 @@ class TestWebSocketHandlerDecorator extends WebSocketHandlerDecorator {
|
||||
|
||||
class TestStompErrorHandler extends StompSubProtocolErrorHandler {
|
||||
}
|
||||
|
||||
class TestValidator implements Validator {
|
||||
@Override
|
||||
public boolean supports(Class<?> clazz) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validate(Object target, Errors errors) { }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user