Once the installation finishes, one can authenticates with the Opendaylight controller by presenting a username/password and a domain name (scope) to be logged into:
- curl -s -d 'grant_type=password&username=admin&password=odl&scope=sdn' http://<controller>:<port>/oauth2/token
+ curl -s -d 'grant_type=password&username=admin&password=admin&scope=sdn' http://<controller>:<port>/oauth2/token
Upon successful authentication, the controller returns an access token with a configurable expiration in seconds, something similar to the followings:
public class HttpBasicAuthTest {
private static final String USERNAME = "admin";
- private static final String PASSWORD = "odl";
+ private static final String PASSWORD = "admin";
private HttpBasicAuth auth;
@SuppressWarnings("unchecked")
public class TokenEndpointTest {
private static final long TOKEN_TIMEOUT_SECS = 10;
private static final String CONTEXT = "/oauth2";
- private static final String DIRECT_AUTH = "grant_type=password&username=admin&password=odl&scope=pepsi&client_id=dlux&client_secret=secrete";
+ private static final String DIRECT_AUTH = "grant_type=password&username=admin&password=admin&scope=pepsi&client_id=dlux&client_secret=secrete";
private static final String REFRESH_TOKEN = "grant_type=refresh_token&refresh_token=whateverisgood&scope=pepsi";
private static final Claim claim = new ClaimBuilder().setUser("bob")
public Claim authenticate(PasswordCredentials creds, String tenant) {
// TODO Get this from the database/REST
if (creds.username().equalsIgnoreCase("admin")
- && creds.password().equalsIgnoreCase("odl")) {
+ && creds.password().equalsIgnoreCase("admin")) {
ClaimBuilder claim = new ClaimBuilder();
claim.setUserId("1234").setUser(creds.username()).addRole("admin")
.addRole("user").setDomain("sdn").build();
OAuthClientRequest request = OAuthClientRequest
.tokenLocation(TOKEN_URL).setGrantType(GrantType.PASSWORD)
.setClientId("dlux").setClientSecret("secrete")
- .setUsername("admin").setPassword("odl").setScope("sdn")
+ .setUsername("admin").setPassword("admin").setScope("sdn")
.buildQueryMessage();
OAuthClient client = new OAuthClient(new URLConnectionClient());
OAuthJSONAccessTokenResponse resp = client.accessToken(request);
// Test credential auth
PasswordCredentials creds = new PasswordCredentialBuilder()
- .setUserName("admin").setPassword("odl").build();
+ .setUserName("admin").setPassword("admin").build();
Claim claim = ca.authenticate(creds, "sdn");
assertEquals("admin", claim.user());
assertFalse(claim.roles().isEmpty());