All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.stormpath.sdk.impl.provider.DefaultOktaProvider Maven / Gradle / Ivy

Go to download

The Stormpath Java SDK core implemenation .jar is used at runtime to support API invocations. This implementation jar should be a runtime dependency only and should NOT be depended on at compile time by your code. The implementations within this jar can change at any time without warning - use it with runtime scope only.

There is a newer version: 2.0.4-okta
Show newest version
package com.stormpath.sdk.impl.provider;

import com.stormpath.sdk.impl.ds.InternalDataStore;
import com.stormpath.sdk.impl.resource.DateProperty;
import com.stormpath.sdk.impl.resource.MapProperty;
import com.stormpath.sdk.impl.resource.Property;
import com.stormpath.sdk.impl.resource.StringProperty;
import com.stormpath.sdk.lang.Strings;
import com.stormpath.sdk.provider.OktaProvider;
import com.stormpath.sdk.provider.social.UserInfoMappingRules;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 */
public class DefaultOktaProvider extends AbstractOAuthProvider implements OktaProvider {

    private static final StringProperty ID = new StringProperty("id");
    private static final StringProperty TYPE = new StringProperty("type");
    private static final StringProperty NAME = new StringProperty("name");
    private static final StringProperty SCOPE_OKTA = new StringProperty("scope");
    private static final DateProperty CREATED_AT_OKTA = new DateProperty("created");
    private static final DateProperty LAST_UPDATED_AT_OKTA  = new DateProperty("lastUpdated");

    private static final MapProperty LINKS = new MapProperty("_links");
    private static final StringProperty AUTHORIZE_URI = new StringProperty("authorizeUri");

    private static final Map PROPERTY_DESCRIPTORS = createPropertyDescriptorMap(ID);

    public DefaultOktaProvider(InternalDataStore dataStore) {
        super(dataStore);
    }

    public DefaultOktaProvider(InternalDataStore dataStore, Map properties) {
        super(dataStore, properties);
    }

    @Override
    public Map getPropertyDescriptors() {
        return PROPERTY_DESCRIPTORS;
    }

    @Override
    public String getAuthorizeBaseUri() {
        return getString(AUTHORIZE_URI);
    }

    @Override
    public String getClientSecret() {
        return null;
    }

    @Override
    public UserInfoMappingRules getUserInfoMappingRules() {
        return null;
    }

    @Override
    public String getProviderType() {
        return getString(TYPE);
    }

    @Override
    public Date getCreatedAt() {
        return getDateProperty(CREATED_AT_OKTA);
    }

    @Override
    public Date getModifiedAt() {
        return getDateProperty(LAST_UPDATED_AT_OKTA);
    }

    @Override
    protected String getConcreteProviderId() {
        return getProviderType();
    }

    @Override
    public String getHref() {
        return "n/a";
    }

    @Override
    public String getProviderId() {
        if (Strings.hasLength(getProviderType())) {
            return getProviderType().toLowerCase();
        }
        return "default";
    }

    @Override
    public List getScope() {
        return new ArrayList<>(Strings.delimitedListToSet(getString(SCOPE_OKTA), " "));
    }

    @Override
    public String getIdp() {
        return getString(ID);
    }

    @Override
    public String getClientId() {
        return "n/a";
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy