diff --git a/devcloud-mini/docs/arch.drawio b/devcloud-mini/docs/arch.drawio index 9810b46..ffe6c2a 100644 --- a/devcloud-mini/docs/arch.drawio +++ b/devcloud-mini/docs/arch.drawio @@ -1,17 +1,37 @@ - + - + + + + - + - + + + + + + + + + + + + + + + + + + diff --git a/devcloud-mini/mcenter/README.md b/devcloud-mini/mcenter/README.md index 19d0a28..57fcee9 100644 --- a/devcloud-mini/mcenter/README.md +++ b/devcloud-mini/mcenter/README.md @@ -1,11 +1,17 @@ # 中心化用户鉴权服务 - ## 认证(用户的身份问题 ID, 你是谁) +```sh +curl --location 'http://127.0.0.1:8020/api/mcenter/v1/token/validate' \ +--header 'Content-Type: application/json' \ +--header 'Authorization: ••••••' \ +--data '{ + "access_token": "ANfXCQ3tjDNv5y1mq4F1mSBw" +}' +``` +## 鉴权(用户能访问哪些接口, 你能干什么,Role) - - -## 鉴权(用户能访问哪些接口, 你能干什么,Role) \ No newline at end of file +1. api 注册给 mcenter \ No newline at end of file diff --git a/devcloud-mini/mcenter/permisson/checker.go b/devcloud-mini/mcenter/permisson/checker.go index 6b2d5ab..6393114 100644 --- a/devcloud-mini/mcenter/permisson/checker.go +++ b/devcloud-mini/mcenter/permisson/checker.go @@ -58,7 +58,7 @@ func (c *Checker) Init() error { } func (c *Checker) Check(r *restful.Request, w *restful.Response, next *restful.FilterChain) { - route := endpoint.NewEntryFromRestRoute(r.SelectedRoute()) + route := endpoint.NewEntryFromRestRouteReader(r.SelectedRoute()) if route.RequiredAuth { // 校验身份 tk, err := c.CheckToken(r) diff --git a/devcloud-mini/mcenter/permisson/endpoint.go b/devcloud-mini/mcenter/permisson/endpoint.go new file mode 100644 index 0000000..cfd6a91 --- /dev/null +++ b/devcloud-mini/mcenter/permisson/endpoint.go @@ -0,0 +1,34 @@ +package permission + +import ( + "context" + + "github.com/infraboard/mcube/v2/ioc" + "github.com/infraboard/mcube/v2/ioc/config/gorestful" + "github.com/infraboard/modules/iam/apps/endpoint" +) + +func init() { + ioc.Api().Registry(&ApiRegister{}) +} + +type ApiRegister struct { + ioc.ObjectImpl + endpoint endpoint.Service +} + +func (a *ApiRegister) Init() error { + // 注册认证中间件 + entries := endpoint.NewEntryFromRestfulContainer(gorestful.RootRouter()) + req := endpoint.NewRegistryEndpointRequest() + req.AddItem(entries...) + _, err := a.endpoint.RegistryEndpoint(context.Background(), req) + if err != nil { + return err + } + return nil +} + +func (c *ApiRegister) Name() string { + return "api_register" +} diff --git a/go.mod b/go.mod index 199aeb2..b4df42d 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/google/uuid v1.6.0 github.com/gorilla/websocket v1.5.3 github.com/infraboard/mcube/v2 v2.0.51 - github.com/infraboard/modules v0.0.2 + github.com/infraboard/modules v0.0.3 github.com/rs/zerolog v1.32.0 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1116 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/lighthouse v1.0.1115 diff --git a/go.sum b/go.sum index 97ce3be..178c495 100644 --- a/go.sum +++ b/go.sum @@ -133,6 +133,8 @@ github.com/infraboard/modules v0.0.0-20250316032722-447e1c651a75 h1:yuK6RWI23duw github.com/infraboard/modules v0.0.0-20250316032722-447e1c651a75/go.mod h1:v5qcwHvGOg6UsmKPVgAN3sn+XLgD9uYu/PqEWU129ck= github.com/infraboard/modules v0.0.2 h1:LyIKcSp4J/p96JHm59ZtDr3CF1yWN09RttiPmRgoYHM= github.com/infraboard/modules v0.0.2/go.mod h1:v5qcwHvGOg6UsmKPVgAN3sn+XLgD9uYu/PqEWU129ck= +github.com/infraboard/modules v0.0.3 h1:OTsW1K7htTnNZUMNHJOcHIL4Tp218LaGPk4HX3Cuas0= +github.com/infraboard/modules v0.0.3/go.mod h1:v5qcwHvGOg6UsmKPVgAN3sn+XLgD9uYu/PqEWU129ck= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk=