From 380e36689154083b75b61947fd63d384cec0e705 Mon Sep 17 00:00:00 2001 From: Haelnorr Date: Wed, 25 Feb 2026 22:20:09 +1100 Subject: [PATCH] updated to use new modules --- hwsauth/config.go | 20 ++++++++++---------- hwsauth/ezconf.go | 34 ++++------------------------------ hwsauth/go.mod | 5 +++-- hwsauth/go.sum | 10 ++++++---- 4 files changed, 23 insertions(+), 46 deletions(-) diff --git a/hwsauth/config.go b/hwsauth/config.go index c79ce00..c2e24d3 100644 --- a/hwsauth/config.go +++ b/hwsauth/config.go @@ -9,16 +9,16 @@ import ( // Config holds the configuration settings for the authenticator. // All time-based settings are in minutes. type Config struct { - SSL bool // ENV HWSAUTH_SSL: Enable SSL secure cookies (default: false) - TrustedHost string // ENV HWSAUTH_TRUSTED_HOST: Full server address for SSL (required if SSL is true) - SecretKey string // ENV HWSAUTH_SECRET_KEY: Secret key for signing JWT tokens (required) - AccessTokenExpiry int64 // ENV HWSAUTH_ACCESS_TOKEN_EXPIRY: Access token expiry in minutes (default: 5) - RefreshTokenExpiry int64 // ENV HWSAUTH_REFRESH_TOKEN_EXPIRY: Refresh token expiry in minutes (default: 1440) - TokenFreshTime int64 // ENV HWSAUTH_TOKEN_FRESH_TIME: Token fresh time in minutes (default: 5) - LandingPage string // ENV HWSAUTH_LANDING_PAGE: Redirect destination for authenticated users (default: "/profile") - DatabaseType string // ENV HWSAUTH_DATABASE_TYPE: Database type (postgres, mysql, sqlite, mariadb) (default: "postgres") - DatabaseVersion string // ENV HWSAUTH_DATABASE_VERSION: Database version string (default: "15") - JWTTableName string // ENV HWSAUTH_JWT_TABLE_NAME: Custom JWT blacklist table name (default: "jwtblacklist") + SSL bool `ezconf:"HWSAUTH_SSL,description:Enable SSL secure cookies,default:false"` + TrustedHost string `ezconf:"HWSAUTH_TRUSTED_HOST,description:Full server address for SSL,required:if SSL is true"` + SecretKey string `ezconf:"HWSAUTH_SECRET_KEY,description:Secret key for signing JWT tokens,required"` + AccessTokenExpiry int64 `ezconf:"HWSAUTH_ACCESS_TOKEN_EXPIRY,description:Access token expiry in minutes,default:5"` + RefreshTokenExpiry int64 `ezconf:"HWSAUTH_REFRESH_TOKEN_EXPIRY,description:Refresh token expiry in minutes,default:1440"` + TokenFreshTime int64 `ezconf:"HWSAUTH_TOKEN_FRESH_TIME,description:Token fresh time in minutes,default:5"` + LandingPage string `ezconf:"HWSAUTH_LANDING_PAGE,description:Redirect destination for authenticated users,default:/profile"` + DatabaseType string `ezconf:"HWSAUTH_DATABASE_TYPE,description:Database type (postgres mysql sqlite mariadb),default:postgres"` + DatabaseVersion string `ezconf:"HWSAUTH_DATABASE_VERSION,description:Database version string,default:15"` + JWTTableName string `ezconf:"HWSAUTH_JWT_TABLE_NAME,description:Custom JWT blacklist table name,default:jwtblacklist"` } // ConfigFromEnv loads configuration from environment variables. diff --git a/hwsauth/ezconf.go b/hwsauth/ezconf.go index 0feff48..11cac0f 100644 --- a/hwsauth/ezconf.go +++ b/hwsauth/ezconf.go @@ -1,35 +1,9 @@ package hwsauth -import "runtime" - -// EZConfIntegration provides integration with ezconf for automatic configuration -type EZConfIntegration struct{} - -// PackagePath returns the path to the hwsauth package for source parsing -func (e EZConfIntegration) PackagePath() string { - _, filename, _, _ := runtime.Caller(0) - // Return directory of this file - return filename[:len(filename)-len("/ezconf.go")] -} - -// ConfigFunc returns the ConfigFromEnv function for ezconf -func (e EZConfIntegration) ConfigFunc() func() (any, error) { - return func() (any, error) { - return ConfigFromEnv() - } -} - -// Name returns the name to use when registering with ezconf -func (e EZConfIntegration) Name() string { - return "hwsauth" -} - -// GroupName returns the display name for grouping environment variables -func (e EZConfIntegration) GroupName() string { - return "HWSAuth" -} +import "git.haelnorr.com/h/golib/ezconf" // NewEZConfIntegration creates a new EZConf integration helper -func NewEZConfIntegration() EZConfIntegration { - return EZConfIntegration{} +func NewEZConfIntegration() *ezconf.Integration { + return ezconf.NewIntegration("hwsauth", "HWSAuth", &Config{}, + func() (any, error) { return ConfigFromEnv() }) } diff --git a/hwsauth/go.mod b/hwsauth/go.mod index dc6a07a..9b88e10 100644 --- a/hwsauth/go.mod +++ b/hwsauth/go.mod @@ -5,7 +5,8 @@ go 1.25.5 require ( git.haelnorr.com/h/golib/cookies v0.9.0 git.haelnorr.com/h/golib/env v0.9.1 - git.haelnorr.com/h/golib/hlog v0.10.4 + git.haelnorr.com/h/golib/ezconf v0.2.1 + git.haelnorr.com/h/golib/hlog v0.11.0 git.haelnorr.com/h/golib/hws v0.5.0 git.haelnorr.com/h/golib/jwt v0.10.1 github.com/DATA-DOG/go-sqlmock v1.5.2 @@ -25,7 +26,7 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rs/zerolog v1.34.0 // indirect - golang.org/x/sys v0.40.0 // indirect + golang.org/x/sys v0.41.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/apimachinery v0.35.0 // indirect k8s.io/klog/v2 v2.130.1 // indirect diff --git a/hwsauth/go.sum b/hwsauth/go.sum index b9bff77..05861fc 100644 --- a/hwsauth/go.sum +++ b/hwsauth/go.sum @@ -2,8 +2,10 @@ git.haelnorr.com/h/golib/cookies v0.9.0 h1:Vf+eX1prHkKuGrQon1BHY87yaPc1H+HJFRXDO git.haelnorr.com/h/golib/cookies v0.9.0/go.mod h1:y1385YExI9gLwckCVDCYVcsFXr6N7T3brJjnJD2QIuo= git.haelnorr.com/h/golib/env v0.9.1 h1:2Vsj+mJKnO5f1Md1GO5v9ggLN5zWa0baCewcSHTjoNY= git.haelnorr.com/h/golib/env v0.9.1/go.mod h1:glUQVdA1HMKX1avTDyTyuhcr36SSxZtlJxKDT5KTztg= -git.haelnorr.com/h/golib/hlog v0.10.4 h1:vpCsV/OddjIYx8F48U66WxojjmhEbeLGQAOBG4ViSRQ= -git.haelnorr.com/h/golib/hlog v0.10.4/go.mod h1:+wJ8vecQY/JITTXKmI3JfkHiUGyMs7N6wooj2wuWZbc= +git.haelnorr.com/h/golib/ezconf v0.2.1 h1:axMyKtgO9Zk6E8CrYrLpMzifvpjz73yxCQq0lOtuhck= +git.haelnorr.com/h/golib/ezconf v0.2.1/go.mod h1:rETDcjpcEyyeBgCiZSU617wc0XycwZSC5+IAOtXmwP8= +git.haelnorr.com/h/golib/hlog v0.11.0 h1:tCT8HWs51Nbin58sCTLcq5re6CZqo5/IHCzk3G+S3vQ= +git.haelnorr.com/h/golib/hlog v0.11.0/go.mod h1:HjhXS5G3A0BwOZq7nu2qpNBtvOFiCa1GbAuBRxAkYqs= git.haelnorr.com/h/golib/hws v0.5.0 h1:0CSv2f+dm/KzB/o5o6uXCyvN74iBdMTImhkyAZzU52c= git.haelnorr.com/h/golib/hws v0.5.0/go.mod h1:dxAbbGGNzqLXhZXwgt091QsvsPBdrS+1YsNQNldNVoM= git.haelnorr.com/h/golib/jwt v0.10.1 h1:1Adxt9H3Y4fWFvFjWpvg/vSFhbgCMDMxgiE3m7KvDMI= @@ -44,8 +46,8 @@ github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= -golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k= +golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=