use of com.zimbra.common.soap.SoapTransport in project zm-mailbox by Zimbra.
the class TestGetSignature method getSignaturePlainSig.
@Test
public void getSignaturePlainSig() throws Exception {
Account acct = provUtil.createAccount(genAcctNameLocalPart(), domain);
boolean csrfEnabled = Boolean.FALSE;
SoapTransport transport = authUser(acct.getName(), csrfEnabled, Boolean.FALSE);
String sigContent = "xss<script>alert(\"XSS\")</script><a href=javascript:alert(\"XSS\")><";
Signature sig = new Signature(null, "testSig", sigContent, "text/plain");
CreateSignatureRequest req = new CreateSignatureRequest(sig);
SoapProtocol proto = SoapProtocol.Soap12;
Element sigReq = JaxbUtil.jaxbToElement(req, proto.getFactory());
try {
Element element = transport.invoke(sigReq, false, false, null);
String sigt = element.getElement("signature").getAttribute("id");
assertNotNull(sigt);
} catch (SoapFaultException e) {
e.printStackTrace();
assertNull(e);
}
GetSignaturesRequest getSigReq = new GetSignaturesRequest();
sigReq = JaxbUtil.jaxbToElement(getSigReq, proto.getFactory());
try {
Element element = transport.invoke(sigReq, false, false, null);
String sigtContent = element.getElement("signature").getElement("content").getText();
assertNotNull(sigContent);
int index = sigtContent.indexOf("alert(\"XSS\")");
Assert.assertTrue(index > -1);
} catch (SoapFaultException e) {
e.printStackTrace();
assertNull(e);
}
}
use of com.zimbra.common.soap.SoapTransport in project zm-mailbox by Zimbra.
the class GalTestUtil method createAndSyncGalSyncAccount.
static void createAndSyncGalSyncAccount(String galSyncAcctName, String domainName, GSAType type) throws Exception {
String dataSourceName;
String dataSourceType;
String folderName;
if (type == GSAType.zimbra || type == GSAType.both) {
dataSourceName = "zimbra";
dataSourceType = "zimbra";
folderName = "zimbra-gal-contacts";
} else {
dataSourceName = "external";
dataSourceType = "ldap";
folderName = "external-gal-contacts";
}
SoapTransport transport = TestUtil.getAdminSoapTransport();
//
// create gal sync account and data sources, then force sync
//
String gsaZimbraId = GalTestUtil.createGalSyncAccountOrDataSource(transport, galSyncAcctName, domainName, dataSourceName, dataSourceType, folderName);
GalTestUtil.syncGASDataSource(transport, gsaZimbraId, dataSourceName);
if (type == GSAType.both) {
dataSourceName = "external";
dataSourceType = "ldap";
folderName = "external-gal-contacts";
GalTestUtil.createGalSyncAccountOrDataSource(transport, galSyncAcctName, domainName, dataSourceName, dataSourceType, folderName);
GalTestUtil.syncGASDataSource(transport, gsaZimbraId, dataSourceName);
}
//
// index the gal sync account (otherwise the first search will fail)
//
Element eReIndex = Element.create(transport.getRequestProtocol(), AdminConstants.REINDEX_REQUEST);
eReIndex.addAttribute(AdminConstants.A_ACTION, "start");
Element eMbox = eReIndex.addElement(AdminConstants.E_MAILBOX);
eMbox.addAttribute(AdminConstants.A_ID, gsaZimbraId);
transport.invoke(eReIndex);
// wait for the reindex to finish
Thread.sleep(2000);
}
use of com.zimbra.common.soap.SoapTransport in project zm-mailbox by Zimbra.
the class TestDLMembership method testGetDistributionListMembers.
@Test
public void testGetDistributionListMembers() {
SoapTransport transport;
try {
transport = TestUtil.getAdminSoapTransport();
AddDistributionListMemberResponse addDLMemberResp = SoapTest.invokeJaxb(transport, new AddDistributionListMemberRequest(testDL.getId(), Collections.singleton(testUser.getName())));
AddDistributionListMemberResponse addDLMemberResp2 = SoapTest.invokeJaxb(transport, new AddDistributionListMemberRequest(testDL2.getId(), Collections.singleton(testUser2.getName())));
assertNotNull("AddDistributionListMemberResponse cannot be null", addDLMemberResp);
//Verify GetDistributionListMembersRequest returns correct members.
SoapTransport transportAccount = TestUtil.authUser(testUser.getName(), TestUtil.DEFAULT_PASSWORD);
GetDistributionListMembersResponse resp = SoapTest.invokeJaxb(transportAccount, new GetDistributionListMembersRequest(0, 0, testDL2.getName()));
List<String> dlInfoList = resp.getDlMembers();
assertFalse("Unexepcted member present", dlInfoList.contains(testUser.getName()));
assertTrue("DL member not present", dlInfoList.contains(testUser2.getName()));
resp = SoapTest.invokeJaxb(transportAccount, new GetDistributionListMembersRequest(0, 0, testDL.getName()));
dlInfoList = resp.getDlMembers();
assertFalse("Unexepcted member present", dlInfoList.contains(testUser2.getName()));
assertTrue("DL member not present", dlInfoList.contains(testUser.getName()));
} catch (Exception e) {
fail(e.getLocalizedMessage());
}
}
use of com.zimbra.common.soap.SoapTransport in project zm-mailbox by Zimbra.
the class TestDLMembership method testAddMemberByAlias.
@Test
public void testAddMemberByAlias() {
SoapTransport transport;
try {
transport = TestUtil.getAdminSoapTransport();
//add an alias to the account
AddAccountAliasResponse addAliasResp = SoapTest.invokeJaxb(transport, new AddAccountAliasRequest(testUser.getId(), TestUtil.getAddress(TEST_ALIAS)));
assertNotNull("AddAccountAliasResponse cannot be null", addAliasResp);
Account acct = Provisioning.getInstance().getAccount(testUser.getId());
assertNotNull(acct);
assertNotNull("account's aliases are null", acct.getAliases());
assertEquals("account has no aliases", acct.getAliases().length, 1);
//add a member by alias
AddDistributionListMemberResponse addDLMemberResp = SoapTest.invokeJaxb(transport, new AddDistributionListMemberRequest(testDL.getId(), Collections.singleton(TestUtil.getAddress(TEST_ALIAS))));
assertNotNull("AddDistributionListMemberResponse cannot be null", addDLMemberResp);
//verify that account is a member of the DL
GetAccountMembershipResponse resp = SoapTest.invokeJaxb(transport, new GetAccountMembershipRequest(AccountSelector.fromName(TEST_USER)));
assertNotNull("GetAccountMembershipRequest cannot be null", resp);
List<DLInfo> dlInfoList = resp.getDlList();
assertTrue("Account is not a member of any DLs", dlInfoList.size() > 0);
assertEquals("Account should be a member of the test DL only", dlInfoList.get(0).getName(), testDL.getName());
} catch (Exception e) {
fail(e.getLocalizedMessage());
}
}
use of com.zimbra.common.soap.SoapTransport in project zm-mailbox by Zimbra.
the class TestCookieReuse method testForgedNonCSRFAdminPost.
/**
* Verify that we CANNOT make an admin POST request with a non-CSRF-enabled auth token if
* the auth token has an associated CSRF token
*/
@Test
public void testForgedNonCSRFAdminPost() throws Exception {
AuthToken at = AuthProvider.getAdminAuthToken();
at.setCsrfTokenEnabled(false);
CsrfUtil.generateCsrfToken(at.getAccountId(), at.getExpires(), new Random().nextInt() + 1, at);
SoapTransport transport = TestUtil.getAdminSoapTransport();
transport.setAuthToken(at.getEncoded());
Map<String, Object> attrs = null;
CreateAccountRequest request = new CreateAccountRequest(UNAUTHORIZED_USER, "test123", attrs);
try {
transport.invoke(JaxbUtil.jaxbToElement(request));
} catch (ServiceException e) {
Assert.assertEquals("should be catching AUTH EXPIRED here", ServiceException.AUTH_REQUIRED, e.getCode());
return;
}
Assert.fail("should have caught an exception");
}
Aggregations