Forráskód Böngészése

feat(go): add verify method for okta idp client;

Vishal Dalwadi 1 hónapja
szülő
commit
0c43dd3788
2 módosított fájl, 20 hozzáadás és 6 törlés
  1. 1 1
      pro/auth/sync.go
  2. 19 5
      pro/idp/okta/okta.go

+ 1 - 1
pro/auth/sync.go

@@ -82,7 +82,7 @@ func SyncFromIDP() error {
 	case "azure-ad":
 		idpClient = azure.NewAzureEntraIDClientFromSettings()
 	case "okta":
-		idpClient, err = okta.NewOktaClient()
+		idpClient, err = okta.NewOktaClientFromSettings()
 		if err != nil {
 			return err
 		}

+ 19 - 5
pro/idp/okta/okta.go

@@ -12,12 +12,10 @@ type Client struct {
 	client *okta.APIClient
 }
 
-func NewOktaClient() (*Client, error) {
-	settings := logic.GetServerSettings()
-
+func NewOktaClient(oktaOrgURL, oktaAPIToken string) (*Client, error) {
 	config, err := okta.NewConfiguration(
-		okta.WithOrgUrl(settings.OktaOrgURL),
-		okta.WithToken(settings.OktaAPIToken),
+		okta.WithOrgUrl(oktaOrgURL),
+		okta.WithToken(oktaAPIToken),
 	)
 	if err != nil {
 		return nil, err
@@ -28,6 +26,22 @@ func NewOktaClient() (*Client, error) {
 	}, nil
 }
 
+func NewOktaClientFromSettings() (*Client, error) {
+	settings := logic.GetServerSettings()
+
+	return NewOktaClient(settings.OktaOrgURL, settings.OktaAPIToken)
+}
+
+func (o *Client) Verify() error {
+	_, _, err := o.client.UserAPI.ListUsers(context.TODO()).Limit(1).Execute()
+	if err != nil {
+		return err
+	}
+
+	_, _, err = o.client.GroupAPI.ListGroups(context.TODO()).Limit(1).Execute()
+	return err
+}
+
 func (o *Client) GetUsers() ([]idp.User, error) {
 	var retval []idp.User
 	var allUsersFetched bool