use of org.apache.cxf.systest.ws.saml.client.SamlCallbackHandler in project cxf by apache.
the class SamlTokenTest method testSaml2OverAsymmetric.
@org.junit.Test
public void testSaml2OverAsymmetric() throws Exception {
SpringBusFactory bf = new SpringBusFactory();
URL busFile = SamlTokenTest.class.getResource("client.xml");
Bus bus = bf.createBus(busFile.toString());
BusFactory.setDefaultBus(bus);
BusFactory.setThreadDefaultBus(bus);
URL wsdl = SamlTokenTest.class.getResource("DoubleItSaml.wsdl");
Service service = Service.create(wsdl, SERVICE_QNAME);
QName portQName = new QName(NAMESPACE, "DoubleItSaml2AsymmetricPort");
DoubleItPortType saml2Port = service.getPort(portQName, DoubleItPortType.class);
updateAddressPort(saml2Port, test.getPort());
if (test.isStreaming()) {
SecurityTestUtil.enableStreaming(saml2Port);
}
try {
saml2Port.doubleIt(25);
fail("Expected failure on an invocation with no SAML Assertion");
} catch (javax.xml.ws.soap.SOAPFaultException ex) {
assertTrue(ex.getMessage().contains("No SAML CallbackHandler available"));
}
((BindingProvider) saml2Port).getRequestContext().put(SecurityConstants.SAML_CALLBACK_HANDLER, new SamlCallbackHandler(false));
try {
saml2Port.doubleIt(25);
fail("Expected failure on an invocation with a SAML1 Assertion");
} catch (javax.xml.ws.soap.SOAPFaultException ex) {
assertTrue(ex.getMessage().contains("Wrong SAML Version") || ex.getMessage().contains("enforces SamlVersion20Profile11 but we got 1.1"));
}
((BindingProvider) saml2Port).getRequestContext().put(SecurityConstants.SAML_CALLBACK_HANDLER, new SamlCallbackHandler());
int result = saml2Port.doubleIt(25);
assertTrue(result == 50);
// Don't send any Token...failure expected
portQName = new QName(NAMESPACE, "DoubleItSaml2AsymmetricPort2");
saml2Port = service.getPort(portQName, DoubleItPortType.class);
updateAddressPort(saml2Port, PORT);
((BindingProvider) saml2Port).getRequestContext().put(SecurityConstants.SAML_CALLBACK_HANDLER, new SamlCallbackHandler());
try {
saml2Port.doubleIt(25);
fail("Failure expected on no token");
} catch (javax.xml.ws.soap.SOAPFaultException ex) {
String error = "The received token does not match the token inclusion requirement";
assertTrue(ex.getMessage().contains(error));
}
((java.io.Closeable) saml2Port).close();
bus.shutdown(true);
}
use of org.apache.cxf.systest.ws.saml.client.SamlCallbackHandler in project cxf by apache.
the class SamlTokenTest method testSaml2EndorsingEncryptedOverTransport.
@org.junit.Test
public void testSaml2EndorsingEncryptedOverTransport() throws Exception {
SpringBusFactory bf = new SpringBusFactory();
URL busFile = SamlTokenTest.class.getResource("client.xml");
Bus bus = bf.createBus(busFile.toString());
BusFactory.setDefaultBus(bus);
BusFactory.setThreadDefaultBus(bus);
URL wsdl = SamlTokenTest.class.getResource("DoubleItSaml.wsdl");
Service service = Service.create(wsdl, SERVICE_QNAME);
QName portQName = new QName(NAMESPACE, "DoubleItSaml2EndorsingEncryptedTransportPort");
DoubleItPortType saml2Port = service.getPort(portQName, DoubleItPortType.class);
String portNumber = PORT2;
if (STAX_PORT.equals(test.getPort())) {
portNumber = STAX_PORT2;
}
updateAddressPort(saml2Port, portNumber);
if (test.isStreaming()) {
SecurityTestUtil.enableStreaming(saml2Port);
}
SamlCallbackHandler callbackHandler = new SamlCallbackHandler(true, true);
callbackHandler.setConfirmationMethod(SAML2Constants.CONF_HOLDER_KEY);
((BindingProvider) saml2Port).getRequestContext().put(SecurityConstants.SAML_CALLBACK_HANDLER, callbackHandler);
int result = saml2Port.doubleIt(25);
assertTrue(result == 50);
((java.io.Closeable) saml2Port).close();
bus.shutdown(true);
}
use of org.apache.cxf.systest.ws.saml.client.SamlCallbackHandler in project cxf by apache.
the class SamlTokenTest method testSaml1SelfSignedOverTransportSP11.
@org.junit.Test
public void testSaml1SelfSignedOverTransportSP11() throws Exception {
SpringBusFactory bf = new SpringBusFactory();
URL busFile = SamlTokenTest.class.getResource("client.xml");
Bus bus = bf.createBus(busFile.toString());
BusFactory.setDefaultBus(bus);
BusFactory.setThreadDefaultBus(bus);
URL wsdl = SamlTokenTest.class.getResource("DoubleItSaml.wsdl");
Service service = Service.create(wsdl, SERVICE_QNAME);
QName portQName = new QName(NAMESPACE, "DoubleItSaml1SelfSignedTransportSP11Port");
DoubleItPortType saml1Port = service.getPort(portQName, DoubleItPortType.class);
String portNumber = PORT2;
if (STAX_PORT.equals(test.getPort())) {
portNumber = STAX_PORT2;
}
updateAddressPort(saml1Port, portNumber);
if (test.isStreaming()) {
SecurityTestUtil.enableStreaming(saml1Port);
}
((BindingProvider) saml1Port).getRequestContext().put(SecurityConstants.SAML_CALLBACK_HANDLER, new SamlCallbackHandler(false, true));
int result = saml1Port.doubleIt(25);
assertTrue(result == 50);
((java.io.Closeable) saml1Port).close();
bus.shutdown(true);
}
use of org.apache.cxf.systest.ws.saml.client.SamlCallbackHandler in project cxf by apache.
the class SamlTokenTest method testAsymmetricSamlInitiator.
@org.junit.Test
public void testAsymmetricSamlInitiator() throws Exception {
SpringBusFactory bf = new SpringBusFactory();
URL busFile = SamlTokenTest.class.getResource("client.xml");
Bus bus = bf.createBus(busFile.toString());
BusFactory.setDefaultBus(bus);
BusFactory.setThreadDefaultBus(bus);
URL wsdl = SamlTokenTest.class.getResource("DoubleItSaml.wsdl");
Service service = Service.create(wsdl, SERVICE_QNAME);
QName portQName = new QName(NAMESPACE, "DoubleItAsymmetricSamlInitiatorPort");
DoubleItPortType saml2Port = service.getPort(portQName, DoubleItPortType.class);
updateAddressPort(saml2Port, test.getPort());
if (test.isStreaming()) {
SecurityTestUtil.enableStreaming(saml2Port);
}
SamlCallbackHandler callbackHandler = new SamlCallbackHandler(true, true);
callbackHandler.setConfirmationMethod(SAML2Constants.CONF_HOLDER_KEY);
((BindingProvider) saml2Port).getRequestContext().put(SecurityConstants.SAML_CALLBACK_HANDLER, callbackHandler);
int result = saml2Port.doubleIt(25);
assertTrue(result == 50);
((java.io.Closeable) saml2Port).close();
bus.shutdown(true);
}
use of org.apache.cxf.systest.ws.saml.client.SamlCallbackHandler in project cxf by apache.
the class SamlTokenTest method testAsymmetricSamlInitiatorProtectTokens.
@org.junit.Test
public void testAsymmetricSamlInitiatorProtectTokens() throws Exception {
// We don't support ProtectTokens + streaming clients
if (test.isStreaming()) {
return;
}
SpringBusFactory bf = new SpringBusFactory();
URL busFile = SamlTokenTest.class.getResource("client.xml");
Bus bus = bf.createBus(busFile.toString());
BusFactory.setDefaultBus(bus);
BusFactory.setThreadDefaultBus(bus);
URL wsdl = SamlTokenTest.class.getResource("DoubleItSaml.wsdl");
Service service = Service.create(wsdl, SERVICE_QNAME);
QName portQName = new QName(NAMESPACE, "DoubleItAsymmetricSamlInitiatorProtectTokensPort");
DoubleItPortType saml2Port = service.getPort(portQName, DoubleItPortType.class);
updateAddressPort(saml2Port, test.getPort());
if (test.isStreaming()) {
SecurityTestUtil.enableStreaming(saml2Port);
}
SamlCallbackHandler callbackHandler = new SamlCallbackHandler(true, true);
callbackHandler.setConfirmationMethod(SAML2Constants.CONF_HOLDER_KEY);
((BindingProvider) saml2Port).getRequestContext().put(SecurityConstants.SAML_CALLBACK_HANDLER, callbackHandler);
int result = saml2Port.doubleIt(25);
assertTrue(result == 50);
((java.io.Closeable) saml2Port).close();
bus.shutdown(true);
}
Aggregations