Package org.cedj.geekseek.service.security.rest

Source Code of org.cedj.geekseek.service.security.rest.WhoAmIResource

package org.cedj.geekseek.service.security.rest;

import javax.enterprise.inject.Instance;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.core.UriBuilder;

import org.cedj.geekseek.domain.Current;
import org.cedj.geekseek.domain.user.model.User;
import org.cedj.geekseek.web.rest.core.Resource;
import org.cedj.geekseek.web.rest.core.TopLevelResource;
import org.cedj.geekseek.web.rest.core.annotation.ResourceModel;
import org.cedj.geekseek.web.rest.user.UserResource;

@ResourceModel
@Path("/security/whoami")
public class WhoAmIResource implements TopLevelResource {

    private static final String BASE_XML_MEDIA_TYPE = "application/vnd.ced+xml";
    private static final String BASE_JSON_MEDIA_TYPE = "application/vnd.ced+json";

    private static final String USER_XML_MEDIA_TYPE = BASE_XML_MEDIA_TYPE + "; type=user";
    private static final String USER_JSON_MEDIA_TYPE = BASE_JSON_MEDIA_TYPE + "; type=user";

    @Inject @Current
    private Instance<User> user;

    @Override
    public Class<? extends Resource> getResourceClass() {
        return WhoAmIResource.class;
    }

    @Override
    public String getResourceMediaType() {
        return USER_XML_MEDIA_TYPE;
    }

    @GET
    @Produces({BASE_XML_MEDIA_TYPE, BASE_JSON_MEDIA_TYPE})
    public Response whoami() {
        User currentUser = user.get();
        if(currentUser == null) {
            return Response.status(Status.UNAUTHORIZED).build();
        }
        String userId = currentUser.getId();
        return Response.seeOther(
                UriBuilder.fromResource(UserResource.class).segment(userId).build())
            .build();
    }
}
TOP

Related Classes of org.cedj.geekseek.service.security.rest.WhoAmIResource

TOP
Copyright © 2018 www.massapi.com. 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.