package org.openiot.lsm.http;
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;
import static org.openiot.lsm.utils.OAuthUtil.*;
public class OauthServletHelper {
public boolean feedToServer(Object object, String objectType, String graphURL) {
// TODO Auto-generated method stub
try {
SensorManager sensorManager = new SensorManager();
sensorManager.setMetaGraph(graphURL);
String triples = "";
if (object instanceof Permission) {
Permission permission = (Permission) object;
triples = TriplesDataRetriever.permissionToRDF(permission);
} else if (object instanceof Role) {
Role role = (Role) object;
triples = TriplesDataRetriever.roleToRDF(role);
} else if (object instanceof org.openiot.lsm.security.oauth.mgmt.User) {
org.openiot.lsm.security.oauth.mgmt.User OAuthUser = (org.openiot.lsm.security.oauth.mgmt.User) object;
triples = TriplesDataRetriever.sec_UserToRDF(OAuthUser);
} else if (object instanceof LSMRegisteredServiceImpl) {
LSMRegisteredServiceImpl reg_service = (LSMRegisteredServiceImpl) object;
triples = TriplesDataRetriever.registeredServiceToRDF(reg_service);
} else if (object instanceof LSMTicketGrantingTicketImpl) {
LSMTicketGrantingTicketImpl ticket_grant = (LSMTicketGrantingTicketImpl) object;
triples = TriplesDataRetriever.ticketSchedulerToRDF(ticket_grant);
} else if (object instanceof LSMServiceTicketImpl) {
LSMServiceTicketImpl service_ticket = (LSMServiceTicketImpl) object;
triples = TriplesDataRetriever.ticketToRDF(service_ticket);
}
// System.out.println(triples);
sensorManager.insertTriplesToGraph(graphURL, triples);
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
public Object getFromServer(String value, String objectType, String graphURL) {
// TODO Auto-generated method stub
try {
SensorManager sensorManager = new SensorManager();
sensorManager.setMetaGraph(graphURL);
if (objectType.equals("OAuthUser")) {
org.openiot.lsm.security.oauth.mgmt.User user = sensorManager.getOAuthUserById(value);
return user;
} else if (objectType.equals(OAUTH_SERVICE)) {
LSMRegisteredServiceImpl ser = sensorManager.getServiceById(value);
return ser;
} else if (objectType.equals(OAUTH_TICKET_GRANTING)) {
LSMTicketGrantingTicketImpl tickGrant = sensorManager.getTicketSchedulerById(value);
return tickGrant;
} else if (objectType.equals(OAUTH_TICKET)) {
LSMServiceTicketImpl ticket = sensorManager.getTicketById(value);
return ticket;
} else if (objectType.equals(OAUTH_ROLE)) {
Role role = sensorManager.getRoleById(value);
return role;
} else if (objectType.equals(OAUTH_PER)) {
Permission permission = sensorManager.getPermissionById(value);
return permission;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
return null;
}
public boolean deleteFromServer(String value, String objectType, String graphURL) {
// TODO Auto-generated method stub
try {
SensorManager sensorManager = new SensorManager();
sensorManager.setMetaGraph(graphURL);
if (objectType.equals("OAuthUser")) {
return sensorManager.deleteOAuthUserById(value);
} else if (objectType.equals(OAUTH_SERVICE)) {
return sensorManager.deleteServiceById(value);
} else if (objectType.equals(OAUTH_TICKET_GRANTING)) {
return sensorManager.deleteTicketSchedulerById(value);
} else if (objectType.equals(OAUTH_TICKET)) {
return sensorManager.deleteTicketById(value);
} else if (objectType.equals(OAUTH_ROLE)) {
return sensorManager.deleteRoleById(value);
} else if (objectType.equals(OAUTH_PER)) {
return sensorManager.deletePermissionById(value);
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
@SuppressWarnings("unchecked")
public boolean updateOnServer(Object obj, String objectType, String graphURL) {
// TODO Auto-generated method stub
try {
SensorManager sensorManager = new SensorManager();
sensorManager.setMetaGraph(graphURL);
if (objectType.equals(OAUTH_ROLE_PERMISSION_ADD)) {
Tuple2<String, String> roleIdAndPermissionId = (Tuple2<String, String>) obj;
sensorManager.insertTriplesToGraph(graphURL,
TriplesDataRetriever.addPermissionToRoleRDF(roleIdAndPermissionId.getItem1(), roleIdAndPermissionId.getItem2()));
} else if (objectType.equals(OAUTH_ROLE_PERMISSION_DEL)) {
Tuple2<String, String> roleIdAndPermissionId = (Tuple2<String, String>) obj;
return sensorManager.deletePermissionFromRole(roleIdAndPermissionId.getItem1(), roleIdAndPermissionId.getItem2());
} else if (objectType.equals(OAUTH_CREATE_USER_SERVICES)) {
Tuple2<Long, String> userIdAndServiceURL = (Tuple2<Long, String>) obj;
return sensorManager.createDefaultUserServices(userIdAndServiceURL.getItem1(), userIdAndServiceURL.getItem2(), graphURL);
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
}