Compare commits
2 Commits
hws/v0.4.2
...
hwsauth/v0
| Author | SHA1 | Date | |
|---|---|---|---|
| 7ed40c7afe | |||
| 596a4c0529 |
@@ -29,16 +29,16 @@ func (s *Server) LogError(err HWSError) {
|
||||
s.logger.logger.Warn().Err(err.Error).Msg(err.Message)
|
||||
return
|
||||
case ErrorERROR:
|
||||
s.logger.logger.Error().Str("stacktrace", fmt.Sprintf("%+v", err)).Err(err.Error).Msg(err.Message)
|
||||
s.logger.logger.Error().Str("stacktrace", fmt.Sprintf("%+v", err.Error)).Err(err.Error).Msg(err.Message)
|
||||
return
|
||||
case ErrorFATAL:
|
||||
s.logger.logger.Fatal().Str("stacktrace", fmt.Sprintf("%+v", err)).Err(err.Error).Msg(err.Message)
|
||||
s.logger.logger.Fatal().Str("stacktrace", fmt.Sprintf("%+v", err.Error)).Err(err.Error).Msg(err.Message)
|
||||
return
|
||||
case ErrorPANIC:
|
||||
s.logger.logger.Panic().Str("stacktrace", fmt.Sprintf("%+v", err)).Err(err.Error).Msg(err.Message)
|
||||
s.logger.logger.Panic().Str("stacktrace", fmt.Sprintf("%+v", err.Error)).Err(err.Error).Msg(err.Message)
|
||||
return
|
||||
default:
|
||||
s.logger.logger.Error().Str("stacktrace", fmt.Sprintf("%+v", err)).Err(err.Error).Msg(err.Message)
|
||||
s.logger.logger.Error().Str("stacktrace", fmt.Sprintf("%+v", err.Error)).Err(err.Error).Msg(err.Message)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,10 +2,12 @@ package hwsauth
|
||||
|
||||
import (
|
||||
"context"
|
||||
"git.haelnorr.com/h/golib/hws"
|
||||
"net/http"
|
||||
"slices"
|
||||
"time"
|
||||
|
||||
"git.haelnorr.com/h/golib/hws"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
// Authenticate returns the main authentication middleware.
|
||||
@@ -30,12 +32,20 @@ func (auth *Authenticator[T, TX]) authenticate() hws.MiddlewareFunc {
|
||||
// Start the transaction
|
||||
tx, err := auth.beginTx(ctx)
|
||||
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
|
||||
txTyped, ok := tx.(TX)
|
||||
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)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user