Add experimental unified session middleware

This commit is contained in:
Ingo Oppermann
2023-06-27 22:17:58 +02:00
parent b6f7dae2f5
commit 6c6fa33903
5 changed files with 672 additions and 264 deletions

View File

@@ -1,7 +1,6 @@
package session
import (
"io"
"net"
"net/http"
"net/url"
@@ -154,46 +153,3 @@ func NewHTTPWithConfig(config HTTPConfig) echo.MiddlewareFunc {
}
}
}
type fakeReader struct {
reader io.ReadCloser
size int64
}
func (r *fakeReader) Read(b []byte) (int, error) {
n, err := r.reader.Read(b)
r.size += int64(n)
return n, err
}
func (r *fakeReader) Close() error {
return r.reader.Close()
}
type fakeWriter struct {
http.ResponseWriter
size int64
code int
}
func (w *fakeWriter) WriteHeader(statusCode int) {
w.ResponseWriter.WriteHeader(statusCode)
w.code = statusCode
}
func (w *fakeWriter) Write(body []byte) (int, error) {
n, err := w.ResponseWriter.Write(body)
w.size += int64(n)
return n, err
}
func (w *fakeWriter) Flush() {
flusher, ok := w.ResponseWriter.(http.Flusher)
if ok {
flusher.Flush()
}
}