Browse Source

Merge branch 'master' of github.com:mrniko/netty-socketio

master
Nikita 7 years ago
parent
commit
46bbdd90c1
  1. 13
      README.md
  2. 24
      src/main/java/com/corundumstudio/socketio/handler/AuthorizeHandler.java
  3. 8
      src/main/java/com/corundumstudio/socketio/transport/PollingTransport.java

13
README.md

@ -50,11 +50,16 @@ Recent Releases
================================
#### Please Note: trunk is current development branch.
#### 20-Sep-2017 - version 1.7.13 released
Feature - Added option to change the SSL KeyFactoryAlgorithm using Configuration (thanks to @robymus)
Improvement - Binary ack handling improvements (thanks to Sergey Bushik)
Fixed - Failed to mark a promise as success because it has succeeded already (thanks to @robymus)
#### 27-Aug-2016 - version 1.7.12 released
Feature - `SocketIOServer.removeAllListeners` method added
Feature - `BroadcastOperations.sendEvent` method with `excludedClient` param added
Improvement - Redisson updated to 2.4.0
Fixed - memory leak in Namespace object (thanks to @CrazyIvan007)
Feature - `SocketIOServer.removeAllListeners` method added
Feature - `BroadcastOperations.sendEvent` method with `excludedClient` param added
Improvement - Redisson updated to 2.4.0
Fixed - memory leak in Namespace object (thanks to @CrazyIvan007)
#### 13-Jul-2016 - version 1.7.11 released

24
src/main/java/com/corundumstudio/socketio/handler/AuthorizeHandler.java

@ -22,6 +22,7 @@ import java.net.InetSocketAddress;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
@ -60,6 +61,8 @@ import io.netty.handler.codec.http.HttpHeaders;
import io.netty.handler.codec.http.HttpResponse;
import io.netty.handler.codec.http.HttpResponseStatus;
import io.netty.handler.codec.http.QueryStringDecoder;
import io.netty.handler.codec.http.cookie.Cookie;
import io.netty.handler.codec.http.cookie.ServerCookieDecoder;
@Sharable
public class AuthorizeHandler extends ChannelInboundHandlerAdapter implements Disconnectable {
@ -178,12 +181,12 @@ public class AuthorizeHandler extends ChannelInboundHandlerAdapter implements Di
Map<String, Object> errorData = new HashMap<String, Object>();
errorData.put("code", 0);
errorData.put("message", "Transport unknown");
channel.attr(EncoderHandler.ORIGIN).set(origin);
channel.writeAndFlush(new HttpErrorMessage(errorData));
return false;
}
ClientHead client = new ClientHead(sessionId, ackManager, disconnectable, storeFactory, data, clientsBox, transport, disconnectScheduler, configuration);
channel.attr(ClientHead.CLIENT).set(client);
clientsBox.addClient(client);
@ -210,12 +213,17 @@ public class AuthorizeHandler extends ChannelInboundHandlerAdapter implements Di
random uuid to be generated instead (same as not passing a cookie in the first place).
*/
private UUID generateOrGetSessionIdFromRequest(HttpHeaders headers) {
List<String> values = headers.getAll("io");
if (values.size() == 1) {
try {
return UUID.fromString(values.get(0));
} catch ( IllegalArgumentException iaex ) {
log.warn("Malformed UUID received for session! io=" + values.get(0));
for (String cookieHeader: headers.getAll(HttpHeaderNames.COOKIE)) {
Set<Cookie> cookies = ServerCookieDecoder.LAX.decode(cookieHeader);
for (Cookie cookie : cookies) {
if (cookie.name().equals("io")) {
try {
return UUID.fromString(cookie.value());
} catch ( IllegalArgumentException iaex ) {
log.warn("Malformed UUID received for session! io=" + cookie.value());
}
}
}
}
return UUID.randomUUID();

8
src/main/java/com/corundumstudio/socketio/transport/PollingTransport.java

@ -88,7 +88,13 @@ public class PollingTransport extends ChannelInboundHandlerAdapter {
ctx.channel().attr(EncoderHandler.JSONP_INDEX).set(index);
}
if (b64 != null && b64.get(0) != null) {
Integer enable = Integer.valueOf(b64.get(0));
String flag = b64.get(0);
if ("true".equals(flag)) {
flag = "1";
} else if ("false".equals(flag)) {
flag = "0";
}
Integer enable = Integer.valueOf(flag);
ctx.channel().attr(EncoderHandler.B64).set(enable == 1);
}

Loading…
Cancel
Save