@ -46,14 +46,18 @@ import org.springframework.web.socket.adapter.AbstractWebSocketSession;
* /
* /
public class JettyWebSocketSession extends AbstractWebSocketSession < Session > {
public class JettyWebSocketSession extends AbstractWebSocketSession < Session > {
private String id ;
private URI uri ;
private HttpHeaders headers ;
private HttpHeaders headers ;
private String acceptedProtocol ;
private List < WebSocketExtension > extensions ;
private List < WebSocketExtension > extensions ;
private Principal user ;
private Principal user ;
private String acceptedProtocol ;
/ * *
/ * *
* Create a new { @link JettyWebSocketSession } instance .
* Create a new { @link JettyWebSocketSession } instance .
@ -81,51 +85,48 @@ public class JettyWebSocketSession extends AbstractWebSocketSession<Session> {
@Override
@Override
public String getId ( ) {
public String getId ( ) {
checkNativeSessionInitialized ( ) ;
checkNativeSessionInitialized ( ) ;
return ObjectUtils . getIdentityHexString ( getNativeSession ( ) ) ;
return this . id ;
}
}
@Override
@Override
public URI getUri ( ) {
public URI getUri ( ) {
checkNativeSessionInitialized ( ) ;
checkNativeSessionInitialized ( ) ;
return getNativeSession ( ) . getUpgradeRequest ( ) . getRequestURI ( ) ;
return this . uri ;
}
}
@Override
@Override
public HttpHeaders getHandshakeHeaders ( ) {
public HttpHeaders getHandshakeHeaders ( ) {
checkNativeSessionInitialized ( ) ;
checkNativeSessionInitialized ( ) ;
if ( this . headers = = null ) {
this . headers = new HttpHeaders ( ) ;
this . headers . putAll ( getNativeSession ( ) . getUpgradeRequest ( ) . getHeaders ( ) ) ;
this . headers = HttpHeaders . readOnlyHttpHeaders ( headers ) ;
}
return this . headers ;
return this . headers ;
}
}
@Override
@Override
public Principal getPrincipal ( ) {
public String getAcceptedProtocol ( ) {
if ( this . user ! = null ) {
return this . user ;
}
checkNativeSessionInitialized ( ) ;
checkNativeSessionInitialized ( ) ;
return ( isOpen ( ) ? getNativeSession ( ) . getUpgradeRequest ( ) . getUserPrincipal ( ) : null ) ;
return this . acceptedProtocol ;
}
}
@Override
@Override
public InetSocketAddress getLocalAddres s( ) {
public List < WebSocketExtension > getExtension s( ) {
checkNativeSessionInitialized ( ) ;
checkNativeSessionInitialized ( ) ;
return getNativeSession ( ) . getLocalAddress ( ) ;
return this . extensions ;
}
}
@Override
@Override
public InetSocketAddress getRemoteAddress ( ) {
public Principal getPrincipal ( ) {
return this . user ;
}
@Override
public InetSocketAddress getLocalAddress ( ) {
checkNativeSessionInitialized ( ) ;
checkNativeSessionInitialized ( ) ;
return getNativeSession ( ) . getRemoteAddress ( ) ;
return getNativeSession ( ) . getLocal Address ( ) ;
}
}
@Override
@Override
public String getAcceptedProtocol ( ) {
public InetSocketAddress getRemoteAddress ( ) {
checkNativeSessionInitialized ( ) ;
checkNativeSessionInitialized ( ) ;
return this . acceptedProtocol ;
return getNativeSession ( ) . getRemoteAddress ( ) ;
}
}
@Override
@Override
@ -152,19 +153,6 @@ public class JettyWebSocketSession extends AbstractWebSocketSession<Session> {
return getNativeSession ( ) . getPolicy ( ) . getMaxBinaryMessageSize ( ) ;
return getNativeSession ( ) . getPolicy ( ) . getMaxBinaryMessageSize ( ) ;
}
}
@Override
public List < WebSocketExtension > getExtensions ( ) {
checkNativeSessionInitialized ( ) ;
if ( this . extensions = = null ) {
List < ExtensionConfig > source = getNativeSession ( ) . getUpgradeResponse ( ) . getExtensions ( ) ;
this . extensions = new ArrayList < WebSocketExtension > ( source . size ( ) ) ;
for ( ExtensionConfig e : source ) {
this . extensions . add ( new WebSocketExtension ( e . getName ( ) , e . getParameters ( ) ) ) ;
}
}
return this . extensions ;
}
@Override
@Override
public boolean isOpen ( ) {
public boolean isOpen ( ) {
return ( ( getNativeSession ( ) ! = null ) & & getNativeSession ( ) . isOpen ( ) ) ;
return ( ( getNativeSession ( ) ! = null ) & & getNativeSession ( ) . isOpen ( ) ) ;
@ -173,10 +161,25 @@ public class JettyWebSocketSession extends AbstractWebSocketSession<Session> {
@Override
@Override
public void initializeNativeSession ( Session session ) {
public void initializeNativeSession ( Session session ) {
super . initializeNativeSession ( session ) ;
super . initializeNativeSession ( session ) ;
this . id = ObjectUtils . getIdentityHexString ( getNativeSession ( ) ) ;
this . uri = session . getUpgradeRequest ( ) . getRequestURI ( ) ;
this . headers = new HttpHeaders ( ) ;
this . headers . putAll ( getNativeSession ( ) . getUpgradeRequest ( ) . getHeaders ( ) ) ;
this . headers = HttpHeaders . readOnlyHttpHeaders ( headers ) ;
this . acceptedProtocol = session . getUpgradeResponse ( ) . getAcceptedSubProtocol ( ) ;
List < ExtensionConfig > source = getNativeSession ( ) . getUpgradeResponse ( ) . getExtensions ( ) ;
this . extensions = new ArrayList < WebSocketExtension > ( source . size ( ) ) ;
for ( ExtensionConfig e : source ) {
this . extensions . add ( new WebSocketExtension ( e . getName ( ) , e . getParameters ( ) ) ) ;
}
if ( this . user = = null ) {
if ( this . user = = null ) {
this . user = session . getUpgradeRequest ( ) . getUserPrincipal ( ) ;
this . user = session . getUpgradeRequest ( ) . getUserPrincipal ( ) ;
}
}
this . acceptedProtocol = session . getUpgradeResponse ( ) . getAcceptedSubProtocol ( ) ;
}
}
@Override
@Override