Search in sources :

Example 16 with DoubleItPortType

use of org.example.contract.doubleit.DoubleItPortType in project cxf by apache.

the class DifferentRealmTest method testUnknownRealm.

/**
 * In this test, a token is issued by the first STS in realm "C". The second STS is not
 * configured to trust realm "C" (via a cert constraint) and so authentication does not succeed.
 */
@org.junit.Test
public void testUnknownRealm() throws Exception {
    SpringBusFactory bf = new SpringBusFactory();
    URL busFile = DifferentRealmTest.class.getResource("cxf-client.xml");
    Bus bus = bf.createBus(busFile.toString());
    BusFactory.setDefaultBus(bus);
    BusFactory.setThreadDefaultBus(bus);
    URL wsdl = DifferentRealmTest.class.getResource("DoubleIt.wsdl");
    Service service = Service.create(wsdl, SERVICE_QNAME);
    QName portQName = new QName(NAMESPACE, "DoubleItRealmCPort");
    DoubleItPortType transportPort = service.getPort(portQName, DoubleItPortType.class);
    updateAddressPort(transportPort, PORT);
    // Transport port
    try {
        doubleIt(transportPort, 25);
    } catch (Exception ex) {
    // expected
    }
    ((java.io.Closeable) transportPort).close();
    bus.shutdown(true);
}
Also used : Bus(org.apache.cxf.Bus) SpringBusFactory(org.apache.cxf.bus.spring.SpringBusFactory) QName(javax.xml.namespace.QName) Service(javax.xml.ws.Service) DoubleItPortType(org.example.contract.doubleit.DoubleItPortType) URL(java.net.URL)

Example 17 with DoubleItPortType

use of org.example.contract.doubleit.DoubleItPortType in project cxf by apache.

the class DifferentRealmTest method testRealmTransform.

/**
 * In this test, a token is issued by the first STS in realm "A". The second STS is configured
 * to trust realm "A" (via a cert constraint) and so authentication succeeds. The service
 * endpoint also sends a tokenType (SAML2) to the second STS, and so the IdentityMapper is
 * invoked to transform the authenticated principal into a principal in the current realm.
 */
@org.junit.Test
public void testRealmTransform() throws Exception {
    SpringBusFactory bf = new SpringBusFactory();
    URL busFile = DifferentRealmTest.class.getResource("cxf-client.xml");
    Bus bus = bf.createBus(busFile.toString());
    BusFactory.setDefaultBus(bus);
    BusFactory.setThreadDefaultBus(bus);
    URL wsdl = DifferentRealmTest.class.getResource("DoubleIt.wsdl");
    Service service = Service.create(wsdl, SERVICE_QNAME);
    QName portQName = new QName(NAMESPACE, "DoubleItRealmTransformPort");
    DoubleItPortType transportPort = service.getPort(portQName, DoubleItPortType.class);
    updateAddressPort(transportPort, PORT);
    // Transport port
    doubleIt(transportPort, 25);
    ((java.io.Closeable) transportPort).close();
    bus.shutdown(true);
}
Also used : Bus(org.apache.cxf.Bus) SpringBusFactory(org.apache.cxf.bus.spring.SpringBusFactory) QName(javax.xml.namespace.QName) Service(javax.xml.ws.Service) DoubleItPortType(org.example.contract.doubleit.DoubleItPortType) URL(java.net.URL)

Example 18 with DoubleItPortType

use of org.example.contract.doubleit.DoubleItPortType in project cxf by apache.

the class SAMLRenewTest method testRenewExpiredTokens.

@org.junit.Test
public void testRenewExpiredTokens() throws Exception {
    SpringBusFactory bf = new SpringBusFactory();
    URL busFile = SAMLRenewTest.class.getResource("cxf-client.xml");
    Bus bus = bf.createBus(busFile.toString());
    BusFactory.setDefaultBus(bus);
    BusFactory.setThreadDefaultBus(bus);
    URL wsdl = SAMLRenewTest.class.getResource("DoubleIt.wsdl");
    Service service = Service.create(wsdl, SERVICE_QNAME);
    QName saml1PortQName = new QName(NAMESPACE, "DoubleItTransportSaml1Port");
    DoubleItPortType saml1Port = service.getPort(saml1PortQName, DoubleItPortType.class);
    updateAddressPort(saml1Port, PORT);
    QName saml1BearerPortQName = new QName(NAMESPACE, "DoubleItTransportSaml1BearerPort");
    DoubleItPortType saml1BearerPort = service.getPort(saml1BearerPortQName, DoubleItPortType.class);
    updateAddressPort(saml1BearerPort, PORT);
    QName saml2PortQName = new QName(NAMESPACE, "DoubleItTransportSaml2Port");
    DoubleItPortType saml2Port = service.getPort(saml2PortQName, DoubleItPortType.class);
    updateAddressPort(saml2Port, PORT);
    QName saml2NoRenewPortQName = new QName(NAMESPACE, "DoubleItTransportSaml2NoRenewPort");
    DoubleItPortType saml2NoRenewPort = service.getPort(saml2NoRenewPortQName, DoubleItPortType.class);
    updateAddressPort(saml2NoRenewPort, PORT);
    QName saml2IntermediaryPortQName = new QName(NAMESPACE, "DoubleItTransportSaml2IntermediaryPort");
    DoubleItPortType saml2IntermediaryPort = service.getPort(saml2IntermediaryPortQName, DoubleItPortType.class);
    updateAddressPort(saml2IntermediaryPort, PORT);
    ((BindingProvider) saml2IntermediaryPort).getRequestContext().put(SecurityConstants.USERNAME, "alice");
    // Make initial successful invocation(s)
    doubleIt(saml1Port, 25);
    doubleIt(saml1BearerPort, 30);
    doubleIt(saml2Port, 35);
    doubleIt(saml2NoRenewPort, 35);
    doubleIt(saml2IntermediaryPort, 40);
    // Now sleep to expire the token(s)
    Thread.sleep(8 * 1000);
    // The IssuedTokenInterceptorProvider should renew the token
    BindingProvider p = (BindingProvider) saml1Port;
    STSClient stsClient = (STSClient) p.getRequestContext().get(SecurityConstants.STS_CLIENT);
    stsClient.setTtl(300);
    doubleIt(saml1Port, 25);
    try {
        // The IssuedTokenInterceptorProvider should renew the token - but it should fail on
        // lack of Proof-of-Possession
        doubleIt(saml1BearerPort, 30);
        fail("Expected failure on no Proof-of-Possession");
    } catch (Exception ex) {
    // expected
    }
    // The IssuedTokenInterceptorProvider should renew the token
    p = (BindingProvider) saml2Port;
    stsClient = (STSClient) p.getRequestContext().get(SecurityConstants.STS_CLIENT);
    stsClient.setTtl(300);
    doubleIt(saml2Port, 35);
    // Renew should fail here, but it should fall back to issue
    doubleIt(saml2NoRenewPort, 35);
    doubleIt(saml2IntermediaryPort, 40);
    ((java.io.Closeable) saml1Port).close();
    ((java.io.Closeable) saml1BearerPort).close();
    ((java.io.Closeable) saml2Port).close();
    ((java.io.Closeable) saml2IntermediaryPort).close();
    bus.shutdown(true);
}
Also used : Bus(org.apache.cxf.Bus) STSClient(org.apache.cxf.ws.security.trust.STSClient) SpringBusFactory(org.apache.cxf.bus.spring.SpringBusFactory) QName(javax.xml.namespace.QName) Service(javax.xml.ws.Service) DoubleItPortType(org.example.contract.doubleit.DoubleItPortType) BindingProvider(javax.xml.ws.BindingProvider) URL(java.net.URL)

Example 19 with DoubleItPortType

use of org.example.contract.doubleit.DoubleItPortType in project cxf by apache.

the class JaxwsBasicAuthTest method testBadBasicAuth.

@org.junit.Test
public void testBadBasicAuth() throws Exception {
    SpringBusFactory bf = new SpringBusFactory();
    URL busFile = JaxwsBasicAuthTest.class.getResource("cxf-bad-client.xml");
    Bus bus = bf.createBus(busFile.toString());
    BusFactory.setDefaultBus(bus);
    BusFactory.setThreadDefaultBus(bus);
    URL wsdl = JaxwsBasicAuthTest.class.getResource("DoubleIt.wsdl");
    Service service = Service.create(wsdl, SERVICE_QNAME);
    QName portQName = new QName(NAMESPACE, "DoubleItPort");
    DoubleItPortType port = service.getPort(portQName, DoubleItPortType.class);
    updateAddressPort(port, test.getPort());
    if (test.isStreaming()) {
        SecurityTestUtil.enableStreaming(port);
    }
    try {
        doubleIt(port, 30);
        fail("Expected failure on a bad password");
    } catch (javax.xml.ws.soap.SOAPFaultException fault) {
        String message = fault.getMessage();
        assertTrue(message.contains("STS Authentication failed") || message.contains("Validation of security token failed"));
    }
    ((java.io.Closeable) port).close();
    bus.shutdown(true);
}
Also used : Bus(org.apache.cxf.Bus) SpringBusFactory(org.apache.cxf.bus.spring.SpringBusFactory) QName(javax.xml.namespace.QName) Service(javax.xml.ws.Service) DoubleItPortType(org.example.contract.doubleit.DoubleItPortType) URL(java.net.URL)

Example 20 with DoubleItPortType

use of org.example.contract.doubleit.DoubleItPortType in project cxf by apache.

the class SecureConversationTest method testSecureConversationSymmetric.

@org.junit.Test
public void testSecureConversationSymmetric() throws Exception {
    SpringBusFactory bf = new SpringBusFactory();
    URL busFile = SecureConversationTest.class.getResource("cxf-client.xml");
    Bus bus = bf.createBus(busFile.toString());
    BusFactory.setDefaultBus(bus);
    BusFactory.setThreadDefaultBus(bus);
    URL wsdl = SecureConversationTest.class.getResource("DoubleIt.wsdl");
    Service service = Service.create(wsdl, SERVICE_QNAME);
    QName portQName = new QName(NAMESPACE, "DoubleItSymmetricSecureConvPort");
    DoubleItPortType symmetricPort = service.getPort(portQName, DoubleItPortType.class);
    updateAddressPort(symmetricPort, PORT2);
    doubleIt(symmetricPort, 30);
    bus.shutdown(true);
}
Also used : Bus(org.apache.cxf.Bus) SpringBusFactory(org.apache.cxf.bus.spring.SpringBusFactory) QName(javax.xml.namespace.QName) Service(javax.xml.ws.Service) DoubleItPortType(org.example.contract.doubleit.DoubleItPortType) URL(java.net.URL)

Aggregations

URL (java.net.URL)360 QName (javax.xml.namespace.QName)360 Service (javax.xml.ws.Service)360 DoubleItPortType (org.example.contract.doubleit.DoubleItPortType)360 Bus (org.apache.cxf.Bus)354 SpringBusFactory (org.apache.cxf.bus.spring.SpringBusFactory)352 SamlCallbackHandler (org.apache.cxf.systest.ws.saml.client.SamlCallbackHandler)31 Client (org.apache.cxf.endpoint.Client)22 STSClient (org.apache.cxf.ws.security.trust.STSClient)21 HashMap (java.util.HashMap)20 BindingProvider (javax.xml.ws.BindingProvider)17 WSS4JOutInterceptor (org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor)15 WSS4JStaxOutInterceptor (org.apache.cxf.ws.security.wss4j.WSS4JStaxOutInterceptor)13 KeystorePasswordCallback (org.apache.cxf.systest.ws.common.KeystorePasswordCallback)9 Test (org.junit.Test)9 SOAPFaultException (javax.xml.ws.soap.SOAPFaultException)8 BusException (org.apache.cxf.BusException)8 EndpointException (org.apache.cxf.endpoint.EndpointException)8 TokenStore (org.apache.cxf.ws.security.tokenstore.TokenStore)8 WebService (javax.jws.WebService)5