import java.util.ArrayList; import java.util.HashMap; import java.util.List; import org.jasig.cas.authentication.ImmutableAuthentication; import org.jasig.cas.authentication.principal.Service; import org.jasig.cas.authentication.principal.SimplePrincipal; import org.jasig.cas.authentication.principal.SimpleWebApplicationServiceImpl; import org.jasig.cas.ticket.support.NeverExpiresExpirationPolicy; import org.openiot.lsm.security.oauth.LSMOAuthHttpManager; 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 org.openiot.lsm.security.oauth.mgmt.User; import com.hp.hpl.jena.query.QueryExecution; import com.hp.hpl.jena.query.QuerySolution; import com.hp.hpl.jena.query.ResultSet; import com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP; /** * * @author Hoan Nguyen Mau Quoc * */ public class TestLSMOAuthentication { static String OAuthGraphURL = "http://lsm.deri.ie/OpenIoT/OAuth#"; public static Permission generatePermission(String name, String des) { Permission per = new Permission(); per.setDescription(des); per.setName(name); return per; } public static Role generateRole() { Role role = new Role(); role.setDescription("Administrator role"); role.setName("admin"); role.setServiceId(1L); Permission per = new Permission(); per.setDescription("Create new users"); per.setName("admin:create_user"); per.setServiceId(1L); role.addPermission(per); Permission per2 = new Permission(); per2.setDescription("Delete stream s1"); per2.setName("admin:delete_sensor:s1"); per.setServiceId(1L); role.addPermission(per2); Permission per3 = new Permission(); per3.setDescription("Delete existing users"); per3.setName("admin:delete_user"); per.setServiceId(1L); role.addPermission(per3); return role; } public static User generateOAuthUser() { Role role = generateRole(); List<Role> roles = new ArrayList<Role>(); roles.add(role); Permission per = new Permission("sensor:query:s2", "Query stream s2", 3L); Role role2 = new Role("guest", "guest role", 3L); role2.addPermission(per); roles.add(role2); User user = new User(); user.setUsername("admin"); user.setEmail("admin@example.com"); user.setName("administrator"); user.setPassword("5ebe2294ecd0e0f08eab7690d2a6ee69"); user.setRoles(roles); return user; } public static LSMRegisteredServiceImpl createRegisteredService() { LSMRegisteredServiceImpl reg_ser = new LSMRegisteredServiceImpl(); reg_ser.setId((long) 1); reg_ser.setAllowedToProxy(true); reg_ser.setAnonymousAccess(true); reg_ser.setDescription("Service Manager"); reg_ser.setEnabled(true); reg_ser.setEvaluationOrder(0); reg_ser.setIgnoreAttributes(false); reg_ser.setName("Service Manager"); reg_ser.setServiceId("https://localhost:8443/openiot-cas/services/j_acegi_cas_security_check"); reg_ser.setSsoEnabled(false); return reg_ser; } public static LSMTicketGrantingTicketImpl createTicketGrantingTicket() { LSMTicketGrantingTicketImpl tgt = new LSMTicketGrantingTicketImpl(); tgt.setId("TGT-1-0VPQMgR6P4OeVdAFK3O3CWxkKUZUaZlRPnEOOw9qIVIhj6tP9A-openiot.eu"); tgt.setCountOfUses(1); tgt.setCreationTime(1385137975212L); tgt.setExpirationPolicy(new NeverExpiresExpirationPolicy()); tgt.setLastTimeUsed(1385137975237L); tgt.setPreviousLastTimeUsed(1385137975212L); tgt.setExpired(false); tgt.setAuthentication(new ImmutableAuthentication(new SimplePrincipal("sp-id"))); final HashMap<String, Service> services = new HashMap<String, Service>(); services.put("dummy-id", new SimpleWebApplicationServiceImpl("dummy-id")); tgt.setServices(services); tgt.setTicketGrantingTicket(null); return tgt; } public static LSMTicketGrantingTicketImpl createTicketGrantingTicket(LSMTicketGrantingTicketImpl grantingTicket) { LSMTicketGrantingTicketImpl tgt = new LSMTicketGrantingTicketImpl(); tgt.setId("TGT-2-eLPogT3jXcUd1chRvtqKH6Rxv49XbtXZfEp5qoR1ynhbGOlxIK-openiot.eu"); tgt.setCountOfUses(2); tgt.setCreationTime(1385138057030L); tgt.setExpirationPolicy(new NeverExpiresExpirationPolicy()); tgt.setLastTimeUsed(1385138114044L); tgt.setPreviousLastTimeUsed(1385138057063L); tgt.setExpired(false); tgt.setAuthentication(new ImmutableAuthentication(new SimplePrincipal("sp-id2"))); final HashMap<String, Service> services = new HashMap<String, Service>(); services.put("dummy-id2", new SimpleWebApplicationServiceImpl("dummy-id2")); tgt.setServices(services); tgt.setTicketGrantingTicket(grantingTicket); return tgt; } public static LSMServiceTicketImpl createServiceTicket(LSMTicketGrantingTicketImpl grantingTicket) { LSMServiceTicketImpl serviceTicket = new LSMServiceTicketImpl(); serviceTicket.setId("ST-3-HC7u5cS33WUK5UJOoZyA-openiot.eu"); serviceTicket.setCountOfUses(0); serviceTicket.setCreationTime(1385138114044L); serviceTicket.setExpirationPolicy(new NeverExpiresExpirationPolicy()); serviceTicket.setLastTimeUsed(1385138114044L); serviceTicket.setPreviousLastTimeUsed(0L); serviceTicket.setFromNewLogin(false); serviceTicket.setService(new SimpleWebApplicationServiceImpl("dummy-id3")); serviceTicket.setTicketGrantingTicket(grantingTicket); return serviceTicket; } public static void testSPARQLService(){ String sparqlQueryString = "select distinct ?weatherSensor where {{"+ " select ?sensor AS ?weatherSensor from <http://lsm.deri.ie/sensormeta#> where {" + " ?sensor <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.oclc.org/NET/ssnx/ssn#Sensor>."+ "?sensor <http://purl.org/net/provenance/ns#PerformedBy> ?source."+ "?sensor <http://lsm.deri.ie/ont/lsm.owl#hasSensorType> ?typeId."+ "?typeId <http://www.w3.org/2000/01/rdf-schema#label> 'weather'."+ "?sensor <http://www.loa-cnr.it/ontologies/DUL.owl#hasLocation> ?place."+ "?place geo:geometry ?geo. filter (<bif:st_intersects>(?geo,<bif:st_point>(-0.12719,51.506432),15))."+ "}}"+ " ?weatherSensor <http://purl.oclc.ie/NET/ssnx/ssn#observes> ?observedProperty."+ " ?observedProperty <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://lsm.deri.ie/ont/lsm.owl#WindChill>.}"; System.out.println(sparqlQueryString); QueryExecution qexec = new QueryEngineHTTP("http://lsm.deri.ie/sparql", sparqlQueryString); // Query query = QueryFactory.create(sparqlQueryString); // ARQ.getContext().setTrue(ARQ.useSAX); // // QueryExecution qexec = QueryExecutionFactory.sparqlService("http://lsm.deri.ie/sparql", query); //Retrieving the SPARQL Query results ResultSet results = qexec.execSelect(); //Iterating over the SPARQL Query results while (results.hasNext()) { QuerySolution soln = results.nextSolution(); System.out.println(soln.get("?weatherSensor")); } qexec.close(); } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub LSMOAuthHttpManager oM = new LSMOAuthHttpManager(OAuthGraphURL); // oM.addPermission(generatePermission("admin:create_user","Create new users")); // oM.deletePermission("admin:create_user"); // oM.addRole(generateRole()); // oM.deleteRole("admin"); // oM.addUser(generateOAuthUser()); // oM.deleteUser("admin"); oM.addRegisteredService(createRegisteredService()); // oM.deleteRegisteredService(1); // User user = oM.getUser("admin"); // System.out.println(user.getRoles().size()); // LSMRegisteredServiceImpl service = oM.getRegisteredService((long)1); // System.out.println(service.getId()); final LSMTicketGrantingTicketImpl tgt = createTicketGrantingTicket(); // oM.addTicketGrangtingTicket(tgt); final LSMTicketGrantingTicketImpl ticketGranting = oM.getTicketGranting(tgt.getId()); System.out.println(ticketGranting); // oM.deleteTicketGranting(tgt.getId()); // final LSMTicketGrantingTicketImpl ticketGranting2 = oM.getTicketGranting(tgt.getId()); // System.out.println(ticketGranting2); final LSMTicketGrantingTicketImpl tgt2 = createTicketGrantingTicket(tgt); oM.addTicketGrangtingTicket(tgt2); final LSMTicketGrantingTicketImpl ticketGranting2 = oM.getTicketGranting(tgt2.getId()); System.out.println(ticketGranting2); // oM.deleteTicketGranting(tgt2.getId()); // final LSMTicketGrantingTicketImpl ticketGranting22 = oM.getTicketGranting(tgt2.getId()); // System.out.println(ticketGranting22); final LSMServiceTicketImpl serviceTicket = createServiceTicket(tgt); oM.addServiceTicketImpl(serviceTicket); // LSMServiceTicketImpl serviceTicket2 = oM.getServiceTicketImpl(serviceTicket.getId()); // System.out.println(serviceTicket2); // oM.deleteServiceTicketImpl(serviceTicket.getId()); // serviceTicket2 = oM.getServiceTicketImpl(serviceTicket.getId()); // System.out.println(serviceTicket2); // // oM.deleteTicketGranting(tgt2.getId()); // final List<LSMTicketGrantingTicketImpl> allTkts = oM.getAllTicketGrantingTickets(); // System.out.println(allTkts.size()); // if(!allTkts.isEmpty()) // System.out.println(allTkts.get(0)); // // final List<LSMServiceTicketImpl> allTktsOf = oM.getAllServiceTicketsOfTicketGrantingTicket(tgt.getId()); // System.out.println("allTktsOf size: " + allTktsOf.size()); // if(!allTktsOf.isEmpty()) // System.out.println(allTktsOf.get(0)); // // final List<LSMServiceTicketImpl> allServiceTkts = oM.getAllServiceTickets(); // System.out.println("allServiceTkts size: " + allServiceTkts.size()); // if(!allServiceTkts.isEmpty()) // System.out.println(allServiceTkts.get(0)); // System.out.println(oM.getAllRegisteredServices().size()); } }