package org.openiot.lsm.http;
/**
* Copyright (c) 2011-2014, OpenIoT
*
* This file is part of OpenIoT.
*
* OpenIoT is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, version 3 of the License.
*
* OpenIoT is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with OpenIoT. If not, see <http://www.gnu.org/licenses/>.
*
* Contact: OpenIoT mailto: info@openiot.eu
*/
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.openiot.commons.util.Tuple2;
import org.openiot.lsm.manager.SensorManager;
import org.openiot.lsm.manager.TriplesDataRetriever;
import org.openiot.lsm.security.oauth.LSMRegisteredServiceImpl;
import org.openiot.lsm.security.oauth.LSMServiceTicketImpl;
import org.openiot.lsm.security.oauth.LSMTicketGrantingTicketImpl;
import org.openiot.lsm.security.oauth.mgmt.Permission;
import org.openiot.lsm.security.oauth.mgmt.Role;
/**
*
* @author Hoan Nguyen Mau Quoc
*
*/
/**
* Servlet implementation class OauthServlet
*/
// @WebServlet("/OauthServlet")
public class OauthServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private OauthServletHelper helper;
/**
* @see HttpServlet#HttpServlet()
*/
public OauthServlet() {
super();
helper = new OauthServletHelper();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
@SuppressWarnings("resource")
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
try {
ObjectInputStream inputFromClient = new ObjectInputStream(request.getInputStream());
// deserialize the object, note the cast
Object object = inputFromClient.readObject();
String objectType = request.getHeader("objectType");
String pro = request.getHeader("project").toLowerCase();
String graphURL = request.getHeader("OAuthGraphURL");
String perform = request.getHeader("operator");
if(perform.equals("insert")){
boolean isFeed = helper.feedToServer(object,objectType,graphURL);
response.setContentType("text/xml");
response.setHeader("Pragma", "no-cache"); // HTTP 1.0
response.setHeader("Cache-Control", "no-cache"); // HTTP 1.1
if (isFeed)
response.getWriter().print("FEED DONE");
else
response.getWriter().print("FEED FAIL");
}else if(perform.equals("update")){
boolean isFeed = helper.updateOnServer(object,objectType,graphURL);
response.setContentType("text/xml");
response.setHeader("Pragma", "no-cache"); // HTTP 1.0
response.setHeader("Cache-Control", "no-cache"); // HTTP 1.1
if (isFeed)
response.getWriter().print("UPDATE DONE");
else
response.getWriter().print("UPDATE FAIL");
}else if(perform.equals("delete")){
boolean isFeed = helper.deleteFromServer(object.toString(),objectType,graphURL);
response.setContentType("text/xml");
response.setHeader("Pragma", "no-cache"); // HTTP 1.0
response.setHeader("Cache-Control", "no-cache"); // HTTP 1.1
if (isFeed)
response.getWriter().print("DELETE DONE");
else
response.getWriter().print("DELETE FAIL");
}else if(perform.equals("load")){
Object returnObj = helper.getFromServer(object.toString(),objectType,graphURL);
response.setContentType("application/x-java-serialized-object");
ObjectOutputStream outputToApplet = new ObjectOutputStream(response.getOutputStream());
outputToApplet.writeObject(returnObj);
outputToApplet.flush();
outputToApplet.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}