Use DestinationUserNameProvider with @SendTo

Issue: SPR-11327
This commit is contained in:
Rossen Stoyanchev
2014-01-21 12:32:35 -05:00
parent e4ad2b352e
commit ae06c3a6ab
3 changed files with 47 additions and 12 deletions

View File

@@ -241,13 +241,13 @@ public class StompSubProtocolHandler implements SubProtocolHandler {
if (principal != null) {
headers.setNativeHeader(CONNECTED_USER_HEADER, principal.getName());
if (this.userSessionRegistry != null) {
String userName = getNameForUserSessionRegistry(principal);
String userName = resolveNameForUserSessionRegistry(principal);
this.userSessionRegistry.registerSessionId(userName, session.getId());
}
}
}
private String getNameForUserSessionRegistry(Principal principal) {
private String resolveNameForUserSessionRegistry(Principal principal) {
String userName = principal.getName();
if (principal instanceof DestinationUserNameProvider) {
userName = ((DestinationUserNameProvider) principal).getDestinationUserName();
@@ -270,7 +270,7 @@ public class StompSubProtocolHandler implements SubProtocolHandler {
Principal principal = session.getPrincipal();
if ((this.userSessionRegistry != null) && (principal != null)) {
String userName = getNameForUserSessionRegistry(principal);
String userName = resolveNameForUserSessionRegistry(principal);
this.userSessionRegistry.unregisterSessionId(userName, session.getId());
}