public class SimpMessageHeaderAccessor extends NativeMessageHeaderAccessor
Use one of the static factory method in this class, then call getters and setters,
and at the end if necessary call MessageHeaderAccessor.toMap()
to obtain the updated headers.
Modifier and Type | Field and Description |
---|---|
static String |
CONNECT_MESSAGE_HEADER |
static String |
DESTINATION_HEADER |
static String |
DISCONNECT_MESSAGE_HEADER |
static String |
HEART_BEAT_HEADER |
static String |
IGNORE_ERROR
A header that indicates to the broker that the sender will ignore errors.
|
static String |
MESSAGE_TYPE_HEADER |
static String |
ORIGINAL_DESTINATION
A header for internal use with "user" destinations where we need to
restore the destination prior to sending messages to clients.
|
static String |
SESSION_ATTRIBUTES |
static String |
SESSION_ID_HEADER |
static String |
SUBSCRIPTION_ID_HEADER |
static String |
USER_HEADER |
NATIVE_HEADERS
DEFAULT_CHARSET
Modifier | Constructor and Description |
---|---|
protected |
SimpMessageHeaderAccessor(Message<?> message)
A constructor for accessing and modifying existing message headers.
|
protected |
SimpMessageHeaderAccessor(SimpMessageType messageType,
Map<String,List<String>> externalSourceHeaders)
A constructor for creating new message headers.
|
Modifier and Type | Method and Description |
---|---|
static SimpMessageHeaderAccessor |
create()
Create an instance with
SimpMessageType MESSAGE . |
static SimpMessageHeaderAccessor |
create(SimpMessageType messageType)
Create an instance with the given
SimpMessageType . |
protected MessageHeaderAccessor |
createAccessor(Message<?> message)
Build a 'nested' accessor for the given message.
|
String |
getDestination() |
static String |
getDestination(Map<String,Object> headers) |
String |
getDetailedLogMessage(Object payload)
Return a more detailed message for logging purposes.
|
static long[] |
getHeartbeat(Map<String,Object> headers) |
SimpMessageType |
getMessageType() |
static SimpMessageType |
getMessageType(Map<String,Object> headers) |
Map<String,Object> |
getSessionAttributes()
Return the attributes associated with the current session.
|
static Map<String,Object> |
getSessionAttributes(Map<String,Object> headers) |
String |
getSessionId()
Return the id of the current session.
|
static String |
getSessionId(Map<String,Object> headers) |
String |
getShortLogMessage(Object payload)
Return a concise message for logging purposes.
|
String |
getSubscriptionId() |
static String |
getSubscriptionId(Map<String,Object> headers) |
Principal |
getUser()
Return the user associated with the current session.
|
static Principal |
getUser(Map<String,Object> headers) |
void |
setDestination(String destination) |
void |
setMessageTypeIfNotSet(SimpMessageType messageType) |
void |
setSessionAttributes(Map<String,Object> attributes)
A static alternative for access to the session attributes header.
|
void |
setSessionId(String sessionId) |
void |
setSubscriptionId(String subscriptionId) |
void |
setUser(Principal principal) |
void |
setUserChangeCallback(Consumer<Principal> callback)
Provide a callback to be invoked if and when
setUser(Principal)
is called. |
static SimpMessageHeaderAccessor |
wrap(Message<?> message)
Create an instance from the payload and headers of the given Message.
|
addNativeHeader, addNativeHeaders, containsNativeHeader, copyHeaders, getFirstNativeHeader, getFirstNativeHeader, getNativeHeader, getNativeHeaders, removeNativeHeader, setHeader, setImmutable, setNativeHeader, toNativeHeaderMap
copyHeadersIfAbsent, getAccessor, getAccessor, getAccessor, getContentType, getDetailedPayloadLogMessage, getErrorChannel, getHeader, getId, getMessageHeaders, getMutableAccessor, getReplyChannel, getShortPayloadLogMessage, getTimestamp, isModified, isMutable, isReadableContentType, isReadOnly, removeHeader, removeHeaders, setContentType, setErrorChannel, setErrorChannelName, setHeaderIfAbsent, setLeaveMutable, setModified, setReplyChannel, setReplyChannelName, toMap, toMessageHeaders, toString, verifyType
public static final String DESTINATION_HEADER
public static final String MESSAGE_TYPE_HEADER
public static final String SESSION_ID_HEADER
public static final String SESSION_ATTRIBUTES
public static final String SUBSCRIPTION_ID_HEADER
public static final String USER_HEADER
public static final String CONNECT_MESSAGE_HEADER
public static final String DISCONNECT_MESSAGE_HEADER
public static final String HEART_BEAT_HEADER
public static final String ORIGINAL_DESTINATION
public static final String IGNORE_ERROR
protected SimpMessageHeaderAccessor(SimpMessageType messageType, @Nullable Map<String,List<String>> externalSourceHeaders)
protected SimpMessageHeaderAccessor(Message<?> message)
protected MessageHeaderAccessor createAccessor(Message<?> message)
MessageHeaderAccessor
createAccessor
in class MessageHeaderAccessor
message
- the message to build a new accessor forpublic void setMessageTypeIfNotSet(SimpMessageType messageType)
@Nullable public SimpMessageType getMessageType()
public void setSessionAttributes(@Nullable Map<String,Object> attributes)
@Nullable public Map<String,Object> getSessionAttributes()
public void setUserChangeCallback(Consumer<Principal> callback)
setUser(Principal)
is called. This is used internally on the inbound channel to detect
token-based authentications through an interceptor.callback
- the callback to invokepublic String getShortLogMessage(Object payload)
MessageHeaderAccessor
getShortLogMessage
in class MessageHeaderAccessor
payload
- the payload that corresponds to the headers.public String getDetailedLogMessage(@Nullable Object payload)
MessageHeaderAccessor
getDetailedLogMessage
in class MessageHeaderAccessor
payload
- the payload that corresponds to the headers.public static SimpMessageHeaderAccessor create()
SimpMessageType
MESSAGE
.public static SimpMessageHeaderAccessor create(SimpMessageType messageType)
SimpMessageType
.public static SimpMessageHeaderAccessor wrap(Message<?> message)
@Nullable public static SimpMessageType getMessageType(Map<String,Object> headers)
@Nullable public static Map<String,Object> getSessionAttributes(Map<String,Object> headers)