package systems.composable.dropwizard.cassandra.auth;
import com.datastax.driver.core.AuthProvider;
import com.datastax.driver.core.PlainTextAuthProvider;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeName;
import javax.validation.constraints.NotNull;
/**
* A factory for configuring and building {@link PlainTextAuthProvider} instances.
* <p/>
* <b>Configuration Parameters:</b>
* <table>
* <tr>
* <td>Name</td>
* <td>Default</td>
* <td>Description</td>
* </tr>
* <tr>
* <td>username</td>
* <td>No default. You must define a username.</td>
* <td>The username to authenticate with.</td>
* </tr>
* <tr>
* <td>password</td>
* <td>No default. You must define a password.</td>
* <td>The password to authenticate with.</td>
* </tr>
* </table>
*/
@JsonTypeName("plainText")
public class PlainTextAuthProviderFactory implements AuthProviderFactory {
@NotNull
private String username;
@NotNull
private String password;
@JsonProperty
public String getUsername() {
return username;
}
@JsonProperty
public void setUsername(String username) {
this.username = username;
}
@JsonProperty
public String getPassword() {
return password;
}
@JsonProperty
public void setPassword(String password) {
this.password = password;
}
@Override
public AuthProvider build() {
return new PlainTextAuthProvider(username, password);
}
}