📄 schemabroker.java
字号:
package com.ca.directory.jxplorer.broker;
import javax.naming.*;
import javax.naming.directory.*;
import com.ca.directory.jxplorer.*;
//import com.ca.directory.jxplorer.tree.*;
import com.ca.commons.naming.*;
import com.ca.commons.jndi.SchemaOps;
import java.util.*;
import java.util.logging.Logger;
/**
* This wraps the schemaOps searching functionality of a
* JNDIBroker, and makes it work as a DataSource
* so that a SmartTree object can use it to browse the
* schemaOps.
*/
public class SchemaBroker extends Broker
{
JNDIBroker jndiBroker;
SchemaOps schemaOps;
private final static Logger log = Logger.getLogger(SchemaBroker.class.getName());
public SchemaBroker(JNDIBroker jb)
{
registerDirectoryConnection(jb);
}
public void registerDirectoryConnection(JNDIBroker broker)
{
jndiBroker = broker;
schemaOps = jndiBroker.getSchemaOps();
}
/**
* Takes a DXAttributes set representing class schemaOps defs,
* and translates the oids into human friendly strings...
*/
/*
protected Attributes addClassInfo(Attributes classdefs)
{
if ((classdefs instanceof DXAttributes) && ((DXAttributes)classdefs).hasOIDs() == false) // there are no OIDs requiring translation - we must be using ldap strings instead
{
return classdefs;
}
try
{
Attribute must = classdefs.get("MUST"); // get syntax attribute
if (must != null)
{
DXNamingEnumeration musts = new DXNamingEnumeration(must.getAll());
BasicAttribute mustDesc = new BasicAttribute("(MUST-DESC)");
while (musts.hasMore())
mustDesc.add(getAttributeDescription(musts.next().toString()));
classdefs.put(mustDesc);
}
Attribute may = classdefs.get("MAY");
if (may != null)
{
DXNamingEnumeration mays = new DXNamingEnumeration(may.getAll());
BasicAttribute mayDesc = new BasicAttribute("(MAY-DESC)");
while (mays.hasMore())
mayDesc.add(getAttributeDescription(mays.next().toString()));
classdefs.put(mayDesc);
}
return classdefs;
}
catch (NamingException e) { return classdefs; }
catch (NullPointerException e) { return classdefs; }
}
*/
/*
public DataQuery getAttributeDefinition(String attributeoid)
{
return getEntry(new DN("schemaOps="+attributeoid + ",schemaOps=AttributeDefinition"));
}
*/
/**
* Convenience Class; makes a request for the
* passed value, appending 'AttributeDefinition' to the dn.
* @param attributeoid the name of the attribute to get info for
* @return an Attributes object containing the (server
* dependant) available data...
*/
/*
public String getAttributeDescription(String attributeoid)
{
return jndiBroker.getAttributeDescription(attributeoid) ; //+ " (" + attributeoid + ")";
}
*/
/**
* Convenience Class; makes a request for the
* passed syntax definition.
* @param syntaxName the name of the syntax to get info for
* @return an Attributes object containing the (server
* dependant) available data...
*/
/*
public DataQuery getSyntaxDefinition (String syntaxName)
{
if (syntaxName.indexOf('{') > -1)
syntaxName = syntaxName.substring(0, syntaxName.indexOf('{'));
return getEntry(new DN("schemaOps="+syntaxName + ",schemaOps=SyntaxDefinition,cn=schemaOps"));
}
*/
/**
* Convenience Class; makes a request for the
* passed value, appending 'SyntaxDefinition' to the dn.
* Looks for a 'DESC' field in the reTranslates the resulting
* @param syntaxName the name of the syntax to get info for
* @return an Attributes object containing the (server
* dependant) available data...
*/
/*
public String getSyntaxDescription (String syntaxName)
{
try
{
//System.out.println("looking up " + "schemaOps="+syntaxName + ",schemaOps=SyntaxDefinition,cn=schemaOps");
// try hard coded list first, from RFC .
String oidName = null;
oidName = (String)syntaxHash.get(syntaxName); // try quick look up
if (oidName == null) // ... fail to a directory query.
{
Attributes syntaxdefs = getEntry(new DN("schemaOps="+syntaxName + ",schemaOps=SyntaxDefinition,cn=schemaOps")).getEntry();
oidName = syntaxdefs.get("DESC").get().toString();
if (oidName != null)
syntaxHash.put(syntaxName, oidName); // and add it to the hash for later... :-)
}
return oidName;
}
catch (NullPointerException e) { return null; }
catch (NamingException e2) { return null; }
}
*/
/**
* Convenience Class; makes a request for the
* passed value, appending 'ClassDefinition' to the dn.
* @param className the name of the class to get info for
* @return an Attributes object containing the (server
* dependant) available data...
*/
/*
public DataQuery getClassDefinition (String className)
{
return getEntry(new DN("schemaOps="+className + ",schemaOps=ClassDefinition"));
}
*/
/*
protected void loadSyntaxHash()
{
// a quick pick of common syntaxes for Active Directory support
// (and other servers that don't publish syntax descriptions)
// taken from rfc 2252
syntaxHash = new Hashtable(70);
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.1","ACI Item");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.2","Access Point");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.3","Attribute Type Description");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.4","Audio");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.5","Binary");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.6","Bit String");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.7","Boolean");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.8","Certificate");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.9","Certificate List");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.10","Certificate Pair");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.11","Country String");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.12","DN");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.13","Data Quality Syntax");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.14","Delivery Method");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.15","Directory String");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.16","DIT Content Rule Description");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.17","DIT Structure Rule Description");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.18","DL Submit Permission");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.19","DSA Quality Syntax");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.20","DSE Type");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.21","Enhanced Guide");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.22","Facsimile Telephone Number");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.23","Fax");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.24","Generalized Time");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.25","Guide");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.26","IA5 String");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.27","INTEGER");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.28","JPEG");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.54","LDAP Syntax Description");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.56","LDAP Schema Definition");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.57","LDAP Schema Description");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.29","Master And Shadow Access Points");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.30","Matching Rule Description");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.31","Matching Rule Use Description");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.32","Mail Preference");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.33","MHS OR Address");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.55","Modify Rights");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.34","Name And Optional UID");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.35","Name Form Description");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.36","Numeric String");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.37","Object Class Description");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.40","Octet String");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.38","OID");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.39","Other Mailbox");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.41","Postal Address");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.42","Protocol Information");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.43","Presentation Address");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.44","Printable String");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.58","Substring Assertion");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.45","Subtree Specification");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.46","Supplier Information");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.47","Supplier Or Consumer");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.48","Supplier And Consumer");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.49","Supported Algorithm");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.50","Telephone Number");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.51","Teletex Terminal Identifier");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.52","Telex Number");
syntaxHash.put("1.3.6.1.4.1.1466.115.121.1.53","UTC Time");
}
*/
//temp
/*
public static boolean isAttributeBinary(String attID)
{
return false;
}
*/
// public DataSource getDataSource() { return null; } // can't modify schemaOps data...
/**
* Operation is not allowed - sets an exception in the request
*/
public DataQuery doExistsQuery(DataQuery request)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -