use of org.apache.directory.api.ldap.model.name.Dn in project directory-ldap-api by apache.
the class EntryChangeControlTest method testEncodeEntryChangeControlLong.
/**
* Test encoding of a EntryChangeControl with a long changeNumber.
*/
@Test
public void testEncodeEntryChangeControlLong() throws Exception {
ByteBuffer bb = ByteBuffer.allocate(0x13);
bb.put(new byte[] { // EntryChangeNotification ::= SEQUENCE {
0x30, // EntryChangeNotification ::= SEQUENCE {
0x11, 0x0A, 0x01, // changeType ENUMERATED {
0x08, // }
0x04, 0x03, 'a', '=', // previousDN LDAPDN OPTIONAL, -- modifyDN ops. only
'b', 0x02, // changeNumber INTEGER OPTIONAL -- if supported
0x07, 0x12, 0x34, 0x56, 0x78, (byte) 0x9a, (byte) 0xbc, (byte) 0xde });
String expected = Strings.dumpBytes(bb.array());
bb.flip();
EntryChangeDecorator decorator = new EntryChangeDecorator(codec);
EntryChange entryChange = (EntryChange) decorator.getDecorated();
entryChange.setChangeType(ChangeType.MODDN);
entryChange.setChangeNumber(5124095576030430L);
entryChange.setPreviousDn(new Dn("a=b"));
bb = decorator.encode(ByteBuffer.allocate(decorator.computeLength()));
String decoded = Strings.dumpBytes(bb.array());
assertEquals(expected, decoded);
}
use of org.apache.directory.api.ldap.model.name.Dn in project directory-ldap-api by apache.
the class LdapResultDsml method toDsml.
/**
* {@inheritDoc}
*/
@Override
public Element toDsml(Element root) {
// RequestID
int requestID = message.getMessageId();
if (requestID > 0) {
root.addAttribute("requestID", Integer.toString(requestID));
}
// Matched Dn
Dn matchedDn = result.getMatchedDn();
if (!Dn.isNullOrEmpty(matchedDn)) {
root.addAttribute("matchedDn", matchedDn.getName());
}
// Controls
ParserUtils.addControls(codec, root, message.getControls().values());
// ResultCode
Element resultCodeElement = root.addElement("resultCode");
resultCodeElement.addAttribute("code", Integer.toString(result.getResultCode().getResultCode()));
resultCodeElement.addAttribute("descr", result.getResultCode().getMessage());
// ErrorMessage
String errorMessage = result.getDiagnosticMessage();
if ((errorMessage != null) && (errorMessage.length() != 0)) {
Element errorMessageElement = root.addElement("errorMessage");
errorMessageElement.addText(errorMessage);
}
// Referrals
Referral referral = result.getReferral();
if (referral != null) {
Collection<String> ldapUrls = referral.getLdapUrls();
if (ldapUrls != null) {
for (String ldapUrl : ldapUrls) {
Element referalElement = root.addElement("referal");
referalElement.addText(ldapUrl);
}
}
}
return root;
}
use of org.apache.directory.api.ldap.model.name.Dn in project directory-ldap-api by apache.
the class BindRequestDsml method toDsml.
/**
* {@inheritDoc}
*/
@Override
public Element toDsml(Element root) {
Element element = super.toDsml(root);
BindRequest request = getDecorated();
// Principal
Dn dn = request.getDn();
if (!Dn.isNullOrEmpty(dn)) {
// A DN has been provided
element.addAttribute("principal", dn.getName());
} else {
// No DN has been provided, let's use the name as a string instead
String name = request.getName();
element.addAttribute("principal", name);
}
return element;
}
use of org.apache.directory.api.ldap.model.name.Dn in project directory-ldap-api by apache.
the class LdifAnonymizer method anonymizeChangeModDn.
/**
* Anonymize a Delete change
*/
private LdifEntry anonymizeChangeModDn(LdifEntry ldifEntry) throws LdapException {
Dn entryDn = ldifEntry.getDn();
// Process the DN
Dn anonymizedDn = anonymizeDn(entryDn);
ldifEntry.setDn(anonymizedDn);
// Anonymize the newRdn if any
String newRdnStr = ldifEntry.getNewRdn();
if (newRdnStr != null) {
Dn newRdn = new Dn(schemaManager, newRdnStr);
Dn anonymizedRdn = anonymizeDn(newRdn);
ldifEntry.setNewRdn(anonymizedRdn.toString());
}
// Anonymize the neSuperior if any
String newSuperiorStr = ldifEntry.getNewSuperior();
if (newSuperiorStr != null) {
Dn newSuperior = new Dn(schemaManager, newSuperiorStr);
Dn anonymizedSuperior = anonymizeDn(newSuperior);
ldifEntry.setNewSuperior(anonymizedSuperior.toString());
}
return ldifEntry;
}
use of org.apache.directory.api.ldap.model.name.Dn in project directory-ldap-api by apache.
the class LdifAnonymizer method anonymizeChangeDelete.
/**
* Anonymize a Delete change
*/
private LdifEntry anonymizeChangeDelete(LdifEntry ldifEntry) throws LdapException {
Dn entryDn = ldifEntry.getDn();
// Process the DN, there is nothing more in the entry
Dn anonymizedDn = anonymizeDn(entryDn);
ldifEntry.setDn(anonymizedDn);
return ldifEntry;
}
Aggregations