blob: 111665c6c24a8d7f7e43c572a545368c8b623763 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
/*
* Copyright (c) 2014, 2015 Hewlett-Packard Development Company, L.P. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.aaa.idm;
import org.opendaylight.aaa.api.IDMStoreException;
import org.opendaylight.aaa.api.IIDMStore;
import org.opendaylight.aaa.api.model.Domain;
import org.opendaylight.aaa.api.model.Grant;
import org.opendaylight.aaa.api.model.Role;
import org.opendaylight.aaa.api.model.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* StoreBuilder is triggered during feature installation by
* <code>AAAIDMLightModule.createInstance()</code>. StoreBuilder is responsible
* for initializing the H2 database with initial default user account
* information. By default, the following users are created:
* <ol>
* <li>admin</li>
* <li>user</li>
* </ol>
*
* By default, the following domain is created:
* <ol>
* <li>sdn</li>
* </ol>
*
* By default, the following grants are created:
* <ol>
* <li>admin with admin role on sdn</li>
* <li>admin with user role on sdn</li>
* <li>user with user role on sdn</li>
* </ol>
*
* @author peter.mellquist@hp.com
* @author saichler@cisco.com
*/
public class StoreBuilder {
private static final Logger LOG = LoggerFactory.getLogger(StoreBuilder.class);
public static void init(IIDMStore store) throws IDMStoreException {
LOG.info("creating idmlight schema in store");
// Check whether the default domain exists. If it exists, then do not
// create default data in the store.
// TODO Address the fact that someone may delete the sdn domain, or make
// sdn mandatory.
Domain defaultDomain = store.readDomain(IIDMStore.DEFAULT_DOMAIN);
if (defaultDomain != null) {
LOG.info("Found default domain in Store, skipping insertion of default data");
return;
}
// make domain
Domain domain = new Domain();
User adminUser = new User();
User userUser = new User();
Role adminRole = new Role();
Role userRole = new Role();
domain.setEnabled(true);
domain.setName(IIDMStore.DEFAULT_DOMAIN);
domain.setDescription("default odl sdn domain");
domain = store.writeDomain(domain);
// Create default users
// "admin" user
adminUser.setEnabled(true);
adminUser.setName("admin");
adminUser.setDomainid(domain.getDomainid());
adminUser.setDescription("admin user");
adminUser.setEmail("");
adminUser.setPassword("admin");
adminUser = store.writeUser(adminUser);
// "user" user
userUser.setEnabled(true);
userUser.setName("user");
userUser.setDomainid(domain.getDomainid());
userUser.setDescription("user user");
userUser.setEmail("");
userUser.setPassword("user");
userUser = store.writeUser(userUser);
// Create default Roles ("admin" and "user")
adminRole.setName("admin");
adminRole.setDomainid(domain.getDomainid());
adminRole.setDescription("a role for admins");
adminRole = store.writeRole(adminRole);
userRole.setName("user");
userRole.setDomainid(domain.getDomainid());
userRole.setDescription("a role for users");
userRole = store.writeRole(userRole);
// Create default grants
Grant grant = new Grant();
grant.setDomainid(domain.getDomainid());
grant.setUserid(userUser.getUserid());
grant.setRoleid(userRole.getRoleid());
grant = store.writeGrant(grant);
grant.setDomainid(domain.getDomainid());
grant.setUserid(adminUser.getUserid());
grant.setRoleid(userRole.getRoleid());
grant = store.writeGrant(grant);
grant.setDomainid(domain.getDomainid());
grant.setUserid(adminUser.getUserid());
grant.setRoleid(adminRole.getRoleid());
grant = store.writeGrant(grant);
}
}
|