Compare commits
4 Commits
hws/v0.4.0
...
hwsauth/v0
| Author | SHA1 | Date | |
|---|---|---|---|
| 7ed40c7afe | |||
| 596a4c0529 | |||
| ed3bc4afb0 | |||
| 2c9de70018 |
@@ -20,25 +20,25 @@ func (s *Server) LogError(err HWSError) {
|
|||||||
}
|
}
|
||||||
switch err.Level {
|
switch err.Level {
|
||||||
case ErrorDEBUG:
|
case ErrorDEBUG:
|
||||||
s.logger.logger.Debug().Err(err.Error).Msg(err.Message)
|
s.logger.logger.Debug().Msg(err.Message)
|
||||||
return
|
return
|
||||||
case ErrorINFO:
|
case ErrorINFO:
|
||||||
s.logger.logger.Info().Err(err.Error).Msg(err.Message)
|
s.logger.logger.Info().Msg(err.Message)
|
||||||
return
|
return
|
||||||
case ErrorWARN:
|
case ErrorWARN:
|
||||||
s.logger.logger.Warn().Err(err.Error).Msg(err.Message)
|
s.logger.logger.Warn().Err(err.Error).Msg(err.Message)
|
||||||
return
|
return
|
||||||
case ErrorERROR:
|
case ErrorERROR:
|
||||||
s.logger.logger.Error().Err(err.Error).Msg(err.Message)
|
s.logger.logger.Error().Str("stacktrace", fmt.Sprintf("%+v", err.Error)).Err(err.Error).Msg(err.Message)
|
||||||
return
|
return
|
||||||
case ErrorFATAL:
|
case ErrorFATAL:
|
||||||
s.logger.logger.Fatal().Err(err.Error).Msg(err.Message)
|
s.logger.logger.Fatal().Str("stacktrace", fmt.Sprintf("%+v", err.Error)).Err(err.Error).Msg(err.Message)
|
||||||
return
|
return
|
||||||
case ErrorPANIC:
|
case ErrorPANIC:
|
||||||
s.logger.logger.Panic().Err(err.Error).Msg(err.Message)
|
s.logger.logger.Panic().Str("stacktrace", fmt.Sprintf("%+v", err.Error)).Err(err.Error).Msg(err.Message)
|
||||||
return
|
return
|
||||||
default:
|
default:
|
||||||
s.logger.logger.Error().Err(err.Error).Msg(err.Message)
|
s.logger.logger.Error().Str("stacktrace", fmt.Sprintf("%+v", err.Error)).Err(err.Error).Msg(err.Message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -54,6 +54,8 @@ func (server *Server) NewMiddleware(
|
|||||||
if herr.RenderErrorPage {
|
if herr.RenderErrorPage {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
next.ServeHTTP(w, r)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
next.ServeHTTP(w, newReq)
|
next.ServeHTTP(w, newReq)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -2,10 +2,12 @@ package hwsauth
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"git.haelnorr.com/h/golib/hws"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"slices"
|
"slices"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"git.haelnorr.com/h/golib/hws"
|
||||||
|
"github.com/pkg/errors"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Authenticate returns the main authentication middleware.
|
// Authenticate returns the main authentication middleware.
|
||||||
@@ -30,12 +32,20 @@ func (auth *Authenticator[T, TX]) authenticate() hws.MiddlewareFunc {
|
|||||||
// Start the transaction
|
// Start the transaction
|
||||||
tx, err := auth.beginTx(ctx)
|
tx, err := auth.beginTx(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, &hws.HWSError{Message: "Unable to start transaction", StatusCode: http.StatusServiceUnavailable, Error: err}
|
return nil, &hws.HWSError{
|
||||||
|
Message: "Unable to start transaction",
|
||||||
|
StatusCode: http.StatusServiceUnavailable,
|
||||||
|
Error: errors.Wrap(err, "auth.beginTx"),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Type assert to TX - safe because user's beginTx should return their TX type
|
// Type assert to TX - safe because user's beginTx should return their TX type
|
||||||
txTyped, ok := tx.(TX)
|
txTyped, ok := tx.(TX)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, &hws.HWSError{Message: "Transaction type mismatch", StatusCode: http.StatusInternalServerError, Error: err}
|
return nil, &hws.HWSError{
|
||||||
|
Message: "Transaction type mismatch",
|
||||||
|
StatusCode: http.StatusInternalServerError,
|
||||||
|
Error: errors.Wrap(err, "TX type not ok"),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
model, err := auth.getAuthenticatedUser(txTyped, w, r)
|
model, err := auth.getAuthenticatedUser(txTyped, w, r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user