Files
apinto/drivers/plugins/oauth2-introspection/factory.go
2025-05-14 17:31:09 +08:00

45 lines
867 B
Go

package oauth2_introspection
import (
"github.com/eolinker/apinto/drivers"
"github.com/eolinker/apinto/drivers/app/manager"
"github.com/eolinker/eosc"
"github.com/eolinker/eosc/common/bean"
"sync"
)
const (
Name = "oauth2-introspection"
)
var (
ones sync.Once
appManager manager.IManager
)
func Register(register eosc.IExtenderDriverRegister) {
register.RegisterExtenderDriver(Name, NewFactory())
}
func NewFactory() eosc.IExtenderDriverFactory {
ones.Do(func() {
bean.Autowired(&appManager)
})
return drivers.NewFactory[Config](Create)
}
func Create(id, name string, conf *Config, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error) {
err := Check(conf)
if err != nil {
return nil, err
}
e := &executor{
WorkerBase: drivers.Worker(id, name),
}
err = e.reset(conf)
if err != nil {
return nil, err
}
return e, nil
}