package org.jboss.keystone;
import org.jboss.resteasy.keystone.model.Project;
import org.jboss.resteasy.keystone.model.Role;
import org.jboss.resteasy.keystone.model.StoredUser;
import org.jboss.resteasy.keystone.server.SkeletonKeyApplication;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
import javax.ws.rs.core.Configurable;
import javax.ws.rs.core.Context;
import java.util.HashMap;
import java.util.Set;
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
@ApplicationPath("/")
public class Server extends Application
{
protected SkeletonKeyApplication app;
public Server(@Context Configurable confgurable)
{
app = new SkeletonKeyApplication(confgurable);
try
{
StoredUser admin = new StoredUser();
admin.setName("Bill");
admin.setId("1");
admin.setUsername("admin");
HashMap<String, String> creds = new HashMap<String, String>();
creds.put("password", "geheim");
admin.setCredentials(creds);
app.getUsers().create(admin);
Project project = new Project();
project.setName("Skeleton Key");
project.setEnabled(true);
app.getProjects().createProject(project);
Role adminRole = new Role();
adminRole.setName("admin");
app.getRoles().create(adminRole);
app.getProjects().addUserRole(project.getId(), admin.getId(), adminRole.getId());
project = new Project();
project.setId("42");
project.setName("Skeleton App");
project.setEnabled(true);
app.getProjects().createProject(project);
Role userRole = new Role();
userRole.setName("user");
app.getRoles().create(userRole);
StoredUser user = new StoredUser();
user.setName("Some User");
user.setUsername("someuser");
creds = new HashMap<String, String>();
creds.put("password", "geheim");
user.setCredentials(creds);
app.getUsers().create(user);
app.getProjects().addUserRole(project.getId(), user.getId(), userRole.getId());
StoredUser superuser = new StoredUser();
superuser.setName("Super User");
superuser.setUsername("superuser");
creds = new HashMap<String, String>();
creds.put("password", "geheim");
superuser.setCredentials(creds);
app.getUsers().create(superuser);
app.getProjects().addUserRole(project.getId(), superuser.getId(), adminRole.getId());
}
catch (Exception e)
{
throw new RuntimeException(e);
}
}
@Override
public Set<Object> getSingletons()
{
return app.getSingletons();
}
}