package won.cryptography.utils;
import org.apache.jena.query.Dataset;
import org.apache.jena.query.DatasetFactory;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.Resource;
import org.apache.jena.sparql.path.Path;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import won.cryptography.rdfsign.WonKeysReaderWriter;
import won.cryptography.service.KeyStoreService;
import won.protocol.util.DefaultPrefixUtils;
import won.protocol.util.linkeddata.LinkedDataSource;
import java.io.File;
import java.net.URI;
import java.security.PublicKey;
import java.security.Security;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* User: ypanchenko
* Date: 12.04.2015
*/
public class TestingDataSource implements LinkedDataSource
{
Map<String,PublicKey> pubKeysMap = new HashMap<String,PublicKey>();
public TestingDataSource() throws Exception {
//load public keys:
Security.addProvider(new BouncyCastleProvider());
File keysFile = new File(this.getClass().getResource(TestSigningUtils.KEYS_FILE).getFile());
KeyStoreService storeService = new KeyStoreService(keysFile, "temp");
storeService.init();
pubKeysMap.put(TestSigningUtils.needCertUri, storeService.getCertificate(TestSigningUtils.needCertUri).getPublicKey());
pubKeysMap.put(TestSigningUtils.ownerCertUri, storeService.getCertificate(TestSigningUtils.ownerCertUri).getPublicKey());
pubKeysMap.put(TestSigningUtils.nodeCertUri, storeService.getCertificate(TestSigningUtils.nodeCertUri).getPublicKey());
}
@Override
public Dataset getDataForResource(final URI resourceURI) {
Dataset dataset = DatasetFactory.createGeneral();
DefaultPrefixUtils.setDefaultPrefixes(dataset.getDefaultModel());
WonKeysReaderWriter keyWriter = new WonKeysReaderWriter();
Model model = dataset.getDefaultModel();
Resource subj = model.createResource(resourceURI.toString());
try {
keyWriter.writeToModel(model, subj, pubKeysMap.get(resourceURI.toString()));
} catch (Exception e) {
e.printStackTrace();
return null;
}
return dataset;
}
@Override
public Dataset getDataForResource(final URI resourceURI, final URI requesterWebID) {
throw new UnsupportedOperationException();
}
@Override
public Dataset getDataForResource(final URI resourceURI, final List<URI> properties, final int maxRequest, final int maxDepth) {
throw new UnsupportedOperationException();
}
@Override
public Dataset getDataForResource(final URI resourceURI, final URI requesterWebID, final List<URI> properties, final int maxRequest, final int maxDepth) {
throw new UnsupportedOperationException();
}
@Override
public Dataset getDataForResourceWithPropertyPath(final URI resourceURI, final List<Path> properties, final int maxRequest, final int maxDepth, final boolean moveAllTriplesInDefaultGraph) {
throw new UnsupportedOperationException();
}
@Override
public Dataset getDataForResourceWithPropertyPath(final URI resourceURI, final URI requesterWebID, final List<Path> properties, final int maxRequest, final int maxDepth, final boolean moveAllTriplesInDefaultGraph) {
throw new UnsupportedOperationException();
}
}