package net.curisit.securis.services; import java.net.URI; import java.util.Date; import javax.inject.Inject; import javax.inject.Singleton; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; 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.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriBuilder; import net.curisit.securis.dao.UserDao; import net.curisit.securis.db.User; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Basic services for login and basic app wrkflow * * @author roberto */ @Path("/") @Singleton public class BasicServices { private static final Logger log = LoggerFactory.getLogger(BasicServices.class); @Inject public BasicServices() { } /** * * @return the server version in format majorVersion.minorVersion */ @GET @Path("/index") @Produces( { MediaType.TEXT_HTML }) public Response index(@Context HttpServletRequest request) { log.info("index session: " + request.getSession()); HttpSession session = request.getSession(false); String page = session != null && session.getAttribute("user") != null ? "/main.html" : "/login.html"; URI uri = UriBuilder.fromUri(page).build(); return Response.seeOther(uri).build(); // return Response.ok().entity("License server").build(); } @GET @Path("/info") @Produces( { MediaType.TEXT_PLAIN }) public Response info(@Context HttpServletRequest request) { return Response.ok().entity("License server running OK. Date: " + new Date()).build(); } @Inject UserDao userDao; @GET @Path("/test") @Produces( { MediaType.TEXT_PLAIN }) public Response test(@QueryParam("u") String username) { User user = userDao.test(username); return Response.ok().entity("User: " + user).build(); } }