Skip to content

Commit 2819fbd

Browse files
committed
feat: update auth0 add api
1 parent 1670056 commit 2819fbd

File tree

2 files changed

+77
-2
lines changed

2 files changed

+77
-2
lines changed

services/auth/api/connector.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,14 @@ type CreateConnectorRequest struct {
1414
Name string `json:"name,omitempty"` // Optional
1515
}
1616
type CreateAuth0ConnectorRequest struct {
17-
18-
1917
Issuer string `json:"issuer,omitempty" validate:"omitempty,url"`
2018
ClientID string `json:"client_id" validate:"required"`
2119
ClientSecret string `json:"client_secret" validate:"required"`
2220
Domain string `json:"domain" validate:"required"`
21+
// string array
22+
PublickURIS []string `json:"publick_uris" validate:"required"`
23+
PrivateURIS []string `json:"private_uris" validate:"required"`
24+
2325
}
2426
type UpdateConnectorRequest struct {
2527
ConnectorID string `json:"connector_id" validate:"required"`

services/auth/http.go

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1158,13 +1158,86 @@ func (r *httpRoutes) CreateAuth0Connector(ctx echo.Context) error {
11581158
r.logger.Error("failed to create connector", zap.Error(err))
11591159
return echo.NewHTTPError(http.StatusBadRequest, "failed to create connector")
11601160
}
1161+
publicUris:= req.PublickURIS
1162+
publicClientResp, _ := dexClient.GetClient(context.TODO(), &dexApi.GetClientReq{
1163+
Id: "public-client",
1164+
})
1165+
1166+
r.logger.Info("public URIS", zap.Any("uris", publicUris))
1167+
1168+
if publicClientResp != nil && publicClientResp.Client != nil {
1169+
publicClientReq := dexApi.UpdateClientReq{
1170+
Id: "public-client",
1171+
Name: "Public Client",
1172+
RedirectUris: publicUris,
1173+
}
1174+
1175+
_, err = dexClient.UpdateClient(context.TODO(), &publicClientReq)
1176+
if err != nil {
1177+
r.logger.Error("Auth Migrator: failed to create dex public client", zap.Error(err))
1178+
return err
1179+
}
1180+
} else {
1181+
publicClientReq := dexApi.CreateClientReq{
1182+
Client: &dexApi.Client{
1183+
Id: "public-client",
1184+
Name: "Public Client",
1185+
RedirectUris: publicUris,
1186+
Public: true,
1187+
},
1188+
}
1189+
1190+
_, err = dexClient.CreateClient(context.TODO(), &publicClientReq)
1191+
if err != nil {
1192+
r.logger.Error("Auth Migrator: failed to create dex public client", zap.Error(err))
1193+
return err
1194+
}
1195+
}
1196+
privateUris := req.PrivateURIS
1197+
1198+
r.logger.Info("private URIS", zap.Any("uris", privateUris))
1199+
1200+
privateClientResp, _ := dexClient.GetClient(context.TODO(), &dexApi.GetClientReq{
1201+
Id: "private-client",
1202+
})
1203+
if privateClientResp != nil && privateClientResp.Client != nil {
1204+
privateClientReq := dexApi.UpdateClientReq{
1205+
Id: "private-client",
1206+
Name: "Private Client",
1207+
RedirectUris: privateUris,
1208+
}
1209+
1210+
_, err = dexClient.UpdateClient(context.TODO(), &privateClientReq)
1211+
if err != nil {
1212+
r.logger.Error("Auth Migrator: failed to create dex private client", zap.Error(err))
1213+
return err
1214+
}
1215+
} else {
1216+
privateClientReq := dexApi.CreateClientReq{
1217+
Client: &dexApi.Client{
1218+
Id: "private-client",
1219+
Name: "Private Client",
1220+
RedirectUris: privateUris,
1221+
Secret: "secret",
1222+
},
1223+
}
1224+
1225+
_, err = dexClient.CreateClient(context.TODO(), &privateClientReq)
1226+
if err != nil {
1227+
r.logger.Error("Auth Migrator: failed to create dex private client", zap.Error(err))
1228+
return err
1229+
}
1230+
}
1231+
11611232
// restart dex pod on connector creation
11621233
err = utils.RestartDexPod()
11631234
if err != nil {
11641235
r.logger.Error("failed to restart dex pod", zap.Error(err))
11651236
return echo.NewHTTPError(http.StatusBadRequest, "failed to restart dex pod")
11661237
}
11671238

1239+
1240+
11681241
return ctx.JSON(http.StatusCreated, res)
11691242
}
11701243

0 commit comments

Comments
 (0)