/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.smartitengineering.user.ws.resources; import com.smartitengineering.user.service.Services; import com.smartitengineering.user.domain.User; import com.smartitengineering.util.rest.atom.server.AbstractResource; import java.util.Date; import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.ResponseBuilder; import javax.ws.rs.core.Response.Status; import javax.ws.rs.core.UriBuilder; import org.apache.abdera.Abdera; import org.apache.abdera.model.Feed; import org.apache.abdera.model.Link; /** * * @author modhu7 */ @Path("/login") @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public class LoginResource extends AbstractResource { static final UriBuilder LOGIN_URI_BUILDER = UriBuilder.fromResource(LoginResource.class); @QueryParam("username") private String userNameWithOrganizationName; public LoginResource() { } @GET @Produces(MediaType.APPLICATION_ATOM_XML) public Response get() { ResponseBuilder responseBuilder = Response.status(Status.OK); Feed atomFeed = getFeed("Login Resource", new Date()); Link organizationsLink = Abdera.getNewFactory().newLink(); organizationsLink.setHref(getRelativeURIBuilder().path(OrganizationsResource.class).build().toString()); organizationsLink.setRel("Organizations"); atomFeed.addLink(organizationsLink); Link rolesLink = Abdera.getNewFactory().newLink(); rolesLink.setHref(getRelativeURIBuilder().path(RolesResource.class).build().toString()); rolesLink.setRel("Roles"); atomFeed.addLink(rolesLink); User user = Services.getInstance().getUserService().getUserByUsername(userNameWithOrganizationName); String userName = user.getUsername(); String shortName = user.getOrganization().getUniqueShortName(); Link UserLink = Abdera.getNewFactory().newLink(); UserLink.setHref(getRelativeURIBuilder().path(OrganizationUserResource.class).build(shortName, userName).toString()); UserLink.setRel("User"); atomFeed.addLink(UserLink); Link organizationLink = Abdera.getNewFactory().newLink(); organizationLink.setHref(getRelativeURIBuilder().path(OrganizationResource.class).build(shortName).toString()); organizationLink.setRel("Organization"); atomFeed.addLink(organizationLink); Link aclAuthLink = Abdera.getNewFactory().newLink(); aclAuthLink.setHref(getRelativeURIBuilder().path(AuthorizationResource.class).path( AuthorizationResource.ACL_AUTHORIZATION_METHOD).build().toString()); aclAuthLink.setRel("aclAuth"); atomFeed.addLink(aclAuthLink); Link roleAuthLink = Abdera.getNewFactory().newLink(); roleAuthLink.setHref(getRelativeURIBuilder().path(AuthorizationResource.class).path( AuthorizationResource.ROLE_AUTHORIZATION_METHOD).build().toString()); roleAuthLink.setRel("roleAuth"); atomFeed.addLink(roleAuthLink); Link userGetterLink = Abdera.getNewFactory().newLink(); userGetterLink.setHref(getRelativeURIBuilder().path(UserLinkResource.class).build().toString()); userGetterLink.setRel("userGetter"); atomFeed.addLink(userGetterLink); responseBuilder.entity(atomFeed); return responseBuilder.build(); } @Override protected String getAuthor() { return "Smart User"; } }