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

org.openstack4j.openstack.identity.domain.v3.Credentials Maven / Gradle / Ivy

package org.openstack4j.openstack.identity.domain.v3;

import org.openstack4j.model.identity.AuthStore;
import org.openstack4j.model.identity.AuthVersion;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonRootName;

@JsonRootName("auth")
public class Credentials extends Auth implements AuthStore {

    private static final long serialVersionUID = 1L;

    @JsonProperty(value = "passwordCredentials")
    private PasswordCredentials passwordCreds = new PasswordCredentials();

    public Credentials() {
        super(Type.CREDENTIALS);
    }

    public Credentials(String username, String password) {
        this();
        passwordCreds.setCredentials(username, password);
    }

    public Credentials(String username, String password, String domainId) {
        this();
        passwordCreds.setCredentials(username, password);
        setDomainId(domainId);
    }

    @JsonIgnore
    public String getUsername() {
        return passwordCreds.username;
    }

    @JsonIgnore
    public String getPassword() {
        return passwordCreds.password;
    }

    @SuppressWarnings("unchecked")
    @JsonIgnore
    @Override
    public  T unwrap() {
        return (T) this;
    }

    @JsonIgnore
    @Override
    public String getId() {
        return getDomainId();
    }

    @JsonIgnore
    @Override
    public String getName() {
        return getDomainName();
    }

    private static final class PasswordCredentials {

        @JsonProperty
        String username;
        @JsonProperty
        String password;

        public void setCredentials(String username, String password) {
            this.username = username;
            this.password = password;
        }
    }

    @JsonIgnore
    @Override
    public AuthVersion getVersion() {
        return AuthVersion.V3;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy