blob: b77b05af2a27571f732e05a74c5ed89022483d2a [file] [log] [blame]
/*
* Copyright 2014 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.juddi.v3.tck;
import java.security.cert.CertificateException;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
import javax.xml.ws.BindingProvider;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.juddi.jaxb.PrintUDDI;
import org.apache.juddi.v3.client.config.UDDIClient;
import org.apache.juddi.v3.client.cryptor.DigSigUtil;
import org.apache.juddi.v3.client.transport.Transport;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.BeforeClass;
import org.junit.Test;
import org.uddi.api_v3.AccessPoint;
import org.uddi.api_v3.BindingTemplate;
import org.uddi.api_v3.BindingTemplates;
import org.uddi.api_v3.BusinessDetail;
import org.uddi.api_v3.BusinessEntity;
import org.uddi.api_v3.BusinessService;
import org.uddi.api_v3.BusinessServices;
import org.uddi.api_v3.DeleteBusiness;
import org.uddi.api_v3.DeleteTModel;
import org.uddi.api_v3.GetBusinessDetail;
import org.uddi.api_v3.Name;
import org.uddi.api_v3.SaveBinding;
import org.uddi.api_v3.SaveBusiness;
import org.uddi.api_v3.SaveService;
import org.uddi.api_v3.SaveTModel;
import org.uddi.api_v3.ServiceDetail;
import org.uddi.api_v3.TModel;
import org.uddi.v3_service.UDDIInquiryPortType;
import org.uddi.v3_service.UDDIPublicationPortType;
import org.uddi.v3_service.UDDISecurityPortType;
import org.uddi.v3_service.UDDISubscriptionPortType;
/**
*
* @author Alex O'Ree
*/
public class UDDI_142_DigitalSignatureIntegrationTest {
private static Log logger = LogFactory.getLog(UDDI_142_DigitalSignatureIntegrationTest.class);
static UDDISecurityPortType security = null;
static UDDISubscriptionPortType subscriptionJoe = null;
static UDDIInquiryPortType inquiryJoe = null;
static UDDIPublicationPortType publicationJoe = null;
static TckTModel tckTModelJoe = null;
static TckBusiness tckBusinessJoe = null;
static UDDISubscriptionPortType subscriptionSam = null;
static UDDIInquiryPortType inquiryJoeSam = null;
static UDDIPublicationPortType publicationSam = null;
static TckTModel tckTModelSam = null;
static TckBusiness tckBusinessSam = null;
protected static String authInfoJoe = null;
protected static String authInfoSam = null;
private static UDDIClient manager;
@AfterClass
public static void stopManager() throws ConfigurationException {
if (!TckPublisher.isEnabled()) {
return;
}
tckTModelJoe.deleteCreatedTModels(authInfoJoe);
tckTModelSam.deleteCreatedTModels(authInfoSam);
manager.stop();
}
@BeforeClass
public static void startManager() throws ConfigurationException {
if (!TckPublisher.isEnabled()) {
return;
}
logger.info("UDDI_142_DigitalSignatureIntegrationTests");
manager = new UDDIClient();
manager.start();
logger.debug("Getting auth tokens..");
try {
Transport transport = manager.getTransport("uddiv3");
security = transport.getUDDISecurityService();
publicationJoe = transport.getUDDIPublishService();
inquiryJoe = transport.getUDDIInquiryService();
subscriptionJoe = transport.getUDDISubscriptionService();
authInfoJoe = TckSecurity.getAuthToken(security, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
authInfoSam = TckSecurity.getAuthToken(security, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
//Assert.assertNotNull(authInfoJoe);
//Assert.assertNotNull(authInfoSam);
if (!TckPublisher.isUDDIAuthMode()) {
TckSecurity.setCredentials((BindingProvider) publicationJoe, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
TckSecurity.setCredentials((BindingProvider) inquiryJoe, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
TckSecurity.setCredentials((BindingProvider) subscriptionJoe, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
}
tckTModelJoe = new TckTModel(publicationJoe, inquiryJoe);
tckBusinessJoe = new TckBusiness(publicationJoe, inquiryJoe);
transport = manager.getTransport("uddiv3");
publicationSam = transport.getUDDIPublishService();
inquiryJoeSam = transport.getUDDIInquiryService();
if (!TckPublisher.isUDDIAuthMode()) {
TckSecurity.setCredentials((BindingProvider) publicationSam, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
TckSecurity.setCredentials((BindingProvider) inquiryJoeSam, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
TckSecurity.setCredentials((BindingProvider) subscriptionSam, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
}
subscriptionSam = transport.getUDDISubscriptionService();
tckTModelSam = new TckTModel(publicationSam, inquiryJoeSam);
tckBusinessSam = new TckBusiness(publicationSam, inquiryJoeSam);
} catch (Exception e) {
logger.error(e.getMessage(), e);
Assert.fail("Could not obtain authInfo token.");
}
JUDDI_300_MultiNodeIntegrationTest.testSetupReplicationConfig();
}
private void DeleteBusinesses(List<String> businesskeysToDelete, String authinfo, UDDIPublicationPortType pub) {
//cleanup
try {
DeleteBusiness db = new DeleteBusiness();
db.setAuthInfo(authinfo);
db.getBusinessKey().addAll(businesskeysToDelete);
pub.deleteBusiness(db);
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void DeleteBusinesses(String businesskeysToDelete, String authinfo, UDDIPublicationPortType pub) {
//cleanup
try {
DeleteBusiness db = new DeleteBusiness();
db.setAuthInfo(authinfo);
db.getBusinessKey().add(businesskeysToDelete);
pub.deleteBusiness(db);
} catch (Exception ex) {
ex.printStackTrace();
}
}
@Test()
public void JUDDI_712_SaveBusinessProjectionWithSignature() throws CertificateException {
Assume.assumeTrue(TckPublisher.isEnabled());
SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfoJoe);
BusinessEntity be = new BusinessEntity();
Name n = new Name();
n.setValue("JUDDI_JUDDI_712_SaveBusinessProjectionWithSignature");
be.getName().add(n);
DigSigUtil ds = GetDigSig();
be = ds.signUddiEntity(be);
sb.getBusinessEntity().add(be);
try {
BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
Assert.fail("unexpected success");
} catch (Exception ex) {
logger.info("Expected failure: " + ex.getMessage());
}
}
@Test()
public void JUDDI_712_SaveBusinessProjectionNoServiceKeyWithSignature() throws CertificateException {
Assume.assumeTrue(TckPublisher.isEnabled());
SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfoJoe);
BusinessEntity be = new BusinessEntity();
Name n = new Name();
n.setValue("JUDDI_712_SaveBusinessProjectionNoServiceKeyWithSignature");
be.getName().add(n);
be.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
//service has neither business or service key
BusinessService bs = new BusinessService();
bs.getName().add(new Name("Joe's bs", null));
be.setBusinessServices(new BusinessServices());
be.getBusinessServices().getBusinessService().add(bs);
DigSigUtil ds = GetDigSig();
be = ds.signUddiEntity(be);
sb.getBusinessEntity().add(be);
try {
BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
Assert.fail("unexpected success");
} catch (Exception ex) {
logger.info("Expected failure: " + ex.getMessage());
}
}
@Test()
public void JUDDI_712_SaveBusinessProjectionNoServiceKey2WithSignature() throws CertificateException {
Assume.assumeTrue(TckPublisher.isEnabled());
SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfoJoe);
BusinessEntity be = new BusinessEntity();
Name n = new Name();
n.setValue("JUDDI_712_SaveBusinessProjectionNoServiceKey2WithSignature");
be.getName().add(n);
be.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
//service has business but not service key
BusinessService bs = new BusinessService();
bs.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
bs.getName().add(new Name("Joe's bs", null));
be.setBusinessServices(new BusinessServices());
be.getBusinessServices().getBusinessService().add(bs);
DigSigUtil ds = GetDigSig();
be = ds.signUddiEntity(be);
sb.getBusinessEntity().add(be);
try {
BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
Assert.fail("unexpected success");
} catch (Exception ex) {
logger.info("Expected failure: " + ex.getMessage());
}
}
@Test()
public void JUDDI_712_SaveBusinessProjectionNoServiceKey3WithSignature() throws CertificateException {
Assume.assumeTrue(TckPublisher.isEnabled());
SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfoJoe);
BusinessEntity be = new BusinessEntity();
Name n = new Name();
n.setValue("JUDDI_712_SaveBusinessProjectionNoServiceKey3WithSignature");
be.getName().add(n);
be.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
//service has business but not service key
BusinessService bs = new BusinessService();
//bs.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
bs.setServiceKey(TckBusinessService.JOE_SERVICE_KEY);
bs.getName().add(new Name("Joe's bs", null));
be.setBusinessServices(new BusinessServices());
be.getBusinessServices().getBusinessService().add(bs);
DigSigUtil ds = GetDigSig();
be = ds.signUddiEntity(be);
sb.getBusinessEntity().add(be);
try {
BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
Assert.fail("unexpected success");
} catch (Exception ex) {
logger.info("Expected failure: " + ex.getMessage());
}
}
@Test()
public void JUDDI_712_SaveServiceProjectionNoServiceKey3WithSignature() throws CertificateException {
Assume.assumeTrue(TckPublisher.isEnabled());
SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfoJoe);
BusinessEntity be = new BusinessEntity();
Name n = new Name();
n.setValue("JUDDI_712_SaveServiceProjectionNoServiceKey3WithSignature");
be.getName().add(n);
be.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
BusinessService bs = new BusinessService();
bs.setBusinessKey(null);
bs.setServiceKey(null);
bs.getName().add(new Name("Joe's bs", null));
DigSigUtil ds = GetDigSig();
bs = ds.signUddiEntity(bs);
be.setBusinessServices(new BusinessServices());
be.getBusinessServices().getBusinessService().add(bs);
sb.getBusinessEntity().add(be);
try {
BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
Assert.fail("unexpected success");
} catch (Exception ex) {
logger.info("Expected failure: " + ex.getMessage());
}
}
@Test()
public void JUDDI_712_SaveServiceProjectionNoServiceKey1WithSignature() throws CertificateException {
Assume.assumeTrue(TckPublisher.isEnabled());
SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfoJoe);
BusinessEntity be = new BusinessEntity();
Name n = new Name();
n.setValue("JUDDI_712_SaveServiceProjectionNoServiceKey1WithSignature");
be.getName().add(n);
be.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
BusinessService bs = new BusinessService();
bs.setBusinessKey(null);
bs.setServiceKey(TckBusinessService.JOE_SERVICE_KEY);
bs.getName().add(new Name("Joe's bs", null));
DigSigUtil ds = GetDigSig();
bs = ds.signUddiEntity(bs);
be.setBusinessServices(new BusinessServices());
be.getBusinessServices().getBusinessService().add(bs);
sb.getBusinessEntity().add(be);
try {
BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
Assert.fail("unexpected success");
} catch (Exception ex) {
logger.info("Expected failure: " + ex.getMessage());
}
}
@Test()
public void JUDDI_712_SaveServiceProjectionNoServiceKey2WithSignature() throws CertificateException {
Assume.assumeTrue(TckPublisher.isEnabled());
SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfoJoe);
BusinessEntity be = new BusinessEntity();
Name n = new Name();
n.setValue("JUDDI_712_SaveServiceProjectionNoServiceKey2WithSignature");
be.getName().add(n);
be.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
BusinessService bs = new BusinessService();
bs.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
bs.setServiceKey(null);
bs.getName().add(new Name("Joe's bs", null));
DigSigUtil ds = GetDigSig();
bs = ds.signUddiEntity(bs);
be.setBusinessServices(new BusinessServices());
be.getBusinessServices().getBusinessService().add(bs);
sb.getBusinessEntity().add(be);
try {
BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
Assert.fail("unexpected success");
} catch (Exception ex) {
logger.info("Expected failure: " + ex.getMessage());
}
}
public void JUDDI_712_SaveBusinessNoneDefined() throws Exception {
Assume.assumeTrue(TckPublisher.isEnabled());
SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfoJoe);
BusinessEntity be = new BusinessEntity();
Name n = new Name();
n.setValue("JUDDI_712_SaveServiceWithSignature");
be.getName().add(n);
be.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
try {
BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
Assert.fail("unexpected success");
} catch (Exception ex) {
logger.info("Expected failure: " + ex.getMessage());
throw ex;
}
}
@Test()
public void JUDDI_712_SaveServiceWithSignature() throws CertificateException {
Assume.assumeTrue(TckPublisher.isEnabled());
SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfoJoe);
BusinessEntity be = new BusinessEntity();
Name n = new Name();
n.setValue("JUDDI_712_SaveServiceWithSignature");
be.getName().add(n);
be.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
sb.getBusinessEntity().add(be);
try {
BusinessDetail saveBusiness = publicationJoe.saveBusiness(sb);
} catch (Exception ex) {
logger.info("UnExpected failure: ", ex);
Assert.fail();
}
SaveService ss = new SaveService();
ss.setAuthInfo(authInfoJoe);
BusinessService bs = new BusinessService();
bs.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
bs.setServiceKey(null);
bs.getName().add(new Name("Joe's bs", null));
DigSigUtil ds = GetDigSig();
bs = ds.signUddiEntity(bs);
be.setBusinessServices(new BusinessServices());
be.getBusinessServices().getBusinessService().add(bs);
sb.getBusinessEntity().add(be);
try {
publicationJoe.saveService(ss);
Assert.fail("unexpected success");
} catch (Exception ex) {
logger.info("Expected failure: " + ex.getMessage());
}
}
@Test()
public void JUDDI_712_SaveService1WithSignature() throws CertificateException {
Assume.assumeTrue(TckPublisher.isEnabled());
SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfoJoe);
BusinessEntity be = new BusinessEntity();
Name n = new Name();
n.setValue("JUDDI_712_SaveService1WithSignature");
be.getName().add(n);
be.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
sb.getBusinessEntity().add(be);
BusinessDetail saveBusiness = null;
try {
saveBusiness = publicationJoe.saveBusiness(sb);
} catch (Exception ex) {
logger.info("UnExpected failure: ", ex);
Assert.fail();
}
SaveService ss = new SaveService();
ss.setAuthInfo(authInfoJoe);
BusinessService bs = new BusinessService();
bs.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
bs.setServiceKey(TckBusinessService.JOE_SERVICE_KEY);
bs.setBindingTemplates(new BindingTemplates());
BindingTemplate bt = new BindingTemplate();
bt.setBindingKey(null);
bt.setServiceKey(null);
bt.setAccessPoint(new AccessPoint("http://localhost", "wsdl"));
bs.getBindingTemplates().getBindingTemplate().add(bt);
bs.getName().add(new Name("Joe's bs", null));
DigSigUtil ds = GetDigSig();
bs = ds.signUddiEntity(bs);
be.setBusinessServices(new BusinessServices());
be.getBusinessServices().getBusinessService().add(bs);
sb.getBusinessEntity().add(be);
try {
publicationJoe.saveService(ss);
Assert.fail("unexpected success");
} catch (Exception ex) {
logger.info("Expected failure: " + ex.getMessage());
} finally {
DeleteBusinesses(saveBusiness.getBusinessEntity().get(0).getBusinessKey(), authInfoJoe, publicationJoe);
}
}
@Test()
public void JUDDI_712_SaveService2WithSignature() throws CertificateException {
Assume.assumeTrue(TckPublisher.isEnabled());
SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfoJoe);
BusinessEntity be = new BusinessEntity();
Name n = new Name();
n.setValue("JUDDI_712_SaveService2WithSignature");
be.getName().add(n);
be.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
sb.getBusinessEntity().add(be);
BusinessDetail saveBusiness = null;
try {
saveBusiness = publicationJoe.saveBusiness(sb);
} catch (Exception ex) {
logger.info("UnExpected failure: ", ex);
Assert.fail();
}
SaveService ss = new SaveService();
ss.setAuthInfo(authInfoJoe);
BusinessService bs = new BusinessService();
bs.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
bs.setServiceKey(TckBusinessService.JOE_SERVICE_KEY);
bs.setBindingTemplates(new BindingTemplates());
BindingTemplate bt = new BindingTemplate();
bt.setBindingKey(null);
bt.setServiceKey(TckBusinessService.JOE_SERVICE_KEY);
bt.setAccessPoint(new AccessPoint("http://localhost", "wsdl"));
bs.getBindingTemplates().getBindingTemplate().add(bt);
bs.getName().add(new Name("Joe's bs", null));
DigSigUtil ds = GetDigSig();
bs = ds.signUddiEntity(bs);
be.setBusinessServices(new BusinessServices());
be.getBusinessServices().getBusinessService().add(bs);
sb.getBusinessEntity().add(be);
try {
publicationJoe.saveService(ss);
Assert.fail("unexpected success");
} catch (Exception ex) {
logger.info("Expected failure: " + ex.getMessage());
} finally {
DeleteBusinesses(saveBusiness.getBusinessEntity().get(0).getBusinessKey(), authInfoJoe, publicationJoe);
}
}
@Test()
public void JUDDI_712_SaveService3WithSignature() throws CertificateException {
Assume.assumeTrue(TckPublisher.isEnabled());
SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfoJoe);
BusinessEntity be = new BusinessEntity();
Name n = new Name();
n.setValue("JUDDI_712_SaveService3WithSignature");
be.getName().add(n);
be.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
sb.getBusinessEntity().add(be);
BusinessDetail saveBusiness = null;
try {
saveBusiness = publicationJoe.saveBusiness(sb);
} catch (Exception ex) {
logger.info("UnExpected failure: ", ex);
Assert.fail();
}
SaveService ss = new SaveService();
ss.setAuthInfo(authInfoJoe);
BusinessService bs = new BusinessService();
bs.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
bs.setServiceKey(TckBusinessService.JOE_SERVICE_KEY);
bs.setBindingTemplates(new BindingTemplates());
BindingTemplate bt = new BindingTemplate();
bt.setBindingKey(TckBusinessService.JOE_BINDING_KEY_1);
bt.setServiceKey(null);
bt.setAccessPoint(new AccessPoint("http://localhost", "wsdl"));
bs.getBindingTemplates().getBindingTemplate().add(bt);
bs.getName().add(new Name("Joe's bs", null));
DigSigUtil ds = GetDigSig();
bs = ds.signUddiEntity(bs);
be.setBusinessServices(new BusinessServices());
be.getBusinessServices().getBusinessService().add(bs);
sb.getBusinessEntity().add(be);
try {
publicationJoe.saveService(ss);
Assert.fail("unexpected success");
} catch (Exception ex) {
logger.info("Expected failure: " + ex.getMessage());
} finally {
DeleteBusinesses(saveBusiness.getBusinessEntity().get(0).getBusinessKey(), authInfoJoe, publicationJoe);
}
}
@Test()
public void JUDDI_712_SaveTModelWithSignature() throws CertificateException {
Assume.assumeTrue(TckPublisher.isEnabled());
SaveTModel sb = new SaveTModel();
sb.setAuthInfo(authInfoJoe);
DigSigUtil ds = GetDigSig();
TModel bs = new TModel();
bs.setName(new Name("Joe's Tmodel", null));
bs = ds.signUddiEntity(bs);
sb.getTModel().add(bs);
try {
publicationJoe.saveTModel(sb);
Assert.fail("unexpected success");
} catch (Exception ex) {
logger.info("Expected failure: " + ex.getMessage());
}
}
@Test()
public void JUDDI_712_SaveService4BTWithSignature() throws CertificateException {
Assume.assumeTrue(TckPublisher.isEnabled());
SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfoJoe);
BusinessEntity be = new BusinessEntity();
Name n = new Name();
n.setValue("JUDDI_712_SaveService4BTWithSignature");
be.getName().add(n);
be.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
sb.getBusinessEntity().add(be);
BusinessDetail saveBusiness = null;
try {
saveBusiness = publicationJoe.saveBusiness(sb);
} catch (Exception ex) {
logger.info("UnExpected failure: ", ex);
Assert.fail();
}
SaveService ss = new SaveService();
ss.setAuthInfo(authInfoJoe);
BusinessService bs = new BusinessService();
bs.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
bs.setServiceKey(TckBusinessService.JOE_SERVICE_KEY);
bs.setBindingTemplates(new BindingTemplates());
BindingTemplate bt = new BindingTemplate();
bt.setBindingKey(TckBusinessService.JOE_BINDING_KEY_1);
bt.setServiceKey(null);
bt.setAccessPoint(new AccessPoint("http://localhost", "wsdl"));
bs.getName().add(new Name("Joe's bs", null));
DigSigUtil ds = GetDigSig();
bt = ds.signUddiEntity(bt);
bs.getBindingTemplates().getBindingTemplate().add(bt);
be.setBusinessServices(new BusinessServices());
be.getBusinessServices().getBusinessService().add(bs);
sb.getBusinessEntity().add(be);
try {
publicationJoe.saveService(ss);
Assert.fail("unexpected success");
} catch (Exception ex) {
logger.info("Expected failure: " + ex.getMessage());
} finally {
DeleteBusinesses(saveBusiness.getBusinessEntity().get(0).getBusinessKey(), authInfoJoe, publicationJoe);
}
}
@Test()
public void JUDDI_712_SaveService5BTWithSignature() throws CertificateException {
Assume.assumeTrue(TckPublisher.isEnabled());
SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfoJoe);
BusinessEntity be = new BusinessEntity();
Name n = new Name();
n.setValue("JUDDI_712_SaveService5BTWithSignature");
be.getName().add(n);
be.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
sb.getBusinessEntity().add(be);
BusinessDetail saveBusiness = null;
try {
saveBusiness = publicationJoe.saveBusiness(sb);
} catch (Exception ex) {
logger.info("UnExpected failure: ", ex);
Assert.fail();
}
SaveService ss = new SaveService();
ss.setAuthInfo(authInfoJoe);
BusinessService bs = new BusinessService();
bs.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
bs.setServiceKey(TckBusinessService.JOE_SERVICE_KEY);
bs.setBindingTemplates(new BindingTemplates());
BindingTemplate bt = new BindingTemplate();
bt.setBindingKey(null);
bt.setServiceKey(null);
bt.setAccessPoint(new AccessPoint("http://localhost", "wsdl"));
bs.getName().add(new Name("Joe's bs", null));
DigSigUtil ds = GetDigSig();
bt = ds.signUddiEntity(bt);
bs.getBindingTemplates().getBindingTemplate().add(bt);
be.setBusinessServices(new BusinessServices());
be.getBusinessServices().getBusinessService().add(bs);
sb.getBusinessEntity().add(be);
try {
publicationJoe.saveService(ss);
Assert.fail("unexpected success");
} catch (Exception ex) {
logger.info("Expected failure: " + ex.getMessage());
} finally {
DeleteBusinesses(saveBusiness.getBusinessEntity().get(0).getBusinessKey(), authInfoJoe, publicationJoe);
}
}
@Test()
public void JUDDI_712_SaveService6BTWithSignature() throws CertificateException {
Assume.assumeTrue(TckPublisher.isEnabled());
SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfoJoe);
BusinessEntity be = new BusinessEntity();
Name n = new Name();
n.setValue("JUDDI_712_SaveService6BTWithSignature");
be.getName().add(n);
be.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
sb.getBusinessEntity().add(be);
BusinessDetail saveBusiness = null;
try {
saveBusiness = publicationJoe.saveBusiness(sb);
} catch (Exception ex) {
logger.info("UnExpected failure: ", ex);
Assert.fail();
}
SaveService ss = new SaveService();
ss.setAuthInfo(authInfoJoe);
BusinessService bs = new BusinessService();
bs.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
bs.setServiceKey(TckBusinessService.JOE_SERVICE_KEY);
bs.setBindingTemplates(new BindingTemplates());
BindingTemplate bt = new BindingTemplate();
bt.setBindingKey(null);
bt.setServiceKey(TckBusinessService.JOE_SERVICE_KEY);
bt.setAccessPoint(new AccessPoint("http://localhost", "wsdl"));
bs.getName().add(new Name("Joe's bs", null));
DigSigUtil ds = GetDigSig();
bt = ds.signUddiEntity(bt);
bs.getBindingTemplates().getBindingTemplate().add(bt);
be.setBusinessServices(new BusinessServices());
be.getBusinessServices().getBusinessService().add(bs);
sb.getBusinessEntity().add(be);
try {
publicationJoe.saveService(ss);
Assert.fail("unexpected success");
} catch (Exception ex) {
logger.info("Expected failure: " + ex.getMessage());
} finally {
DeleteBusinesses(saveBusiness.getBusinessEntity().get(0).getBusinessKey(), authInfoJoe, publicationJoe);
}
}
@Test()
public void JUDDI_712_SaveBusinessWithSignature() throws CertificateException {
Assume.assumeTrue(TckPublisher.isEnabled());
tckTModelJoe.saveJoePublisherTmodel(authInfoJoe);
SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfoJoe);
BusinessEntity be = new BusinessEntity();
Name n = new Name();
n.setValue("JUDDI_712_SaveBindingWithSignature");
be.getName().add(n);
be.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
sb.getBusinessEntity().add(be);
BusinessDetail saveBusiness = null;
try {
saveBusiness = publicationJoe.saveBusiness(sb);
} catch (Exception ex) {
logger.info("UnExpected failure: ", ex);
Assert.fail();
}
SaveService ss = new SaveService();
ss.setAuthInfo(authInfoJoe);
BusinessService bs = new BusinessService();
bs.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
bs.setServiceKey(TckBusinessService.JOE_SERVICE_KEY);
bs.getName().add(new Name("joe's service", null));
be.setBusinessServices(new BusinessServices());
be.getBusinessServices().getBusinessService().add(bs);
sb.getBusinessEntity().add(be);
ServiceDetail saveService = null;
ss.getBusinessService().add(bs);
try {
saveService = publicationJoe.saveService(ss);
} catch (Exception ex) {
//logger.error("unExpected failure: ",ex);
Assert.fail("unexpected failure " + ex.getMessage() + ex.toString());
}
bs = saveService.getBusinessService().get(0);
bs.setBindingTemplates(new BindingTemplates());
BindingTemplate bt = new BindingTemplate();
bt.setBindingKey(null);
bt.setServiceKey(TckBusinessService.JOE_SERVICE_KEY);
bt.setAccessPoint(new AccessPoint("http://localhost", "wsdl"));
bs.getName().add(new Name("Joe's bs", null));
DigSigUtil ds = GetDigSig();
bt = ds.signUddiEntity(bt);
bs.getBindingTemplates().getBindingTemplate().add(bt);
try {
SaveBinding sb1 = new SaveBinding();
sb1.setAuthInfo(authInfoJoe);
sb1.getBindingTemplate().add(bt);
publicationJoe.saveBinding(sb1);
Assert.fail("unexpected success");
} catch (Exception ex) {
logger.info("Expected failure: " + ex.getMessage());
} finally {
DeleteBusinesses(saveBusiness.getBusinessEntity().get(0).getBusinessKey(), authInfoJoe, publicationJoe);
}
}
//JUDDI-716
@Test()
public void JUDDI_716_SaveBusinessWithSignatureX509IssuerSerial() throws CertificateException {
Assume.assumeTrue(TckPublisher.isEnabled());
SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfoJoe);
BusinessEntity be = new BusinessEntity();
be.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
Name n = new Name();
n.setValue("JUDDI_716_SaveBusinessWithSignatureX509IssuerSerial");
be.getName().add(n);
DigSigUtil ds = GetDigSig();
ds.put(DigSigUtil.SIGNATURE_OPTION_CERT_INCLUSION_SERIAL, "true");
be = ds.signUddiEntity(be);
sb.getBusinessEntity().add(be);
BusinessDetail saveBusiness = null;
try {
saveBusiness = publicationJoe.saveBusiness(sb);
GetBusinessDetail gsb = new GetBusinessDetail();
gsb.setAuthInfo(authInfoJoe);
gsb.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
BusinessDetail businessDetail = inquiryJoe.getBusinessDetail(gsb);
PrintUDDI<BusinessEntity> printer = new PrintUDDI<BusinessEntity>();
if (TckCommon.isDebug()) {
logger.info(printer.print(businessDetail.getBusinessEntity().get(0)));
}
AtomicReference<String> msg = new AtomicReference<String>();
boolean b = ds.verifySignedUddiEntity(businessDetail.getBusinessEntity().get(0), msg);
Assert.assertTrue(msg.get(), b);
Assert.assertTrue(msg.get() == null || msg.get().length() == 0);
} catch (Exception ex) {
logger.error("unExpected failure: ", ex);
Assert.fail("unexpected failure");
} finally {
DeleteBusinesses(saveBusiness.getBusinessEntity().get(0).getBusinessKey(), authInfoJoe, publicationJoe);
}
}
//JUDDI-716
@Test()
public void JUDDI_716_SaveBusinessAllOptions() throws CertificateException {
Assume.assumeTrue(TckPublisher.isEnabled());
SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfoJoe);
BusinessEntity be = new BusinessEntity();
be.setBusinessKey(TckBusiness.JOE_BUSINESS_KEY);
Name n = new Name();
n.setValue("JUDDI_716_SaveBusinessAllOptions");
be.getName().add(n);
DigSigUtil ds = GetDigSig();
ds.put(DigSigUtil.SIGNATURE_OPTION_CERT_INCLUSION_SERIAL, "true");
ds.put(DigSigUtil.SIGNATURE_OPTION_CERT_INCLUSION_SUBJECTDN, "true");
be = ds.signUddiEntity(be);
sb.getBusinessEntity().add(be);
BusinessDetail saveBusiness = null;
try {
saveBusiness = publicationJoe.saveBusiness(sb);
GetBusinessDetail gsb = new GetBusinessDetail();
gsb.setAuthInfo(authInfoJoe);
gsb.getBusinessKey().add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
BusinessDetail businessDetail = inquiryJoe.getBusinessDetail(gsb);
PrintUDDI<BusinessEntity> printer = new PrintUDDI<BusinessEntity>();
if (TckCommon.isDebug()) {
logger.info(printer.print(businessDetail.getBusinessEntity().get(0)));
}
AtomicReference<String> msg = new AtomicReference<String>();
boolean b = ds.verifySignedUddiEntity(businessDetail.getBusinessEntity().get(0), msg);
Assert.assertTrue(msg.get(), b);
Assert.assertTrue(msg.get() == null || msg.get().length() == 0);
} catch (Exception ex) {
logger.error("unExpected failure: ", ex);
Assert.fail("unexpected failure");
} finally {
DeleteBusinesses(saveBusiness.getBusinessEntity().get(0).getBusinessKey(), authInfoJoe, publicationJoe);
}
}
org.apache.juddi.v3.client.cryptor.DigSigUtil GetDigSig() throws CertificateException {
org.apache.juddi.v3.client.cryptor.DigSigUtil ds = new DigSigUtil(TckPublisher.getProperties());
/*
ds.put(DigSigUtil.SIGNATURE_KEYSTORE_FILE, "./src/test/resources/keystore.jks");
ds.put(DigSigUtil.SIGNATURE_KEYSTORE_FILETYPE, "JKS");
ds.put(DigSigUtil.SIGNATURE_KEYSTORE_FILE_PASSWORD, "Test");
ds.put(DigSigUtil.SIGNATURE_KEYSTORE_KEY_ALIAS, "Test");
ds.put(DigSigUtil.TRUSTSTORE_FILE, "./src/test/resources/truststore.jks");
ds.put(DigSigUtil.TRUSTSTORE_FILETYPE, "JKS");
ds.put(DigSigUtil.TRUSTSTORE_FILE_PASSWORD, "Test");*/
ds.put(DigSigUtil.SIGNATURE_OPTION_CERT_INCLUSION_BASE64, "true");
return ds;
}
}