mirror of
https://github.com/eolinker/apinto
synced 2025-09-26 21:01:19 +08:00
45 lines
867 B
Go
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
|
|
}
|