SEC-2819 SimpDestinationMessageMatcher(String pattern, SimpMessageType
type) never passes type param to this() constructor
This commit is contained in:
parent
93d967cb27
commit
d834554a8a
|
@ -88,7 +88,7 @@ public final class SimpDestinationMessageMatcher implements MessageMatcher<Objec
|
||||||
* @param pathMatcher the {@link PathMatcher} to use.
|
* @param pathMatcher the {@link PathMatcher} to use.
|
||||||
*/
|
*/
|
||||||
public SimpDestinationMessageMatcher(String pattern, SimpMessageType type) {
|
public SimpDestinationMessageMatcher(String pattern, SimpMessageType type) {
|
||||||
this(pattern, null, new AntPathMatcher());
|
this(pattern, type, new AntPathMatcher());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -116,4 +116,10 @@ public final class SimpDestinationMessageMatcher implements MessageMatcher<Objec
|
||||||
String destination = SimpMessageHeaderAccessor.getDestination(message.getHeaders());
|
String destination = SimpMessageHeaderAccessor.getDestination(message.getHeaders());
|
||||||
return destination != null && matcher.match(pattern, destination);
|
return destination != null && matcher.match(pattern, destination);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public MessageMatcher<Object> getMessageTypeMatcher() {
|
||||||
|
return messageTypeMatcher;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2014 the original author or authors.
|
* Copyright 2002-2015 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
* use this file except in compliance with the License. You may obtain a copy of
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
@ -19,7 +19,9 @@ import org.springframework.messaging.Message;
|
||||||
import org.springframework.messaging.MessageHeaders;
|
import org.springframework.messaging.MessageHeaders;
|
||||||
import org.springframework.messaging.simp.SimpMessageHeaderAccessor;
|
import org.springframework.messaging.simp.SimpMessageHeaderAccessor;
|
||||||
import org.springframework.messaging.simp.SimpMessageType;
|
import org.springframework.messaging.simp.SimpMessageType;
|
||||||
|
import org.springframework.messaging.support.GenericMessage;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
import org.springframework.util.ObjectUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A {@link MessageMatcher} that matches if the provided {@link Message} has a
|
* A {@link MessageMatcher} that matches if the provided {@link Message} has a
|
||||||
|
@ -50,4 +52,24 @@ public class SimpMessageTypeMatcher implements MessageMatcher<Object> {
|
||||||
|
|
||||||
return typeToMatch == messageType;
|
return typeToMatch == messageType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object other) {
|
||||||
|
if (this == other) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(other instanceof SimpMessageTypeMatcher)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
SimpMessageTypeMatcher otherMatcher = (SimpMessageTypeMatcher) other;
|
||||||
|
return ObjectUtils.nullSafeEquals(this.typeToMatch, otherMatcher.typeToMatch);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public int hashCode() {
|
||||||
|
// Using nullSafeHashCode for proper array hashCode handling
|
||||||
|
return ObjectUtils.nullSafeHashCode(this.typeToMatch);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -15,14 +15,14 @@
|
||||||
*/
|
*/
|
||||||
package org.springframework.security.messaging.util.matcher;
|
package org.springframework.security.messaging.util.matcher;
|
||||||
|
|
||||||
|
import static org.fest.assertions.Assertions.assertThat;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.springframework.messaging.simp.SimpMessageHeaderAccessor;
|
import org.springframework.messaging.simp.SimpMessageHeaderAccessor;
|
||||||
import org.springframework.messaging.simp.SimpMessageType;
|
import org.springframework.messaging.simp.SimpMessageType;
|
||||||
import org.springframework.messaging.support.MessageBuilder;
|
import org.springframework.messaging.support.MessageBuilder;
|
||||||
|
|
||||||
import static org.fest.assertions.Assertions.assertThat;
|
|
||||||
|
|
||||||
|
|
||||||
public class SimpDestinationMessageMatcherTests {
|
public class SimpDestinationMessageMatcherTests {
|
||||||
MessageBuilder<String> messageBuilder;
|
MessageBuilder<String> messageBuilder;
|
||||||
|
@ -99,5 +99,14 @@ public class SimpDestinationMessageMatcherTests {
|
||||||
assertThat(matcher.matches(messageBuilder.build())).isTrue();
|
assertThat(matcher.matches(messageBuilder.build())).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void typeConstructorParameterIsTransmitted() throws Exception {
|
||||||
|
matcher = new SimpDestinationMessageMatcher("/match", SimpMessageType.MESSAGE);
|
||||||
|
|
||||||
|
MessageMatcher<Object> expectedTypeMatcher = new SimpMessageTypeMatcher(SimpMessageType.MESSAGE);
|
||||||
|
|
||||||
|
assertThat(matcher.getMessageTypeMatcher()).isEqualTo(expectedTypeMatcher);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue