清单 8. 一个 SimpleDB 加密测试案例
@Test public void testSimpleDBEncryptInsert() throws Exception { KeyStore.SecretKeyEntry pkEntry = getKeyStoreEntry(); Cryptographical crypto = AESCryptoImpl.initialize(new AESCryptoKey(pkEntry.getSecretKey())); AmazonSimpleDB sdb = getSimpleDB(); String domain = "accounts"; sdb.createDomain(new CreateDomainRequest(domain)); List<ReplaceableItem> data = new ArrayList<ReplaceableItem>(); String encryptedName = crypto.encrypt("Acme Life, LLC"); data.add(new ReplaceableItem().withName("account_02").withAttributes( new ReplaceableAttribute().withName("name").withValue(encryptedName))); sdb.batchPutAttributes(new BatchPutAttributesRequest(domain, data)); String qry = "select * from " + SimpleDBUtils.quoteName(domain) + " where name = '" + encryptedName + "'"; SelectRequest selectRequest = new SelectRequest(qry); for (Item item : sdb.select(selectRequest).getItems()) { Assert.assertEquals("account_02", item.getName()); } } |