Package com.sun.jersey.samples.contacts.models

Examples of com.sun.jersey.samples.contacts.models.User


    @Test
    public void testCreateUpdateDeleteUser() {
        List<User> users = client.findUsers();
        assertEquals(1, users.size());
        User user = new User();
        user.setId("new_id");
        user.setUsername("OldUsername");
        user.setPassword("OldPassword");
        client.createUser(user);
        user = client.findUser("OldUsername");
        assertNotNull(user);
        assertEquals("new_id", user.getId());
        assertEquals("OldUsername", user.getUsername());
        assertEquals("OldPassword", user.getPassword());
        List<Contact> contacts = client.findContacts("OldUsername");
        assertEquals(0, contacts.size());
        users = client.findUsers();
        assertEquals(2, users.size());
        user.setPassword("NewPassword");
        client.updateUser(user);
        user = client.findUser("OldUsername");
        assertNotNull(user);
        assertEquals("new_id", user.getId());
        assertEquals("OldUsername", user.getUsername());
        assertEquals("NewPassword", user.getPassword());
        client.deleteUser("OldUsername");
        users = client.findUsers();
        assertEquals(1, users.size());
        try {
            client.findUser("OldUsername");
View Full Code Here


     */
    @RolesAllowed("admin")
    @DELETE
    public Response delete() {
        synchronized (Database.users) {
            User user = Database.users.remove(username);
            if (user == null) {
                return Response.status(404).
                        type("text/plain").
                        entity("User '" + username + "' not found\r\n").
                        build();
View Full Code Here

               "application/xml",
               "text/xml"})
    public Response get() {
        Entry entry = null;
        synchronized (Database.users) {
            User user = Database.users.get(username);
            if (user == null) {
                return Response.status(404).
                        type("text/plain").
                        entity("User '" + username + "' not found\r\n").
                        build();
            }
            entry = abdera.newEntry();
            entry.setId(user.getId());
            entry.setTitle(user.getUsername());
            entry.setUpdated(user.getUpdated());
            String uri = uriInfo.getRequestUriBuilder().build().toString();
            entry.addLink(uri, "self");
            entry.addLink(uri, "edit");
            contentHelper.setContentEntity(entry, MediaType.APPLICATION_XML_TYPE, user);
        }
View Full Code Here

               "application/xml",
               "text/xml"})
    public Response put(Entry entry) {

        // Validate the incoming user information independent of the database
        User user = contentHelper.getContentEntity(entry, MediaType.APPLICATION_XML_TYPE, User.class);
        StringBuilder errors = new StringBuilder();
        if ((user.getPassword() == null) || (user.getPassword().length() < 1)) {
            errors.append("Missing 'password' property\r\n");
        }

        if (errors.length() > 0) {
            return Response.status(400).
                    type("text/plain").
                    entity(errors.toString()).build();
        }

        // Validate conditions that require locking the database
        synchronized (Database.users) {

            // Look up the original user information
            User original = Database.users.get(username);
            if (original == null) {
                return Response.status(404).
                        type("text/plain").
                        entity("User '" + username + "' does not exist\r\n").
                        build();
            }

            // Update the original user information
            original.setPassword(user.getPassword());
            original.setUpdated(new Date());
            Database.usersUpdated = new Date();
            return Response.
                    ok().
                    build();
View Full Code Here

        if (entry == null) {
            return Response.status(400).
                    type("text/plain").
                    entity("Missing entry in request body\r\n").build();
        }
        User user = null;
        try {
            user = contentHelper.getContentEntity(entry, MediaType.APPLICATION_XML_TYPE, User.class);
        } catch (IllegalArgumentException e) {
            return Response.status(400).
                    type("text/plain").
                    entity("Missing content element in the supplied entry\r\n").build();
        }
        StringBuilder errors = new StringBuilder();
        if ((user.getId() == null) || (user.getId().length() < 1)) {
            user.setId(UUID.randomUUID().toString());
        }
        if ((user.getPassword() == null) || (user.getPassword().length() < 1)) {
            errors.append("Missing 'password' property\r\n");
        }
        user.setUpdated(new Date());
        if ((user.getUsername() == null) || (user.getUsername().length() < 1)) {
            errors.append("Missing 'username' property\r\n");
        }
        if (errors.length() > 0) {
            return Response.status(400).
                    type("text/plain").
                    entity(errors.toString()).build();
        }

        // Validate conditions that require locking the database
        synchronized (Database.users) {

            if (Database.users.get(user.getUsername()) != null) {
                return Response.status(409).
                        type("text/plain").
                        entity("User '" + user.getUsername() + "' already exists\r\n").
                        build();
            }

            // Update the database with the new username
            Database.users.put(user.getUsername(), user);
            Database.usersUpdated = new Date();
            synchronized (Database.contacts) {
                Database.contacts.put(user.getUsername(), new ArrayList<Contact>());
                Database.contactsUpdated.put(user.getUsername(), Database.usersUpdated);
            }
            return Response.created(uriInfo.getRequestUriBuilder().path(user.getUsername()).build()).
                    build();

        }

    }
View Full Code Here

     * @return the decorated request
     * @exception AuthenticationException if authentication credentials
     *  are missing or invalid
     */
    public ContainerRequest filter(ContainerRequest request) {
        User user = authenticate(request);
        request.setSecurityContext(new Authorizer(user));
//        System.out.println("CURRENT USER IS " + user.getUsername());
        return request;
    }
View Full Code Here

            throw new MappableContainerException
                    (new AuthenticationException("Missing username or password\r\n", REALM));
        }

        // Validate the extracted credentials
        User user = null;
        synchronized (Database.users) {
            user = Database.users.get(username);
            if (user == null) {
                throw new MappableContainerException(new AuthenticationException("Invalid username or password\r\n", REALM));
            } else if (!password.trim().equals(user.getPassword().trim())) {
                throw new MappableContainerException(new AuthenticationException("Invalid username or password\r\n", REALM));
            }
        }

        // Return the validated user
View Full Code Here

    @GET
    @Produces({ "application/atomsvc+xml", "application/xml", "text/xml",
                "application/atomsvc+json", "application/json" })
    public Response get() {

        User authenticatedUser = getAuthenticatedUser();
        Service service = abdera.newService();
        Workspace contactsWorkspace = service.addWorkspace("Contact List Feeds");
        synchronized (Database.users) {
            if (Database.ADMIN_USERNAME.equals(authenticatedUser.getUsername())) {
                for (User user : Database.users.values()) {
                    addContactList(contactsWorkspace, user);
                }
            } else {
                addContactList(contactsWorkspace, authenticatedUser);
            }
        }
        if (Database.ADMIN_USERNAME.equals(authenticatedUser.getUsername())) {
            Workspace adminWorkspace = service.addWorkspace("Administrative Feeds");
            Collection usersCollection = adminWorkspace.addCollection("User List", uriInfo.getBaseUri() + "users");
        }
        return Response.ok(service).build();
    }
View Full Code Here

            password = args[2];
        }
       
        ContactsClient client = new ContactsClient(uri, username, password);

        User bob = new User();
        bob.setUsername("bob");
        bob.setPassword("alice");

        if (client.doesUserExist(bob.getUsername())) {
            System.out.println("User bob already exists");
            return;
        } else {
            System.out.println("Creating user bob with one contact");
        }

        client.createUser(bob);

        Contact c = new Contact();
        c.setName("bobs");
        c.setContent("Bob contacts");

        EmailAddress email = new EmailAddress("bob@example.com", "work e-mail", true, "work");

        c.getEmailAddresses().add(email);

        client.createContact(bob.getUsername(), c);
    }
View Full Code Here

    protected void createUser(String credentials, String mediaType, String username, String password) {
        Entry entry = abdera.newEntry();
        entry.setId(username);
        entry.setTitle(username);
        User user = new User();
        user.setPassword(password);
        user.setUsername(username);
        helper.setContentEntity(entry, MediaType.APPLICATION_XML_TYPE, user);
        try {
            service.
              path("users").
              type(mediaType).
View Full Code Here

TOP

Related Classes of com.sun.jersey.samples.contacts.models.User

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.