@@ -68,9 +68,13 @@ internal class HttpServerHandler(private val server: HttpServer) : ChannelInboun
6868 if (connection.equals(" Upgrade" , ignoreCase = true ) &&
6969 upgrade.equals(" WebSocket" , ignoreCase = true )) {
7070
71- if (server.middlewares.any {
72- it is Middleware .OnWebSocketUpgrade && ! it.invoke(ctx, msg)
73- }) return
71+ server.middlewares.filterIsInstance<Middleware .OnWebSocketUpgrade >().forEach { middleware ->
72+ val response = middleware.invoke(ctx, msg)
73+ if (response != null ) {
74+ ctx.writeAndFlush(response)
75+ return
76+ }
77+ }
7478
7579 // Takes out Http Request Handler from the pipeline and replaces it with WebSocketHandler
7680 ctx.pipeline().replace(this , " websocketHandler" , WebSocketHandler (server))
@@ -95,11 +99,7 @@ internal class HttpServerHandler(private val server: HttpServer) : ChannelInboun
9599 URLDecoder .decode(msg.uri(), Charsets .UTF_8 ),
96100 msg.headers().associate { it.key to it.value },
97101 )
98-
99- if (server.middlewares.any {
100- it is Middleware .OnRequestStart && ! it.invoke(ctx, msg, requestContext)
101- }) return
102-
102+
103103 localRequestContext.set(requestContext)
104104 }
105105 }
@@ -119,12 +119,17 @@ internal class HttpServerHandler(private val server: HttpServer) : ChannelInboun
119119 if (msg is LastHttpContent ) {
120120 localRequestContext.remove()
121121
122- var response = server.processRequestContext(requestContext)
123- server.middlewares.forEach {
124- if (it is Middleware .OnFullHttpResponse ) {
125- response = it.invoke(requestContext, response)
122+ server.middlewares.filterIsInstance<Middleware .OnRequest >().forEach { middleware ->
123+ val response = middleware.invoke(requestContext)
124+ if (response != null ) {
125+ ctx.writeAndFlush(response)
126+ return
126127 }
127128 }
129+ var response = server.processRequestContext(requestContext)
130+ server.middlewares.filterIsInstance<Middleware .OnResponse >().forEach { middleware ->
131+ response = middleware.invoke(requestContext, response)
132+ }
128133 ctx.writeAndFlush(response)
129134 }
130135 }
0 commit comments