Versions in this module Expand all Collapse all v1 v1.0.0 Feb 13, 2024 Changes in this version + func BytesToPrivateKey(priv []byte) (*rsa.PrivateKey, error) + func BytesToPublicKey(pub []byte) (*rsa.PublicKey, error) + func DecryptWithPrivateKey(ciphertext []byte, priv *rsa.PrivateKey) ([]byte, error) + func EncryptWithPublicKey(msg []byte, pub *rsa.PublicKey) ([]byte, error) + func GenerateKeyPair(bits int) (*rsa.PrivateKey, *rsa.PublicKey, error) + func GetLogEntry(r *http.Request) *slog.Logger + func GetRequestIdLogger(r *http.Request) *slog.Logger + func Identify() string + func LimitIPMiddleware(limiter *KeyRateLimiter) func(next http.Handler) http.Handler + func LogAllStatuses(r *http.Request) + func LogEntrySetAttrs(r *http.Request, attrs ...any) + func LogEntrySetField(r *http.Request, key string, value interface{}) + func LogEntrySetFields(r *http.Request, fields map[string]interface{}) + func LogHeaders(r *http.Request) + func NewStructuredLogger(handler slog.Handler, onlyErrs bool) func(next http.Handler) http.Handler + func PrivateKeyToBytes(priv *rsa.PrivateKey) []byte + func Protection(next http.Handler) http.Handler + func PublicKeyToBytes(pub *rsa.PublicKey) ([]byte, error) + func RealIPFromRequest(r *http.Request) string + func Recoverer(next http.Handler) http.Handler + func RequestForwardedHostProtoMiddleware(next http.Handler) http.Handler + func RequestHost(r *http.Request) (host string) + func RequestProto(r *http.Request) (proto string) + type ErrResponse struct + AppCode int64 + Err error + ErrorText string + HTTPStatusCode int + StatusText string + func (e *ErrResponse) Error() string + func (e *ErrResponse) Render(w http.ResponseWriter, r *http.Request) error + type KeyCountLimiter struct + func NewKeyCountLimiter(b int) *KeyCountLimiter + func (i *KeyCountLimiter) Allow(key, countKey string) bool + type KeyRateLimiter struct + func NewKeyRateLimiter(r rate.Limit, b int) *KeyRateLimiter + func (i *KeyRateLimiter) GetKeyLimiter(key string) *rate.Limiter + type StringLimiter struct + Key string + Limiter *rate.Limiter + type StructuredLogger struct + Logger slog.Handler + OnlyErrors bool + func (l *StructuredLogger) NewLogEntry(r *http.Request) middleware.LogEntry + type StructuredLoggerEntry struct + Ctx context.Context + Logger *slog.Logger + OnlyErrors bool + func (l *StructuredLoggerEntry) Panic(v interface{}, stack []byte) + func (l *StructuredLoggerEntry) Write(status, bytes int, header http.Header, elapsed time.Duration, ...) + type UniqueKeyLimiter struct + Count []string + Key string