├── themes ├── themes.properties └── classic-theme │ ├── icons │ ├── c.gif │ ├── cn.gif │ ├── l.gif │ ├── o.gif │ ├── ou.gif │ ├── alias.gif │ ├── default.gif │ ├── person.gif │ ├── schema.gif │ └── world.gif │ ├── images │ ├── JX.icns │ ├── cut.gif │ ├── new.gif │ ├── url.gif │ ├── JX128.png │ ├── JX16.png │ ├── JX32.png │ ├── JX48.png │ ├── ODlogo.gif │ ├── about.gif │ ├── audio.gif │ ├── blank.gif │ ├── build.gif │ ├── copy.gif │ ├── delete.gif │ ├── find.gif │ ├── goto.gif │ ├── html.gif │ ├── join.gif │ ├── paste.gif │ ├── plus.gif │ ├── print.gif │ ├── rename.gif │ ├── search.gif │ ├── side.png │ ├── ssladd.gif │ ├── stop.gif │ ├── table.gif │ ├── text.gif │ ├── blankRec.gif │ ├── connect.gif │ ├── content.gif │ ├── copy_dn.gif │ ├── explore.gif │ ├── logo_16.gif │ ├── logo_32.gif │ ├── logo_48.gif │ ├── logo_64.gif │ ├── logo_64.png │ ├── refresh.gif │ ├── sslcert.gif │ ├── ssllist.gif │ ├── sslview.gif │ ├── cachePwds.gif │ ├── disconnect.gif │ ├── log_level.gif │ ├── log_method.gif │ ├── look_feel.gif │ ├── refresh_all.gif │ ├── ssldelete.gif │ ├── sslkeycert.gif │ ├── sslpassword.gif │ ├── copy_rollover.gif │ ├── cut_rollover.gif │ ├── logo_32_trans.gif │ ├── new_rollover.gif │ ├── return_attrs.gif │ ├── sslprivatekey.gif │ ├── stop_rollover.gif │ ├── alias_rollover.gif │ ├── connect_rollover.gif │ ├── copy_dn_rollover.gif │ ├── delete_rollover.gif │ ├── paste_rollover.gif │ ├── print_rollover.gif │ ├── refresh_rollover.gif │ ├── rename_rollover.gif │ ├── sslexprivatekey.gif │ └── disconnect_rollover.gif │ ├── htmldocs │ ├── ODlogo.gif │ ├── ODBanner.bmp │ ├── ODBanner.gif │ ├── start_zh_TW.html │ └── start.html │ └── templates │ ├── JXBanner.gif │ ├── JXsplash.gif │ ├── JXsplash.png │ ├── JXAboutTop.gif │ ├── JXAboutBottom.gif │ ├── images │ ├── home.gif │ ├── home2.gif │ ├── main.gif │ ├── main2.gif │ ├── other.gif │ ├── other2.gif │ ├── work.gif │ ├── work2.gif │ ├── JXBanner.gif │ ├── address.gif │ ├── address2.gif │ ├── advanced.gif │ ├── business.gif │ ├── ca_logo.gif │ ├── delivery.gif │ ├── advanced2.gif │ ├── business2.gif │ └── delivery2.gif │ ├── country │ ├── ca_logo.gif │ └── country.html │ ├── schema │ ├── JXBanner.gif │ └── schema.html │ ├── text.html │ ├── simple.html │ ├── person │ ├── other.html │ └── Main.html │ ├── newPilotPerson │ └── address.html │ ├── locality │ ├── address.html │ ├── Main.html │ └── other.html │ └── organization │ ├── address.html │ └── Main.html ├── icons ├── c.gif ├── cn.gif ├── l.gif ├── o.gif ├── ou.gif ├── alias.gif ├── world.gif ├── default.gif ├── person.gif └── schema.gif ├── jars ├── help.jar ├── jhall.jar ├── junit.jar ├── jxplorer.jar ├── jxworkbench.jar └── testprovider.jar ├── jxplorer.ico ├── images ├── JX.icns ├── JX16.png ├── JX32.png ├── JX48.png ├── copy.gif ├── cut.gif ├── find.gif ├── goto.gif ├── html.gif ├── join.gif ├── new.gif ├── plus.gif ├── side.png ├── stop.gif ├── text.gif ├── url.gif ├── JX128.png ├── ODlogo.gif ├── about.gif ├── audio.gif ├── blank.gif ├── bloop.png ├── build.gif ├── connect.gif ├── content.gif ├── copy_dn.gif ├── delete.gif ├── explore.gif ├── logo_16.gif ├── logo_32.gif ├── logo_48.gif ├── logo_64.gif ├── logo_64.png ├── paste.gif ├── print.gif ├── refresh.gif ├── rename.gif ├── search.gif ├── ssladd.gif ├── sslcert.gif ├── ssllist.gif ├── sslview.gif ├── table.gif ├── blankRec.gif ├── cachePwds.gif ├── log_level.gif ├── look_feel.gif ├── ssldelete.gif ├── cut_rollover.gif ├── disconnect.gif ├── log_method.gif ├── new_rollover.gif ├── new_window.gif ├── refresh_all.gif ├── return_attrs.gif ├── sslkeycert.gif ├── sslpassword.gif ├── alias_rollover.gif ├── copy_rollover.gif ├── logo_32_trans.gif ├── paste_rollover.gif ├── print_rollover.gif ├── sslprivatekey.gif ├── stop_rollover.gif ├── connect_rollover.gif ├── copy_dn_rollover.gif ├── delete_rollover.gif ├── refresh_rollover.gif ├── rename_rollover.gif ├── sslexprivatekey.gif └── disconnect_rollover.gif ├── language ├── test │ └── fnord.txt ├── test_append ├── JX_fr_2012-04-24.tar.gz ├── update_languages.sh └── README_LANGUAGE.txt ├── security ├── cacerts ├── clientcerts └── README_SECURITY.TXT ├── htmldocs ├── ODlogo.gif ├── banner.png ├── ODBanner.bmp ├── jxw_reports.png ├── jxworkbench.png ├── jxworkbench2.png ├── start_zh_TW.html └── start.html ├── templates ├── JXBanner.gif ├── JXSplash.docx ├── JXWsplash.png ├── JXsplash.png ├── JXsplash.tiff ├── logoicon.png ├── JXAboutTop.gif ├── images │ ├── home.gif │ ├── main.gif │ ├── work.gif │ ├── address.gif │ ├── ca_logo.gif │ ├── home2.gif │ ├── main2.gif │ ├── other.gif │ ├── other2.gif │ ├── work2.gif │ ├── JXBanner.gif │ ├── address2.gif │ ├── advanced.gif │ ├── advanced2.gif │ ├── business.gif │ ├── business2.gif │ ├── delivery.gif │ └── delivery2.gif ├── jxworkbench.png ├── JXAboutBottom.gif ├── JXsplash copy.png ├── JXsplash.gif.notused ├── country │ ├── ca_logo.gif │ └── country.html ├── schema │ ├── JXBanner.gif │ └── schema.html ├── JXsplash_original.png ├── text.html ├── simple.html ├── person │ ├── other.html │ └── Main.html ├── newPilotPerson │ └── address.html ├── locality │ ├── address.html │ ├── Main.html │ └── other.html ├── organization │ ├── address.html │ └── Main.html ├── organizationalUnit │ ├── address.html │ └── Main.html └── organizationalPerson │ └── address.html ├── security.default ├── cacerts ├── clientcerts └── README_SECURITY.TXT ├── TODO.TXT ├── JXplorer_Administrator_Guide.doc ├── JXplorer_Administrator_Guide.pdf ├── manifest.txt ├── gssapi.conf ├── tcpinterceptor_8000_8080.bat ├── src ├── com │ ├── ca │ │ ├── commons │ │ │ ├── naming │ │ │ │ ├── LdifModifyType.java │ │ │ │ ├── LdifEntryType.java │ │ │ │ ├── NamingTestSuite.java │ │ │ │ ├── NameUtilityTest.java │ │ │ │ ├── LdifFileChooser.java │ │ │ │ └── LdifStreamReader.java │ │ │ ├── security │ │ │ │ ├── cert │ │ │ │ │ └── extensions │ │ │ │ │ │ ├── V3Extension.java │ │ │ │ │ │ ├── SubjectKeyIdentifier.java │ │ │ │ │ │ ├── SubjectAltName.java │ │ │ │ │ │ ├── PolicyMappings.java │ │ │ │ │ │ ├── PolicyConstraints.java │ │ │ │ │ │ ├── BasicConstraints.java │ │ │ │ │ │ ├── ExtendedKeyUsage.java │ │ │ │ │ │ ├── KeyUsage.java │ │ │ │ │ │ ├── PrivateKeyUsagePeriod.java │ │ │ │ │ │ ├── AuthorityInfoAccess.java │ │ │ │ │ │ ├── NameConstraints.java │ │ │ │ │ │ └── NetscapeCertType.java │ │ │ │ └── asn1 │ │ │ │ │ └── ASN1Exception.java │ │ │ ├── cbutil │ │ │ │ ├── CBBase64EncodingException.java │ │ │ │ ├── CBViewport.java │ │ │ │ ├── CBSingleSelectionModel.java │ │ │ │ ├── CBFileFilter.java │ │ │ │ ├── CBButton.java │ │ │ │ ├── Theme.java │ │ │ │ └── CBTableMap.java │ │ │ └── jndi │ │ │ │ ├── JndiAction.java │ │ │ │ ├── JndiTestSuite.java │ │ │ │ ├── BasicOpsTest.java │ │ │ │ ├── JNDIOpsTest.java │ │ │ │ └── JndiTools.java │ │ ├── directory │ │ │ ├── BuildNumber.java │ │ │ └── jxplorer │ │ │ │ ├── BatchJob.java │ │ │ │ ├── editor │ │ │ │ ├── ocsprsaprivatekeyeditor.java │ │ │ │ ├── editablebinary.java │ │ │ │ ├── editablestring.java │ │ │ │ ├── odmovieavieditor.java │ │ │ │ ├── odsoundwaveditor.java │ │ │ │ ├── odmusicmideditor.java │ │ │ │ ├── oddocumentdoceditor.java │ │ │ │ ├── odspreadsheetxlseditor.java │ │ │ │ ├── abstractstringeditor.java │ │ │ │ ├── abstractbinaryeditor.java │ │ │ │ ├── cacertificateeditor.java │ │ │ │ ├── usercertificateeditor.java │ │ │ │ └── largestringeditor.java │ │ │ │ ├── event │ │ │ │ ├── JXplorerEventGenerator.java │ │ │ │ ├── JXplorerListener.java │ │ │ │ └── JXplorerEvent.java │ │ │ │ ├── DataListener.java │ │ │ │ ├── viewer │ │ │ │ └── tableviewer │ │ │ │ │ ├── TableViewerTestSuite.java │ │ │ │ │ ├── AttributeType.java │ │ │ │ │ └── AttributeNameAndType.java │ │ │ │ ├── SwingDataListener.java │ │ │ │ ├── JXplorerTestSuite.java │ │ │ │ ├── DataSink.java │ │ │ │ └── search │ │ │ │ ├── TextFilterPanel.java │ │ │ │ └── SearchExecute.java │ │ └── jndiproviders │ │ │ └── dsml │ │ │ ├── DsmlTestSuite.java │ │ │ ├── DsmlParser.java │ │ │ └── DsmlCtxFactory.java │ └── pegacat │ │ └── testprovider │ │ ├── TestProviderTestSuite.java │ │ ├── package.html │ │ └── TestProviderParser.java ├── TODO.TXT └── org │ └── apache │ └── axis │ └── utils │ └── tcpinterceptor.properties ├── jxplorer.bat ├── csvconfig.txt.default ├── log4j.xml ├── RELEASE.TXT ├── tcpmon.sh └── licence.txt /themes/themes.properties: -------------------------------------------------------------------------------- 1 | settings.theme=classic-theme -------------------------------------------------------------------------------- /icons/c.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/icons/c.gif -------------------------------------------------------------------------------- /icons/cn.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/icons/cn.gif -------------------------------------------------------------------------------- /icons/l.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/icons/l.gif -------------------------------------------------------------------------------- /icons/o.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/icons/o.gif -------------------------------------------------------------------------------- /icons/ou.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/icons/ou.gif -------------------------------------------------------------------------------- /jars/help.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/jars/help.jar -------------------------------------------------------------------------------- /jxplorer.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/jxplorer.ico -------------------------------------------------------------------------------- /icons/alias.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/icons/alias.gif -------------------------------------------------------------------------------- /icons/world.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/icons/world.gif -------------------------------------------------------------------------------- /images/JX.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/JX.icns -------------------------------------------------------------------------------- /images/JX16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/JX16.png -------------------------------------------------------------------------------- /images/JX32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/JX32.png -------------------------------------------------------------------------------- /images/JX48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/JX48.png -------------------------------------------------------------------------------- /images/copy.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/copy.gif -------------------------------------------------------------------------------- /images/cut.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/cut.gif -------------------------------------------------------------------------------- /images/find.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/find.gif -------------------------------------------------------------------------------- /images/goto.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/goto.gif -------------------------------------------------------------------------------- /images/html.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/html.gif -------------------------------------------------------------------------------- /images/join.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/join.gif -------------------------------------------------------------------------------- /images/new.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/new.gif -------------------------------------------------------------------------------- /images/plus.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/plus.gif -------------------------------------------------------------------------------- /images/side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/side.png -------------------------------------------------------------------------------- /images/stop.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/stop.gif -------------------------------------------------------------------------------- /images/text.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/text.gif -------------------------------------------------------------------------------- /images/url.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/url.gif -------------------------------------------------------------------------------- /jars/jhall.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/jars/jhall.jar -------------------------------------------------------------------------------- /jars/junit.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/jars/junit.jar -------------------------------------------------------------------------------- /icons/default.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/icons/default.gif -------------------------------------------------------------------------------- /icons/person.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/icons/person.gif -------------------------------------------------------------------------------- /icons/schema.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/icons/schema.gif -------------------------------------------------------------------------------- /images/JX128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/JX128.png -------------------------------------------------------------------------------- /images/ODlogo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/ODlogo.gif -------------------------------------------------------------------------------- /images/about.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/about.gif -------------------------------------------------------------------------------- /images/audio.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/audio.gif -------------------------------------------------------------------------------- /images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/blank.gif -------------------------------------------------------------------------------- /images/bloop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/bloop.png -------------------------------------------------------------------------------- /images/build.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/build.gif -------------------------------------------------------------------------------- /images/connect.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/connect.gif -------------------------------------------------------------------------------- /images/content.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/content.gif -------------------------------------------------------------------------------- /images/copy_dn.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/copy_dn.gif -------------------------------------------------------------------------------- /images/delete.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/delete.gif -------------------------------------------------------------------------------- /images/explore.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/explore.gif -------------------------------------------------------------------------------- /images/logo_16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/logo_16.gif -------------------------------------------------------------------------------- /images/logo_32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/logo_32.gif -------------------------------------------------------------------------------- /images/logo_48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/logo_48.gif -------------------------------------------------------------------------------- /images/logo_64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/logo_64.gif -------------------------------------------------------------------------------- /images/logo_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/logo_64.png -------------------------------------------------------------------------------- /images/paste.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/paste.gif -------------------------------------------------------------------------------- /images/print.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/print.gif -------------------------------------------------------------------------------- /images/refresh.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/refresh.gif -------------------------------------------------------------------------------- /images/rename.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/rename.gif -------------------------------------------------------------------------------- /images/search.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/search.gif -------------------------------------------------------------------------------- /images/ssladd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/ssladd.gif -------------------------------------------------------------------------------- /images/sslcert.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/sslcert.gif -------------------------------------------------------------------------------- /images/ssllist.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/ssllist.gif -------------------------------------------------------------------------------- /images/sslview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/sslview.gif -------------------------------------------------------------------------------- /images/table.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/table.gif -------------------------------------------------------------------------------- /jars/jxplorer.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/jars/jxplorer.jar -------------------------------------------------------------------------------- /language/test/fnord.txt: -------------------------------------------------------------------------------- 1 | Writing Fnord... 2 | 3 | #Strings From New Version: 4 | 5 | -------------------------------------------------------------------------------- /security/cacerts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/security/cacerts -------------------------------------------------------------------------------- /htmldocs/ODlogo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/htmldocs/ODlogo.gif -------------------------------------------------------------------------------- /htmldocs/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/htmldocs/banner.png -------------------------------------------------------------------------------- /images/blankRec.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/blankRec.gif -------------------------------------------------------------------------------- /images/cachePwds.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/cachePwds.gif -------------------------------------------------------------------------------- /images/log_level.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/log_level.gif -------------------------------------------------------------------------------- /images/look_feel.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/look_feel.gif -------------------------------------------------------------------------------- /images/ssldelete.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/ssldelete.gif -------------------------------------------------------------------------------- /jars/jxworkbench.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/jars/jxworkbench.jar -------------------------------------------------------------------------------- /security/clientcerts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/security/clientcerts -------------------------------------------------------------------------------- /htmldocs/ODBanner.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/htmldocs/ODBanner.bmp -------------------------------------------------------------------------------- /images/cut_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/cut_rollover.gif -------------------------------------------------------------------------------- /images/disconnect.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/disconnect.gif -------------------------------------------------------------------------------- /images/log_method.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/log_method.gif -------------------------------------------------------------------------------- /images/new_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/new_rollover.gif -------------------------------------------------------------------------------- /images/new_window.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/new_window.gif -------------------------------------------------------------------------------- /images/refresh_all.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/refresh_all.gif -------------------------------------------------------------------------------- /images/return_attrs.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/return_attrs.gif -------------------------------------------------------------------------------- /images/sslkeycert.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/sslkeycert.gif -------------------------------------------------------------------------------- /images/sslpassword.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/sslpassword.gif -------------------------------------------------------------------------------- /jars/testprovider.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/jars/testprovider.jar -------------------------------------------------------------------------------- /templates/JXBanner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/JXBanner.gif -------------------------------------------------------------------------------- /templates/JXSplash.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/JXSplash.docx -------------------------------------------------------------------------------- /templates/JXWsplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/JXWsplash.png -------------------------------------------------------------------------------- /templates/JXsplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/JXsplash.png -------------------------------------------------------------------------------- /templates/JXsplash.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/JXsplash.tiff -------------------------------------------------------------------------------- /templates/logoicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/logoicon.png -------------------------------------------------------------------------------- /htmldocs/jxw_reports.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/htmldocs/jxw_reports.png -------------------------------------------------------------------------------- /htmldocs/jxworkbench.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/htmldocs/jxworkbench.png -------------------------------------------------------------------------------- /htmldocs/jxworkbench2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/htmldocs/jxworkbench2.png -------------------------------------------------------------------------------- /images/alias_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/alias_rollover.gif -------------------------------------------------------------------------------- /images/copy_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/copy_rollover.gif -------------------------------------------------------------------------------- /images/logo_32_trans.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/logo_32_trans.gif -------------------------------------------------------------------------------- /images/paste_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/paste_rollover.gif -------------------------------------------------------------------------------- /images/print_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/print_rollover.gif -------------------------------------------------------------------------------- /images/sslprivatekey.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/sslprivatekey.gif -------------------------------------------------------------------------------- /images/stop_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/stop_rollover.gif -------------------------------------------------------------------------------- /security.default/cacerts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/security.default/cacerts -------------------------------------------------------------------------------- /templates/JXAboutTop.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/JXAboutTop.gif -------------------------------------------------------------------------------- /templates/images/home.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/images/home.gif -------------------------------------------------------------------------------- /templates/images/main.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/images/main.gif -------------------------------------------------------------------------------- /templates/images/work.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/images/work.gif -------------------------------------------------------------------------------- /templates/jxworkbench.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/jxworkbench.png -------------------------------------------------------------------------------- /images/connect_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/connect_rollover.gif -------------------------------------------------------------------------------- /images/copy_dn_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/copy_dn_rollover.gif -------------------------------------------------------------------------------- /images/delete_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/delete_rollover.gif -------------------------------------------------------------------------------- /images/refresh_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/refresh_rollover.gif -------------------------------------------------------------------------------- /images/rename_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/rename_rollover.gif -------------------------------------------------------------------------------- /images/sslexprivatekey.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/sslexprivatekey.gif -------------------------------------------------------------------------------- /language/test_append: -------------------------------------------------------------------------------- 1 | # new stuff 2 | bloop = blah 3 | thnorp = blah 4 | fnord = blah 5 | snorkle = blah 6 | -------------------------------------------------------------------------------- /security.default/clientcerts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/security.default/clientcerts -------------------------------------------------------------------------------- /templates/JXAboutBottom.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/JXAboutBottom.gif -------------------------------------------------------------------------------- /templates/JXsplash copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/JXsplash copy.png -------------------------------------------------------------------------------- /templates/images/address.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/images/address.gif -------------------------------------------------------------------------------- /templates/images/ca_logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/images/ca_logo.gif -------------------------------------------------------------------------------- /templates/images/home2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/images/home2.gif -------------------------------------------------------------------------------- /templates/images/main2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/images/main2.gif -------------------------------------------------------------------------------- /templates/images/other.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/images/other.gif -------------------------------------------------------------------------------- /templates/images/other2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/images/other2.gif -------------------------------------------------------------------------------- /templates/images/work2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/images/work2.gif -------------------------------------------------------------------------------- /TODO.TXT: -------------------------------------------------------------------------------- 1 | - Themes 2 | - Move quick search to right 3 | - Create tango icon theme 4 | - Update htmltemplates -------------------------------------------------------------------------------- /images/disconnect_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/images/disconnect_rollover.gif -------------------------------------------------------------------------------- /templates/JXsplash.gif.notused: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/JXsplash.gif.notused -------------------------------------------------------------------------------- /templates/country/ca_logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/country/ca_logo.gif -------------------------------------------------------------------------------- /templates/images/JXBanner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/images/JXBanner.gif -------------------------------------------------------------------------------- /templates/images/address2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/images/address2.gif -------------------------------------------------------------------------------- /templates/images/advanced.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/images/advanced.gif -------------------------------------------------------------------------------- /templates/images/advanced2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/images/advanced2.gif -------------------------------------------------------------------------------- /templates/images/business.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/images/business.gif -------------------------------------------------------------------------------- /templates/images/business2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/images/business2.gif -------------------------------------------------------------------------------- /templates/images/delivery.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/images/delivery.gif -------------------------------------------------------------------------------- /templates/images/delivery2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/images/delivery2.gif -------------------------------------------------------------------------------- /templates/schema/JXBanner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/schema/JXBanner.gif -------------------------------------------------------------------------------- /JXplorer_Administrator_Guide.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/JXplorer_Administrator_Guide.doc -------------------------------------------------------------------------------- /JXplorer_Administrator_Guide.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/JXplorer_Administrator_Guide.pdf -------------------------------------------------------------------------------- /language/JX_fr_2012-04-24.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/language/JX_fr_2012-04-24.tar.gz -------------------------------------------------------------------------------- /templates/JXsplash_original.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/templates/JXsplash_original.png -------------------------------------------------------------------------------- /themes/classic-theme/icons/c.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/icons/c.gif -------------------------------------------------------------------------------- /themes/classic-theme/icons/cn.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/icons/cn.gif -------------------------------------------------------------------------------- /themes/classic-theme/icons/l.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/icons/l.gif -------------------------------------------------------------------------------- /themes/classic-theme/icons/o.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/icons/o.gif -------------------------------------------------------------------------------- /themes/classic-theme/icons/ou.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/icons/ou.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/JX.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/JX.icns -------------------------------------------------------------------------------- /themes/classic-theme/images/cut.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/cut.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/new.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/new.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/url.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/url.gif -------------------------------------------------------------------------------- /themes/classic-theme/icons/alias.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/icons/alias.gif -------------------------------------------------------------------------------- /themes/classic-theme/icons/default.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/icons/default.gif -------------------------------------------------------------------------------- /themes/classic-theme/icons/person.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/icons/person.gif -------------------------------------------------------------------------------- /themes/classic-theme/icons/schema.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/icons/schema.gif -------------------------------------------------------------------------------- /themes/classic-theme/icons/world.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/icons/world.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/JX128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/JX128.png -------------------------------------------------------------------------------- /themes/classic-theme/images/JX16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/JX16.png -------------------------------------------------------------------------------- /themes/classic-theme/images/JX32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/JX32.png -------------------------------------------------------------------------------- /themes/classic-theme/images/JX48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/JX48.png -------------------------------------------------------------------------------- /themes/classic-theme/images/ODlogo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/ODlogo.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/about.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/about.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/audio.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/audio.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/blank.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/build.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/build.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/copy.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/copy.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/delete.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/delete.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/find.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/find.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/goto.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/goto.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/html.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/html.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/join.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/join.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/paste.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/paste.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/plus.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/plus.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/print.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/print.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/rename.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/rename.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/search.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/search.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/side.png -------------------------------------------------------------------------------- /themes/classic-theme/images/ssladd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/ssladd.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/stop.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/stop.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/table.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/table.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/text.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/text.gif -------------------------------------------------------------------------------- /themes/classic-theme/htmldocs/ODlogo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/htmldocs/ODlogo.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/blankRec.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/blankRec.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/connect.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/connect.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/content.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/content.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/copy_dn.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/copy_dn.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/explore.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/explore.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/logo_16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/logo_16.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/logo_32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/logo_32.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/logo_48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/logo_48.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/logo_64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/logo_64.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/logo_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/logo_64.png -------------------------------------------------------------------------------- /themes/classic-theme/images/refresh.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/refresh.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/sslcert.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/sslcert.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/ssllist.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/ssllist.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/sslview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/sslview.gif -------------------------------------------------------------------------------- /themes/classic-theme/htmldocs/ODBanner.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/htmldocs/ODBanner.bmp -------------------------------------------------------------------------------- /themes/classic-theme/htmldocs/ODBanner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/htmldocs/ODBanner.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/cachePwds.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/cachePwds.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/disconnect.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/disconnect.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/log_level.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/log_level.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/log_method.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/log_method.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/look_feel.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/look_feel.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/refresh_all.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/refresh_all.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/ssldelete.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/ssldelete.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/sslkeycert.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/sslkeycert.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/sslpassword.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/sslpassword.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/JXBanner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/JXBanner.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/JXsplash.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/JXsplash.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/JXsplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/JXsplash.png -------------------------------------------------------------------------------- /manifest.txt: -------------------------------------------------------------------------------- 1 | Class-Path: jars/jxplorer.jar jars/help.jar jars/jhall.jar jars/junit.jar 2 | Main-Class: com.ca.directory.jxplorer.JXplorer 3 | -------------------------------------------------------------------------------- /themes/classic-theme/images/copy_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/copy_rollover.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/cut_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/cut_rollover.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/logo_32_trans.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/logo_32_trans.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/new_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/new_rollover.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/return_attrs.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/return_attrs.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/sslprivatekey.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/sslprivatekey.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/stop_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/stop_rollover.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/JXAboutTop.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/JXAboutTop.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/alias_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/alias_rollover.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/connect_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/connect_rollover.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/copy_dn_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/copy_dn_rollover.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/delete_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/delete_rollover.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/paste_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/paste_rollover.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/print_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/print_rollover.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/refresh_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/refresh_rollover.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/rename_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/rename_rollover.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/sslexprivatekey.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/sslexprivatekey.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/JXAboutBottom.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/JXAboutBottom.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/images/home.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/images/home.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/images/home2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/images/home2.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/images/main.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/images/main.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/images/main2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/images/main2.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/images/other.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/images/other.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/images/other2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/images/other2.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/images/work.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/images/work.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/images/work2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/images/work2.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/country/ca_logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/country/ca_logo.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/images/JXBanner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/images/JXBanner.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/images/address.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/images/address.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/images/address2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/images/address2.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/images/advanced.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/images/advanced.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/images/business.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/images/business.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/images/ca_logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/images/ca_logo.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/images/delivery.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/images/delivery.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/schema/JXBanner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/schema/JXBanner.gif -------------------------------------------------------------------------------- /themes/classic-theme/images/disconnect_rollover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/images/disconnect_rollover.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/images/advanced2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/images/advanced2.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/images/business2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/images/business2.gif -------------------------------------------------------------------------------- /themes/classic-theme/templates/images/delivery2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pegacat/jxplorer/HEAD/themes/classic-theme/templates/images/delivery2.gif -------------------------------------------------------------------------------- /gssapi.conf: -------------------------------------------------------------------------------- 1 | com.ca.commons.jndi.JNDIOps { 2 | com.sun.security.auth.module.Krb5LoginModule required client=TRUE 3 | useTicketCache=TRUE; 4 | }; -------------------------------------------------------------------------------- /tcpinterceptor_8000_8080.bat: -------------------------------------------------------------------------------- 1 | rem hardwired to run tcpinterceptor listening on port 8000, and forwarding to localhost:8080 2 | java -classpath .\classes org.apache.axis.utils.TCPInterceptor 8000 localhost 8080 3 | -------------------------------------------------------------------------------- /templates/text.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Plain Text View 4 | 5 | 6 |
 7 |       
 8 |     
9 | 10 | -------------------------------------------------------------------------------- /src/com/ca/commons/naming/LdifModifyType.java: -------------------------------------------------------------------------------- 1 | package com.ca.commons.naming; 2 | 3 | public enum LdifModifyType 4 | { 5 | add, delete, replace, test; // note; we use the string values in print outs, so don't change capitalisation..! 6 | } 7 | -------------------------------------------------------------------------------- /themes/classic-theme/templates/text.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Plain Text View 4 | 5 | 6 |
 7 |       
 8 |     
9 | 10 | -------------------------------------------------------------------------------- /jxplorer.bat: -------------------------------------------------------------------------------- 1 | rem # This version uses wild cards and is only suitable for Java 1.6 or better 2 | rem # (use jxplorer_old_jvm.bat for previous versions) 3 | 4 | java -classpath ".;jars/*;jasper/lib/*" -Dfile.encoding=utf-8 %JXOPTS% com.ca.directory.jxplorer.JXplorer %* 5 | 6 |  -------------------------------------------------------------------------------- /htmldocs/start_zh_TW.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | DXplorer Java Star Screen 4 | 5 | 6 |
7 |

歡迎使用 JXplorer Java

8 | 這個面板將顯示你的目錄瀏灠及搜尋的結果.

9 | 如果你需要任何的協助, 使用在上面選單工具列的說明選項. 10 | 11 | 12 | -------------------------------------------------------------------------------- /themes/classic-theme/htmldocs/start_zh_TW.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | DXplorer Java Star Screen 4 | 5 | 6 |

7 |

歡迎使用 JXplorer Java

8 | 這個面板將顯示你的目錄瀏灠及搜尋的結果.

9 | 如果你需要任何的協助, 使用在上面選單工具列的說明選項. 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/com/ca/commons/security/cert/extensions/V3Extension.java: -------------------------------------------------------------------------------- 1 | 2 | package com.ca.commons.security.cert.extensions; 3 | 4 | import com.ca.commons.security.asn1.*; 5 | 6 | /** 7 | *

 8 |  *
 9 |  * 
10 | * 11 | * @author vbui 12 | */ 13 | public interface V3Extension 14 | { 15 | public abstract void init(ASN1Object asn1object) throws Exception; 16 | } 17 | 18 | -------------------------------------------------------------------------------- /templates/schema/schema.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Schema List: displays the schema 4 | 5 | 6 | 7 |
8 | 9 |

Schema List: displays the schema...

10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/com/ca/directory/BuildNumber.java: -------------------------------------------------------------------------------- 1 | 2 | package com.ca.directory; 3 | // automatically generated by ant build.xml file. 4 | //THIS FILE MUST NOT BE ADDED TO svn OR THE LIVE MAKE SYSTEM 5 | 6 | public class BuildNumber 7 | { 8 | public static String value = "JXplorer (build JXv3.3.1.2 2016-06-05 12:05 AEST)"; 9 | } 10 | -------------------------------------------------------------------------------- /src/com/ca/commons/naming/LdifEntryType.java: -------------------------------------------------------------------------------- 1 | package com.ca.commons.naming; 2 | 3 | /** 4 | * Enumerates the types of Ldif Change entries; e.g. 5 | *
 6 |  * changetype: add
 7 |  * changetype: modify
 8 |  * changetype: delete
 9 |  * changetype: modrdn
10 |  * changetype: moddn
11 |  * 
12 | */ 13 | public enum LdifEntryType 14 | { 15 | normal, add, modify, delete, modrdn, moddn; 16 | } 17 | -------------------------------------------------------------------------------- /themes/classic-theme/templates/schema/schema.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Schema List: displays the schema 4 | 5 | 6 | 7 |
8 | 9 |

Schema List: displays the schema...

10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/classic-theme/htmldocs/start.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | DXplorer Java Star Screen 4 | 5 | 6 |
7 |

Welcome to JXplorer Java

8 | This panel will display the results of your directory 9 | browsing and searches.

10 | If you need any assistance, use the help option on the menu bar above. 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/BatchJob.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer; 2 | 3 | /** 4 | * An interface for different batch jobs, to be passed an array of strings 5 | * (usually from the JXplorer main method) and a reference to the 6 | * core JXplorer object. 7 | * 8 | * (c) Chris Betts: JXplorer Project 9 | */ 10 | public interface BatchJob 11 | { 12 | public void execute(JXplorer jx, String[] args); 13 | } 14 | -------------------------------------------------------------------------------- /templates/simple.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Simple view: displays all attributes. 4 | 5 | 6 | 7 |

8 | 9 |

Simple view: displaying all attributes...

10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/classic-theme/templates/simple.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Simple view: displays all attributes. 4 | 5 | 6 | 7 |
8 | 9 |

Simple view: displaying all attributes...

10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/com/ca/commons/cbutil/CBBase64EncodingException.java: -------------------------------------------------------------------------------- 1 | package com.ca.commons.cbutil; 2 | 3 | /** 4 | * This code lovingly written by Chris. 5 | */ 6 | public class CBBase64EncodingException extends Exception 7 | { 8 | 9 | public CBBase64EncodingException(String msg) 10 | { 11 | super(msg); 12 | } 13 | 14 | public CBBase64EncodingException(String msg, Exception e) 15 | { 16 | super(msg); 17 | initCause(e); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/editor/ocsprsaprivatekeyeditor.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer.editor; 2 | 3 | import java.awt.*; 4 | import java.awt.event.*; 5 | import javax.swing.*; 6 | import javax.swing.event.*; 7 | 8 | 9 | 10 | public class ocsprsaprivatekeyeditor extends basicbinaryeditor 11 | { 12 | public ocsprsaprivatekeyeditor(Frame owner) 13 | { 14 | super(owner); 15 | // your special purpose code here... 16 | } 17 | // ... and here 18 | } -------------------------------------------------------------------------------- /security/README_SECURITY.TXT: -------------------------------------------------------------------------------- 1 | These demo keystore are in Sun's 'jks' java keystore format. 2 | 3 | cacerts - the trusted certificates of directories and certificate authorities (e.g. Verisign etc.) used by JXplorer to establish server-authenticated SSL. The password is the default Sun password 'passphrase'. 4 | 5 | clientcerts - the clients own certificates and private keys. Importing private keys is quite tricky - refer to the sun doco (you can try importing pkcs#8, but it doesn't work reliably). The password is the default Sun password 'changeit'. -------------------------------------------------------------------------------- /security.default/README_SECURITY.TXT: -------------------------------------------------------------------------------- 1 | These demo keystore are in Sun's 'jks' java keystore format. 2 | 3 | cacerts - the trusted certificates of directories and certificate authorities (e.g. Verisign etc.) used by JXplorer to establish server-authenticated SSL. The password is the default Sun password 'passphrase'. 4 | 5 | clientcerts - the clients own certificates and private keys. Importing private keys is quite tricky - refer to the sun doco (you can try importing pkcs#8, but it doesn't work reliably). The password is the default Sun password 'changeit'. -------------------------------------------------------------------------------- /templates/country/country.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | First Template 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 |
 

16 |

Country Attribute Data...

17 | 18 |

19 |

22 | 23 | 24 | -------------------------------------------------------------------------------- /themes/classic-theme/templates/country/country.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | First Template 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 |
 

16 |

Country Attribute Data...

17 | 18 |

19 |

22 | 23 | 24 | -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/event/JXplorerEventGenerator.java: -------------------------------------------------------------------------------- 1 | 2 | package com.ca.directory.jxplorer.event; 3 | 4 | 5 | /** 6 | * This interface defines the functionality 7 | * required to fire a JXplorer event. JXplorer events 8 | * are used to communicate to programs that are using 9 | * JXplorer as an embedded Swing component. 10 | * 11 | * @see com.ca.directory.jxplorer.event.JXplorerEvent 12 | */ 13 | 14 | public interface JXplorerEventGenerator 15 | { 16 | /** 17 | * The method used to fire a JXplorerEvent 18 | */ 19 | 20 | public void fireJXplorerEvent(JXplorerEvent e); 21 | } -------------------------------------------------------------------------------- /src/com/ca/commons/security/asn1/ASN1Exception.java: -------------------------------------------------------------------------------- 1 | 2 | package com.ca.commons.security.asn1; 3 | 4 | /** 5 | * The exception will be thrown when some error occurs during 6 | * the creation/coding of the ASN1Objects. 7 | * 8 | * @author who 9 | */ 10 | public class ASN1Exception extends Exception implements java.io.Serializable 11 | { 12 | 13 | /** 14 | * No description message. 15 | */ 16 | public ASN1Exception() 17 | { 18 | super(); 19 | } 20 | 21 | /** 22 | * Gives a description message to the exception. 23 | */ 24 | public ASN1Exception(String msg) 25 | { 26 | super(msg); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/editor/editablebinary.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer.editor; 2 | 3 | /** 4 | * This interface defines the functionality required of 5 | * an object that can be edited by an AbstractBinaryEditor 6 | * and its ilk. 7 | */ 8 | public interface editablebinary 9 | { 10 | /** 11 | * sets the value of the editable object. 12 | * @param bytes an array of bytes that may be edited later. 13 | */ 14 | public void setValue(byte[] bytes); 15 | 16 | /** 17 | * gets the value of the edited object. 18 | * @return the array of edited bytes. 19 | */ 20 | public byte[] getValue(); 21 | } -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/DataListener.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer; 2 | 3 | /** 4 | * This interface handles 5 | * 6 | * There are two main ways to retrieve data from a DataQuery 7 | * in a thread friendly manner. The first is to poll the 8 | * 'ready()' method until it returns true. The second method 9 | * is to register a data listener that will be notified when 10 | * the result is complete. 11 | */ 12 | 13 | //XXX is this correct, or do we want a 'DataEvent' that wraps the 14 | // DataQuery in some way, maybe providing a 'source'? 15 | 16 | public interface DataListener 17 | { 18 | public void dataReady(com.ca.directory.jxplorer.broker.DataQuery result); 19 | } -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/editor/editablestring.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer.editor; 2 | 3 | /** 4 | * This interface defines the functionality required of 5 | * an object that can be edited by an AbstractEditableString. 6 | * @author Trudi 7 | */ 8 | 9 | public interface editablestring 10 | { 11 | /** 12 | * te: sets the value of the editable object. 13 | * @param attString that may be edited later. 14 | * 15 | */ 16 | public void setStringValue(String attString); 17 | 18 | /** 19 | * te: gets the value of the edited object. 20 | * @return the edited String. 21 | * 22 | */ 23 | public String getStringValue(); 24 | } -------------------------------------------------------------------------------- /csvconfig.txt.default: -------------------------------------------------------------------------------- 1 | #Generated Property List /Users/chrisbetts/projects/jxplorer/csvconfig.txt 2 | 3 | #Thu Apr 05 16:56:14 EST 2012 4 | default=standard 5 | excel.0.0=true 6 | excel.0.1=false 7 | excel.1.1=, 8 | excel.1.3=" 9 | excel.1.5=" 10 | excel.2.0=true 11 | excel.2.1=false 12 | excel.2.3=; 13 | excel.3.0=true 14 | excel.3.1=false 15 | excel.3.2=false 16 | number_of_templates=2 17 | standard.0.0=false 18 | standard.0.1=true 19 | standard.0.3=" 20 | standard.0.5=\\ 21 | standard.1.0=false 22 | standard.1.1=, 23 | standard.1.2=; 24 | standard.1.3=" 25 | standard.1.5=\\ 26 | standard.2.0=true 27 | standard.2.1=false 28 | standard.2.2=; 29 | standard.2.3=; 30 | standard.3.0=true 31 | standard.3.1=false 32 | template_name0=standard 33 | template_name1=excel 34 | test.0.3=# 35 | test.0.5=\\ 36 | -------------------------------------------------------------------------------- /language/update_languages.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # batch script to create 'updated' language files. 4 | # 5 | # (You will need to adjust the file path in the first 'extract_terms' command) 6 | # 7 | perl extract_terms.pl -d ~/projects/jxplorer/src/com/ca -f java 8 | 9 | perl append_new_text.pl JX_fr.properties JX.properties 10 | cp JX_new.properties JX_fr_new.properties 11 | 12 | perl append_new_text.pl JX_de.properties JX.properties 13 | cp JX_new.properties JX_de_new.properties 14 | 15 | perl append_new_text.pl JX_hu.properties JX.properties 16 | cp JX_new.properties JX_hu_new.properties 17 | 18 | perl append_new_text.pl JX_zh_CN.properties JX.properties 19 | cp JX_new.properties JX_zh_CN_new.properties 20 | 21 | perl append_new_text.pl JX_zh_TW.properties JX.properties 22 | cp JX_new.properties JX_zh_TW_new.properties 23 | -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/event/JXplorerListener.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer.event; 2 | 3 | import java.util.EventListener; 4 | 5 | /** 6 | * The listener interface for receiving JXplorer events. 7 | * The class that is interested in processing an JXplorer event 8 | * implements this interface, and the object created with that 9 | * class is registered with a component, using the component's 10 | * addJXplorerListener method. When the JXplorer event 11 | * occurs, that object's JXplorerDNSelected method is 12 | * invoked. 13 | * 14 | * @see JXplorerEvent 15 | * 16 | * @author Chris Betts 17 | */ 18 | 19 | public interface JXplorerListener extends EventListener { 20 | 21 | /** 22 | * Invoked when an JXplorer occurs. 23 | */ 24 | public void JXplorerDNSelected(JXplorerEvent e); 25 | 26 | } -------------------------------------------------------------------------------- /log4j.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/com/ca/commons/security/cert/extensions/SubjectKeyIdentifier.java: -------------------------------------------------------------------------------- 1 | 2 | package com.ca.commons.security.cert.extensions; 3 | 4 | import com.ca.commons.security.asn1.*; 5 | import com.ca.commons.cbutil.CBParse; 6 | 7 | /** 8 | *
 9 |  * SubjectKeyIdentifier ::= KeyIdentifier
10 |  * KeyIdentifier ::= OCTET STRING
11 |  * 
12 | * 13 | * @author vbui 14 | */ 15 | public class SubjectKeyIdentifier implements V3Extension 16 | { 17 | String value = null; 18 | byte [] keyId; 19 | 20 | public byte [] getKeyId() { return keyId; } 21 | 22 | public void init(ASN1Object asn1object) throws Exception 23 | { 24 | if (!asn1object.isASN1Type(ASN1Type.OCTET_STRING)) 25 | throw new Exception("Wrong ASN.1 type for SubjectKeyIdentifier"); 26 | 27 | keyId = (byte[]) asn1object.getValue(); 28 | value = CBParse.bytes2HexSplit(keyId, 4); 29 | } 30 | 31 | public String toString() 32 | { 33 | return value; 34 | } 35 | } 36 | 37 | -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/editor/odmovieavieditor.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer.editor; 2 | 3 | import com.ca.commons.cbutil.*; 4 | 5 | import java.awt.*; 6 | 7 | 8 | 9 | /** 10 | * Class that extends BaseODMediaEditor to basically customise the display with 11 | * the title 'odMovieAVI' and to add a launch button that when clicked creates 12 | * a temp file and tries to launch the file in the default player. 13 | * @author Trudi. 14 | */ 15 | 16 | public class odmovieavieditor extends baseodmediaeditor 17 | { 18 | 19 | /** 20 | * Calls the BaseODMediaEditor constructor, sets the dialog title, the file 21 | * name and the extension. 22 | * @param owner handle to the application frame, used to display dialog boxes. 23 | */ 24 | 25 | public odmovieavieditor(Frame owner) 26 | { 27 | super(owner); 28 | super.setDialogTitle(CBIntText.get("odMovieAVI")); 29 | super.setFileName("odMovieAVI"); 30 | super.setExtension(".avi"); 31 | } 32 | } -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/editor/odsoundwaveditor.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer.editor; 2 | 3 | import com.ca.commons.cbutil.CBIntText; 4 | 5 | import java.awt.*; 6 | 7 | 8 | 9 | /** 10 | * Class that extends BaseODMediaEditor to basically customise the display with 11 | * the title 'odSoundWAV' and to add a launch button that when clicked creates 12 | * a temp file and tries to launch the file in the default player. 13 | * @author Trudi. 14 | */ 15 | 16 | public class odsoundwaveditor extends baseodmediaeditor 17 | { 18 | 19 | /** 20 | * Calls the BaseODMediaEditor constructor, sets the dialog title, the file 21 | * name and the extension. 22 | * @param owner handle to the application frame, used to display dialog boxes. 23 | */ 24 | 25 | public odsoundwaveditor(Frame owner) 26 | { 27 | super(owner); 28 | super.setDialogTitle(CBIntText.get("odSoundWAV")); 29 | super.setFileName("odSoundWAV"); 30 | super.setExtension(".wav"); 31 | } 32 | } -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/editor/odmusicmideditor.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer.editor; 2 | 3 | import com.ca.commons.cbutil.CBIntText; 4 | 5 | import java.awt.*; 6 | 7 | 8 | 9 | /** 10 | * Class that extends BaseODMediaEditor to basically customise the display with 11 | * the title 'odMusicMID' and to add a launch button that when clicked creates 12 | * a temp file and tries to launch the file in the default player. 13 | * @author Trudi. 14 | */ 15 | 16 | public class odmusicmideditor extends baseodmediaeditor 17 | { 18 | 19 | /** 20 | * Calls the BaseODMediaEditor constructor, sets the dialog title, the file 21 | * name and the extension. 22 | * @param owner handle to the application frame, used to display dialog boxes. 23 | */ 24 | 25 | public odmusicmideditor(Frame owner) 26 | { 27 | super(owner); 28 | super.setDialogTitle(CBIntText.get("odMusicMID")); 29 | super.setFileName("odMusicMID"); 30 | super.setExtension(".mid"); 31 | } 32 | } -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/editor/oddocumentdoceditor.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer.editor; 2 | 3 | import com.ca.commons.cbutil.CBIntText; 4 | 5 | import java.awt.*; 6 | 7 | 8 | 9 | /** 10 | * Class that extends BaseODMediaEditor to basically customise the display with 11 | * the title 'odDocumentDOC' and to add a launch button that when clicked creates 12 | * a temp file and tries to launch the file in the default player. 13 | * @author Trudi. 14 | */ 15 | 16 | public class oddocumentdoceditor extends baseodmediaeditor 17 | { 18 | 19 | /** 20 | * Calls the BaseODMediaEditor constructor, sets the dialog title, the file 21 | * name and the extension. 22 | * @param owner handle to the application frame, used to display dialog boxes. 23 | */ 24 | 25 | public oddocumentdoceditor(Frame owner) 26 | { 27 | super(owner); 28 | super.setDialogTitle(CBIntText.get("odDocumentDOC")); 29 | super.setFileName("odDocumentDOC"); 30 | super.setExtension(".doc"); 31 | } 32 | } -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/editor/odspreadsheetxlseditor.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer.editor; 2 | 3 | import com.ca.commons.cbutil.CBIntText; 4 | 5 | import java.awt.*; 6 | 7 | 8 | 9 | /** 10 | * Class that extends BaseODMediaEditor to basically customise the display with 11 | * the title 'odSpreadSheetXLS' and to add a launch button that when clicked creates 12 | * a temp file and tries to launch the file in the default player. 13 | * @author Trudi. 14 | */ 15 | 16 | public class odspreadsheetxlseditor extends baseodmediaeditor 17 | { 18 | 19 | /** 20 | * Calls the BaseODMediaEditor constructor, sets the dialog title, the file 21 | * name and the extension. 22 | * @param owner handle to the application frame, used to display dialog boxes. 23 | */ 24 | 25 | public odspreadsheetxlseditor(Frame owner) 26 | { 27 | super(owner); 28 | super.setDialogTitle(CBIntText.get("odSpreadSheetXLS")); 29 | super.setFileName("odSpreadSheetXLS"); 30 | super.setExtension(".xls"); 31 | } 32 | } -------------------------------------------------------------------------------- /src/TODO.TXT: -------------------------------------------------------------------------------- 1 | * Read Only Version 2 | - disable tree (need to address 'rename') 3 | - disable editor (need to address editor fields) 4 | 5 | * DO NEW RELEASE WITH CLEAN JXWORKBENCH 6 | 7 | * (meh) Expand help to show LDIF change handling 8 | * (tick) change splash screen and menu 9 | * adjust ant task to copy JXWsplash when making release_jxw 10 | * (tick) fix button highlights on LDAP import screen 11 | 12 | * (meh) Expand help to explain how sorted attributes for reports only occur for embedded query strings, 13 | not for 'quick reports' based on searches... (and how to use 'sort') (??) 14 | 15 | * UPDATE WELCOME PAGE WITH JXW INFO!!! (tick) 16 | 17 | Web Site 18 | ======= 19 | 20 | Update JX: 21 | a: (tick) JXW links 22 | b: (tick) spanish thingy 23 | c: (tick) check jxplorer-users@sourceforge.net link 24 | 25 | 26 | Update JXW: 27 | a: (tick) refer to 'bundle' 28 | b: (tick) change timing 29 | c: (tick) change order of licence page. 30 | 31 | 32 | NEXT 33 | ==== 34 | 35 | Check out if there's a new installer, and what to do about OSX 10.8 etc... -------------------------------------------------------------------------------- /src/com/ca/commons/cbutil/CBViewport.java: -------------------------------------------------------------------------------- 1 | package com.ca.commons.cbutil; 2 | 3 | import javax.swing.*; 4 | import java.awt.*; 5 | 6 | 7 | /** 8 | * JViewport appears to be more than usually stuffed... 9 | * this class inherits from it, and lobotimises 'scrollRectToVisible' 10 | * to prevent the bizarre automatically-scroll-to-the-bottom 11 | * behaviour that was screwing up the browser... 12 | * 13 | * @author Chris Betts 14 | * @version 1.0 22/8/99 15 | * @see JViewport 16 | */ 17 | public class CBViewport extends JViewport 18 | { 19 | 20 | /** 21 | * Labotimised so that the bloody thing works. Something 22 | * was calling this function and forcing the window to always 23 | * be at the bottom; otherwise it doesn't seem to be needed :-) 24 | * ... hopefully Sun will fix stuff up and we can go back to 25 | * using JViewport some time... 26 | * 27 | * @param contentRect the Rectangle to display 28 | */ 29 | 30 | public void scrollRectToVisible(Rectangle contentRect) 31 | { 32 | // code removed to protect the innocent 33 | } 34 | } -------------------------------------------------------------------------------- /src/com/ca/commons/jndi/JndiAction.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Created on Aug 9, 2004 3 | * 4 | * TODO To change the template for this generated file go to 5 | * Window - Preferences - Java - Code Style - Code Templates 6 | */ 7 | package com.ca.commons.jndi; 8 | 9 | import java.security.PrivilegedAction; 10 | import java.util.Hashtable; 11 | 12 | import javax.naming.NamingException; 13 | import javax.naming.ldap.InitialLdapContext; 14 | 15 | /** 16 | * @author vadim 17 | * 18 | * TODO To change the template for this generated type comment go to 19 | * Window - Preferences - Java - Code Style - Code Templates 20 | */ 21 | public class JndiAction implements PrivilegedAction { 22 | 23 | private Hashtable env; 24 | 25 | public JndiAction(Hashtable env){ 26 | this.env = env; 27 | } 28 | 29 | /* (non-Javadoc) 30 | * @see java.security.PrivilegedAction#run() 31 | */ 32 | public Object run() { 33 | 34 | InitialLdapContext result = null; 35 | 36 | try{ 37 | result = new InitialLdapContext(env, null); 38 | }catch(NamingException ex){ 39 | ex.printStackTrace(); 40 | } 41 | 42 | return result; 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /RELEASE.TXT: -------------------------------------------------------------------------------- 1 | JXplorer Version 3.2.1 Release Notes 2 | =================================== 3 | 4 | ... This is just a minor release with some incremental improvements. 5 | 6 | * Dropped Install Anywhere, moved to BitRock installer for java 1.6 compatibility 7 | 8 | * Support for loading LDIF files as command line argument 9 | * Support for displaying raw password strings in table editor using 'mask.raw.passwords=false' in jxconfig.txt 10 | * Some fixes for MAC look and feel; added GTK look and feel 11 | * Added beginnings of Taiwanese chinese language file - only partial. Reformated chinese to be traditional chinese file. 12 | * Added stand alone 'smart keystore editor' as a sub-project of JXplorer (separate target in ant build, creates an executable jar file) 13 | * Work on ant build file; making sure that shell script permissions are maintained 14 | * Moved source to subversion repository, restructured to allow 'single check out, single build'; more modifications to build file. 15 | 16 | Thanks to evereasy@gmail.com for the Traditional Chinese language file 17 | Thanks to Pawel Zuzelski for the LDIF code 18 | GTK L&F suggested by Alfonsas Stonis 19 | Executable jar file version of smart keystore editor from Santthosh Babu Selvadurai -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/viewer/tableviewer/TableViewerTestSuite.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This suite runs all the tests for 3 | * the different TableViewer classes. 4 | * Author: Chris Betts 5 | * Date: 15/05/2002 / 16:35:24 6 | */ 7 | 8 | package com.ca.directory.jxplorer.viewer.tableviewer; 9 | 10 | import junit.framework.*; 11 | import com.ca.commons.naming.*; 12 | import junit.framework.*; 13 | 14 | 15 | 16 | public class TableViewerTestSuite extends TestCase 17 | { 18 | public TableViewerTestSuite(String name) 19 | { 20 | super(name); 21 | } 22 | 23 | 24 | /** 25 | * Assembles and returns a test suite 26 | * containing all known tests. 27 | * 28 | * New tests should be added here! 29 | * 30 | * @return A non-null test suite. 31 | */ 32 | 33 | public static Test suite() 34 | { 35 | TestSuite suite = new TestSuite(); 36 | 37 | // The tests... 38 | suite.addTest(AttributeTableModelTest.suite()); 39 | 40 | return suite; 41 | } 42 | 43 | /** 44 | * Runs the test suite. 45 | */ 46 | 47 | public static void main(String args[]) 48 | { 49 | junit.textui.TestRunner.run(suite()); 50 | } 51 | } 52 | 53 | 54 | -------------------------------------------------------------------------------- /src/com/ca/commons/jndi/JndiTestSuite.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by IntelliJ IDEA. 3 | * User: betch01 4 | * Date: Dec 3, 2002 5 | * Time: 12:03:50 PM 6 | * To change this template use Options | File Templates. 7 | */ 8 | package com.ca.commons.jndi; 9 | 10 | import junit.framework.*; 11 | 12 | public class JndiTestSuite extends TestCase { 13 | 14 | public JndiTestSuite(String name) 15 | { 16 | super(name); 17 | } 18 | 19 | 20 | /** 21 | * Assembles and returns a test suite 22 | * containing all known tests. 23 | * 24 | * New tests should be added here! 25 | * 26 | * @return A non-null test suite. 27 | */ 28 | 29 | public static Test suite() 30 | { 31 | TestSuite suite = new TestSuite(); 32 | 33 | // The tests... 34 | suite.addTest(BasicOpsTest.suite()); 35 | suite.addTest(SchemaOpsTest.suite()); 36 | suite.addTest(ConnectionDataTest.suite()); 37 | suite.addTest(JNDIOpsTest.suite()); 38 | return suite; 39 | } 40 | 41 | /** 42 | * Runs the test suite. 43 | */ 44 | 45 | public static void main(String args[]) 46 | { 47 | junit.textui.TestRunner.run(suite()); 48 | } 49 | } 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /src/com/ca/jndiproviders/dsml/DsmlTestSuite.java: -------------------------------------------------------------------------------- 1 | package com.ca.jndiproviders.dsml; 2 | 3 | import junit.framework.*; 4 | 5 | /** 6 | *

A micky mouse junit test suite that runs micky mouse junit tests on the 7 | * micky mouse example functionality included in the base SPML distribution. 8 | * However this is an excellent place to extend those tests when you 9 | * add real functionality.

10 | * @author Trudi Ersvaer. 11 | */ 12 | 13 | public class DsmlTestSuite extends TestCase { 14 | 15 | public DsmlTestSuite(String name) 16 | { 17 | super(name); 18 | } 19 | 20 | 21 | /** 22 | * Assembles and returns a test suite 23 | * containing all known tests. 24 | * 25 | * New tests should be added here! 26 | * 27 | * @return A non-null test suite. 28 | */ 29 | 30 | public static Test suite() 31 | { 32 | TestSuite suite = new TestSuite(); 33 | 34 | // The tests... 35 | suite.addTest(DsmlContextTest.suite()); 36 | return suite; 37 | } 38 | 39 | /** 40 | * Runs the test suite. 41 | */ 42 | 43 | public static void main(String args[]) 44 | { 45 | junit.textui.TestRunner.run(suite()); 46 | } 47 | } 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /src/com/ca/commons/cbutil/CBSingleSelectionModel.java: -------------------------------------------------------------------------------- 1 | package com.ca.commons.cbutil; 2 | 3 | import javax.swing.*; 4 | 5 | 6 | /** 7 | * Create a SINGLE_SELECTION ListSelectionModel that calls a new 8 | * method, updateSingleSelection(), each time the selection 9 | * changes. This can be a little bit more convienent than using the 10 | * ListModels ListSelectionListener, since ListSelectionListeners 11 | * are only given the range of indices that the change spans. 12 | */ 13 | 14 | public class CBSingleSelectionModel extends DefaultListSelectionModel 15 | { 16 | JList list = null; 17 | 18 | public CBSingleSelectionModel(JList list) 19 | { 20 | this.list = list; 21 | setSelectionMode(SINGLE_SELECTION); 22 | } 23 | 24 | public void setSelectionInterval(int index0, int index1) 25 | { 26 | int oldIndex = getMinSelectionIndex(); 27 | super.setSelectionInterval(index0, index1); 28 | int newIndex = getMinSelectionIndex(); 29 | 30 | if (oldIndex != newIndex) 31 | { 32 | updateSingleSelection(oldIndex, newIndex); 33 | } 34 | } 35 | 36 | public void updateSingleSelection(int oldIndex, int newIndex) 37 | { 38 | list.ensureIndexIsVisible(newIndex); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /tcpmon.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # OpenDirectory jxstart.sh $Revision: 1.13 $ $Date: 2006/04/18 04:12:12 $ 3 | 4 | if [ -x $JAVA_HOME/bin/java ]; then 5 | JAVA_LOC=$JAVA_HOME/bin/java 6 | elif [ -x /opt/jre/bin/java ]; then 7 | JAVA_LOC=/opt/jre/bin/java 8 | elif [ -x /opt/ca/jre/bin/java ]; then 9 | JAVA_LOC=/opt/ca/jre/bin/java 10 | elif [ -x /opt/ca/etrustdirectory/jre/bin/java ]; then 11 | JAVA_LOC=/opt/ca/etrustdirectory/jre/bin/java 12 | elif [ -x /opt/CA/eTrustDirectory/jre/bin/java ]; then 13 | JAVA_LOC=/opt/CA/eTrustDirectory/jre/bin/java 14 | else 15 | JAVA_LOC=java 16 | fi 17 | 18 | # Find directory of JRE 19 | ${JAVA_LOC} -version >/dev/null 2>&1 20 | if [ "$?" != "0" ] ; then 21 | OPTJX=/opt/jxplorer 22 | 23 | # $OPTJX MUST be the JXplorer install directory, or a link to it, and contain the JRE 24 | 25 | if [ ! -d $OPTJX -o ! -h $OPTJX ] ; then 26 | echo "Either java must be in the path, or" 27 | echo "$OPTJX MUST be the JXplorer install directory, or a link to it, and contain the JRE" 28 | exit 1 29 | fi 30 | 31 | cd $OPTJX 32 | JAVAV=/opt/jxplorer/jre/bin/java 33 | else 34 | JAVAV=${JAVA_LOC} 35 | fi 36 | 37 | echo "starting TCPMon..." 38 | 39 | $JAVAV -cp .:jars/jxplorer.jar org.apache.axis.utils.TCPInterceptor 40 | 41 | -------------------------------------------------------------------------------- /src/com/pegacat/testprovider/TestProviderTestSuite.java: -------------------------------------------------------------------------------- 1 | package com.pegacat.testprovider; 2 | 3 | import junit.framework.*; 4 | 5 | /** 6 | *

Runs tests on the test provider to ensure the provider is not corrupted (thus screwing 7 | * other tests further down the line - all very recursive!).

8 | */ 9 | 10 | public class TestProviderTestSuite extends TestCase { 11 | 12 | public TestProviderTestSuite(String name) 13 | { 14 | super(name); 15 | } 16 | 17 | 18 | /** 19 | * Assembles and returns a test suite 20 | * containing all known tests. 21 | * 22 | * New tests should be added here! 23 | * 24 | * @return A non-null test suite. 25 | */ 26 | 27 | public static Test suite() 28 | { 29 | TestSuite suite = new TestSuite(); 30 | 31 | // The tests... 32 | suite.addTest(TestProviderContextTest.suite()); 33 | suite.addTest(TreeEntryTest.suite()); 34 | suite.addTest(DataTreeTest.suite()); 35 | return suite; 36 | } 37 | 38 | /** 39 | * Runs the test suite. 40 | */ 41 | 42 | public static void main(String args[]) 43 | { 44 | junit.textui.TestRunner.run(suite()); 45 | } 46 | } 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/viewer/tableviewer/AttributeType.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer.viewer.tableviewer; 2 | 3 | /** 4 | * TableAttributeEditor utility class; encapsulates the idea of 5 | * a displayable object type name, that may or may not be mandatory 6 | * (and hence displayed differently). 7 | */ 8 | 9 | public class AttributeType 10 | { 11 | static final int NORMAL = 0; 12 | static final int MANDATORY = 1; // whether attribute is required 13 | static final int BINARY = 2; // future use 14 | 15 | 16 | public String value; 17 | public boolean mandatory; 18 | 19 | 20 | /** 21 | * initialise with an object, take a backup, and set changed to false 22 | */ 23 | public AttributeType(String name, boolean isMandatory) 24 | { 25 | // trim ";binary" for display purposes... (Is this what people want I wonder?) 26 | if (name.endsWith(";binary")) 27 | name = name.substring(0, name.length()-7); 28 | 29 | value = name; 30 | mandatory = isMandatory; 31 | } 32 | 33 | public String getValue() { return value; } 34 | 35 | public boolean isMandatory() { return mandatory; } 36 | 37 | public String toString() { return value; } 38 | 39 | } -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/editor/abstractstringeditor.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer.editor; 2 | 3 | import java.awt.*; 4 | import java.awt.event.*; 5 | import javax.swing.*; 6 | import javax.swing.event.*; 7 | 8 | /** 9 | * This interface defines the basis for EditableString. 10 | * EditableString implementing this interface, that 11 | * have the name [object class]Editor.class, will be 12 | * dynamically loaded, providing that it implements 13 | * (in addition to this interface) a no-argument constructor.. 14 | * 15 | * *

IMPORTANT

16 | * 17 | *

Editors MUST have completely lower case class names, or they will not be able to be matched 18 | * with the corresponding attribute name by JXplorer. (This is because attribute names are in arbitrary 19 | * case, and there is no way to find or load a class in a case insensitive way using the standard java 20 | * class loader.)

21 | * 22 | * @author Trudi 23 | */ 24 | public interface abstractstringeditor 25 | { 26 | /** 27 | * The main function; takes an EditableString object that 28 | * can then be edited. 29 | * 30 | * @param editMe to be modified. 31 | * 32 | */ 33 | 34 | public void setStringValue(editablestring editMe); 35 | } -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/SwingDataListener.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer; 2 | 3 | import com.ca.directory.jxplorer.broker.DataQuery; 4 | 5 | import java.awt.EventQueue; 6 | 7 | /** 8 | * DataListener decorator. 9 | * Delivers dataReady events inside the AWT dispatcher thread 10 | * in case the listener intends to do any GUI stuff. 11 | * @author Robert Wruck 12 | */ 13 | public class SwingDataListener implements DataListener 14 | { 15 | private final DataListener listener; 16 | 17 | /** 18 | * Constructor 19 | * @param listener The real listener 20 | */ 21 | public SwingDataListener(DataListener listener) 22 | { 23 | this.listener = listener; 24 | } 25 | 26 | private static final class DataReadyEvent implements Runnable 27 | { 28 | private final DataListener listener; 29 | private final DataQuery result; 30 | 31 | public DataReadyEvent(DataListener listener, DataQuery result) 32 | { 33 | this.listener = listener; 34 | this.result = result; 35 | } 36 | 37 | public void run() 38 | { 39 | listener.dataReady(result); 40 | } 41 | } 42 | 43 | //@Override 44 | public void dataReady(DataQuery result) 45 | { 46 | EventQueue.invokeLater(new DataReadyEvent(listener, result)); 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /src/com/ca/commons/security/cert/extensions/SubjectAltName.java: -------------------------------------------------------------------------------- 1 | 2 | package com.ca.commons.security.cert.extensions; 3 | 4 | import com.ca.commons.security.asn1.*; 5 | 6 | /** 7 | *
 8 |  *  SubjectAltName ::= GeneralNames
 9 |  *
10 |  *  GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
11 |  *
12 |  *  GeneralName ::= CHOICE {
13 |  *       otherName                       [0]     OtherName,
14 |  *       rfc822Name                      [1]     IA5String,
15 |  *       dNSName                         [2]     IA5String,
16 |  *       x400Address                     [3]     ORAddress,
17 |  *       directoryName                   [4]     Name,
18 |  *       ediPartyName                    [5]     EDIPartyName,
19 |  *       uniformResourceIdentifier       [6]     IA5String,
20 |  *       iPAddress                       [7]     OCTET STRING,
21 |  *       registeredID                    [8]     OBJECT IDENTIFIER}
22 |  *
23 |  *  OtherName ::= SEQUENCE {
24 |  *       type-id    OBJECT IDENTIFIER,
25 |  *       value      [0] EXPLICIT ANY DEFINED BY type-id }
26 |  *
27 |  *  EDIPartyName ::= SEQUENCE {
28 |  *       nameAssigner            [0]     DirectoryString OPTIONAL,
29 |  *       partyName               [1]     DirectoryString }
30 |  * 
31 | * 32 | * @author vbui 33 | */ 34 | public class SubjectAltName extends IssuerAltName 35 | { 36 | } 37 | 38 | -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/JXplorerTestSuite.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer; 2 | 3 | import com.ca.commons.jndi.JndiTestSuite; 4 | import com.ca.commons.naming.NamingTestSuite; 5 | import junit.framework.Test; 6 | import junit.framework.TestCase; 7 | import junit.framework.TestSuite; 8 | 9 | /** 10 | * (c) Chris Betts; Pegacat Software (http://pegacat.com) 11 | */ 12 | public class JXplorerTestSuite extends TestCase 13 | { 14 | 15 | public JXplorerTestSuite(String name) 16 | { 17 | super(name); 18 | } 19 | 20 | 21 | /** 22 | * Assembles and returns a test suite 23 | * containing all known tests. 24 | * 25 | * New tests should be added here! 26 | * 27 | * @return A non-null test suite. 28 | */ 29 | 30 | public static Test suite() 31 | { 32 | TestSuite suite = new TestSuite(); 33 | 34 | // Tests for this package 35 | suite.addTest(LdifImportTest.suite()); 36 | 37 | 38 | // Tests from other packages 39 | suite.addTest(NamingTestSuite.suite()); 40 | suite.addTest(JndiTestSuite.suite()); 41 | 42 | 43 | return suite; 44 | } 45 | 46 | /** 47 | * Runs the test suite. 48 | */ 49 | 50 | public static void main(String args[]) 51 | { 52 | junit.textui.TestRunner.run(suite()); 53 | } 54 | } 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /src/com/ca/commons/cbutil/CBFileFilter.java: -------------------------------------------------------------------------------- 1 | package com.ca.commons.cbutil; 2 | 3 | import java.io.File; 4 | import java.io.FileFilter; 5 | 6 | /** 7 | * Quick Hack to cover up yet another 8 | * Swing inadequacy. 9 | * 10 | * (superseded by javax.swing.filechooser.FileNameExtensionFilter as of java 1.6?) 11 | */ 12 | 13 | public class CBFileFilter extends javax.swing.filechooser.FileFilter 14 | implements FileFilter 15 | { 16 | protected String[] extensions; // make it possible to extend this class 17 | String description; 18 | 19 | public CBFileFilter(String[] exts) 20 | { 21 | this(exts, "no description given"); 22 | } 23 | 24 | public CBFileFilter(String[] exts, String desc) 25 | { 26 | extensions = new String[exts.length]; 27 | for (int i = 0; i < exts.length; i++) 28 | { 29 | extensions[i] = exts[i].toLowerCase(); 30 | } 31 | 32 | description = desc; 33 | } 34 | 35 | public boolean accept(File f) 36 | { 37 | if (f.isDirectory()) return true; 38 | 39 | for (int i = 0; i < extensions.length; i++) 40 | if (f.getName().toLowerCase().endsWith(extensions[i])) 41 | return true; 42 | 43 | return false; 44 | } 45 | 46 | public String getDescription() 47 | { 48 | return description; 49 | } 50 | 51 | } -------------------------------------------------------------------------------- /templates/person/other.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Person: Other Tab 4 | 10 | 11 | 12 |
13 | 14 | 15 | 25 | 26 | 27 | 28 | 31 | 32 | 33 | 34 | 39 | 40 |
16 |

17 | 18 | 19 | 20 | 21 | 22 |
23 |

Person

24 |
see Also: 29 | 30 |
35 | 36 |   37 | 38 |
41 |
42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /themes/classic-theme/templates/person/other.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Person: Other Tab 4 | 10 | 11 | 12 |
13 | 14 | 15 | 25 | 26 | 27 | 28 | 31 | 32 | 33 | 34 | 39 | 40 |
16 |

17 | 18 | 19 | 20 | 21 | 22 |
23 |

Person

24 |
see Also: 29 | 30 |
35 | 36 |   37 | 38 |
41 |
42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /src/com/ca/commons/naming/NamingTestSuite.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This suite runs all the tests for 3 | * the different Naming classes. 4 | * Author: Chris Betts 5 | * Date: 15/05/2002 / 16:35:24 6 | */ 7 | 8 | package com.ca.commons.naming; 9 | import junit.framework.*; 10 | 11 | public class NamingTestSuite extends TestCase { 12 | 13 | public NamingTestSuite(String name) 14 | { 15 | super(name); 16 | } 17 | 18 | 19 | /** 20 | * Assembles and returns a test suite 21 | * containing all known tests. 22 | * 23 | * New tests should be added here! 24 | * 25 | * @return A non-null test suite. 26 | */ 27 | 28 | public static Test suite() 29 | { 30 | TestSuite suite = new TestSuite(); 31 | 32 | // The tests... 33 | suite.addTest(DNTest.suite()); 34 | suite.addTest(RDNTest.suite()); 35 | suite.addTest(DXAttributesTest.suite()); 36 | suite.addTest(DXAttributeTest.suite()); 37 | suite.addTest(NameUtilityTest.suite()); 38 | suite.addTest(LdifModifyAttributeTest.suite()); 39 | suite.addTest(LdifEntryTest.suite()); 40 | suite.addTest(LdifUtilityTest.suite()); 41 | suite.addTest(LdifStreamReaderTest.suite()); 42 | 43 | return suite; 44 | } 45 | 46 | /** 47 | * Runs the test suite. 48 | */ 49 | 50 | public static void main(String args[]) 51 | { 52 | junit.textui.TestRunner.run(suite()); 53 | } 54 | } 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/DataSink.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer; 2 | 3 | import com.ca.commons.naming.DXEntry; 4 | import com.ca.directory.jxplorer.broker.DataBrokerQueryInterface; 5 | 6 | /** 7 | * DataSink defines the interface used by objects that 8 | * are consumers of information from a tree, such as display 9 | * panels that show information about a data node, or the off-line 10 | * data store used to view ldif files off-line. 11 | */ 12 | 13 | public interface DataSink 14 | { 15 | /** 16 | * Displays information about a given tree node, 17 | * expressed as a DXEntry (an attribute set and associated distinguished 18 | * name of a node). The method also provides a data Source 19 | * which may be used to update the node. This data Source 20 | * may be null for non-editable data. 21 | * 22 | * @param entry the directory entry to display. If null, indicates that a 23 | * blank or 'empty' entry should be displayed. 24 | * @param ds the datasource used for data modification/schema access etc. 25 | * May be null, in which case no schema checking/prompting will be done, 26 | * and no editing will be possible. 27 | */ 28 | 29 | public void displayEntry(DXEntry entry, DataBrokerQueryInterface ds); 30 | 31 | /** 32 | * Indicates whether the editor can create a new entry, given a 33 | * unique name. 34 | */ 35 | 36 | public boolean canCreateEntry(); 37 | } -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/editor/abstractbinaryeditor.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer.editor; 2 | 3 | import java.awt.*; 4 | import java.awt.event.*; 5 | import javax.swing.*; 6 | import javax.swing.event.*; 7 | 8 | 9 | 10 | /** 11 | *

This interface defines the basis for BinaryEditors. 12 | * BinaryEditors implementing this interface, that 13 | * have the name [object class]editor.class, will be 14 | * dynamically loaded, providing that it implements 15 | * (in addition to this interface) a no-argument constructor.

16 | * 17 | *

IMPORTANT

18 | * 19 | *

Editors MUST have completely lower case class names, or they will not be able to be matched 20 | * with the corresponding attribute name by JXplorer. (This is because attribute names are in arbitrary 21 | * case, and there is no way to find or load a class in a case insensitive way using the standard java 22 | * class loader.)

23 | */ 24 | public interface abstractbinaryeditor 25 | { 26 | /** 27 | * the main function; takes an EditableBinary object that 28 | * can then be, well, edited. 29 | * 30 | * @param editMe the array of bytes to be modified. 31 | */ 32 | 33 | public void setValue(editablebinary editMe); 34 | 35 | /** 36 | * An optional utility ftn that returns the edited object... 37 | * may not be used in normal operation since setValue(...) 38 | * can update the EditableBinary object. 39 | */ 40 | 41 | // public EditableBinary getValue(); 42 | } -------------------------------------------------------------------------------- /src/com/pegacat/testprovider/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | 13 | 14 |

This is a fairly comprehensive stand alone JNDI Provider that can be run 15 | via unit tests for stand alone testing, without any use of networking or 16 | external resources.

17 | 18 | 19 |

Package Specification

20 | 21 |

The test provider package is a reasonably complete JNDI provider for 22 | testing JNDI functions without using an external directory. It allows 23 | for fake data to be loaded in test cases, and retrieved with simple 24 | searches of the form (attribute=value), and allows for returning specified 25 | attribute lists.

26 | 27 |

It does not allow for more complex multi-item searches (&(att1=val1)(att2=val2)), 28 | or searches with other operators than equals, although there is some support 29 | for wild cards and simple searches.

30 | 31 |

The package includes a context factory etc., so that it can be registered 32 | with the Sun JNDI provider system using a command such as:

33 | 34 | 35 | jndienv.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.clients.testprovider.TestProviderContextFactory"); 36 | 37 | 38 |

Alternatively a test context can be created directly using a command such as:

39 | 40 | 41 | new TestProviderContextFactory().getInitialContext(new Hashtable()); 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /templates/newPilotPerson/address.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | newPilotPerson: Address Tab 4 | 10 | 11 | 12 |
13 | 14 | 15 | 26 | 27 | 28 | 29 | 32 | 33 | 34 | 35 | 40 | 41 |
16 |

17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |

newPilotPerson

25 |
Home Postal Address: 30 | 31 |
36 | 37 |   38 | 39 |
42 |
43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /src/com/ca/commons/security/cert/extensions/PolicyMappings.java: -------------------------------------------------------------------------------- 1 | 2 | package com.ca.commons.security.cert.extensions; 3 | 4 | import com.ca.commons.security.asn1.*; 5 | 6 | /** 7 | *
 8 |  * policyMappings EXTENSION ::= {
 9 |  *         SYNTAX  PolicyMappingsSyntax
10 |  *         IDENTIFIED BY id-ce-policyMappings }
11 |  *
12 |  * PolicyMappingsSyntax ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE {
13 |  *         issuerDomainPolicy           CertPolicyId,
14 |  *         subjectDomainPolicy          CertPolicyId }
15 |  * 
16 | * 17 | * @author vbui 18 | */ 19 | public class PolicyMappings implements V3Extension 20 | { 21 | String value = null; 22 | 23 | public void init(ASN1Object asn1object) throws Exception 24 | { 25 | if (!asn1object.isASN1Type(ASN1Type.SEQUENCE)) 26 | throw new Exception("Wrong ASN.1 type for PolicyMappings"); 27 | 28 | for (int i = 0; i < asn1object.size(); i++) 29 | { 30 | Sequence seq = (Sequence) asn1object.getComponent(i); 31 | for (int j = 0; j < seq.size(); j++) 32 | { 33 | ASN1Object nextComp = seq.getComponent(j); 34 | String certPolicyID = nextComp.getValue().toString(); 35 | 36 | if (j == 0) 37 | { 38 | if (value == null) 39 | value = "Issuer Domain Policy: " + certPolicyID; 40 | else 41 | value = value + "\n" + "Issuer Domain Policy: " + certPolicyID; 42 | } 43 | else if (j == 1) 44 | { 45 | value = value + "\n" + "Subject Domain Policy: " + certPolicyID; 46 | } 47 | } 48 | } 49 | } 50 | 51 | public String toString() 52 | { 53 | return value; 54 | } 55 | } 56 | 57 | -------------------------------------------------------------------------------- /themes/classic-theme/templates/newPilotPerson/address.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | newPilotPerson: Address Tab 4 | 10 | 11 | 12 |
13 | 14 | 15 | 26 | 27 | 28 | 29 | 32 | 33 | 34 | 35 | 40 | 41 |
16 |

17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |

newPilotPerson

25 |
Home Postal Address: 30 | 31 |
36 | 37 |   38 | 39 |
42 |
43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /htmldocs/start.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | DXplorer Java Star Screen 4 | 5 | 6 |
7 |

Welcome to JXplorer

8 | This panel will display the results of your LDAP directory 9 | browsing and searches. You can define your own HTML templates in the '/htmldocs' 10 | folder, or you can use the 'table' display to see all attributes and values.

11 |

If you need any assistance, use the help option on the menu bar above, 12 | download the admin guide at http://www.jxplorer.org/documents/, or go to http://www.jxplorer.org for more options.


13 | 14 | 15 | 32 | 33 |
16 |

Upgrade to JXWorkBench

17 |

Get JXWorkBench at http://www.jxworkbench.com!


18 | 19 |

If you find JXplorer useful, why not upgrade to the JXWorkBench Enterprise bundle? JXWorkBench 20 | extends JXplorer with new admin features, such as the powerful Jasper Reports open source reporting 21 | engine with a set of extensible sample reports available in web, MS office, pdf and other formats.


22 | 23 |

The JXWorkBench bundle includes:

24 |
    25 |
  • Reports and summary documents 26 |
  • Extended find and replace operations 27 |
  • Cross-directory regexp and attribute substitution 28 |
  • A password vault for saving credentials 29 |
  • Saving and importing csv files 30 |
31 |
34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/com/ca/commons/security/cert/extensions/PolicyConstraints.java: -------------------------------------------------------------------------------- 1 | 2 | package com.ca.commons.security.cert.extensions; 3 | 4 | import com.ca.commons.security.asn1.*; 5 | 6 | /** 7 | *
 8 |  * PolicyConstraints ::= SEQUENCE {
 9 |  *      requireExplicitPolicy           [0] SkipCerts OPTIONAL,
10 |  *      inhibitPolicyMapping            [1] SkipCerts OPTIONAL }
11 |  *
12 |  * SkipCerts ::= INTEGER (0..MAX)
13 |  * 
14 | * 15 | * @author vbui 16 | */ 17 | public class PolicyConstraints implements V3Extension 18 | { 19 | String value = null; 20 | 21 | public void init(ASN1Object asn1object) throws Exception 22 | { 23 | if (!asn1object.isASN1Type(ASN1Type.SEQUENCE)) 24 | throw new Exception("Wrong ASN.1 type for PolicyConstraints"); 25 | 26 | if (asn1object.size() >= 1) 27 | { 28 | ASN1Object requireExplicitPolicy = asn1object.getComponent(0); 29 | if (requireExplicitPolicy.getValue() == null) 30 | throw new Exception("Wrong ASN.1 type for PolicyConstraints.requireExplicitPolicy"); 31 | 32 | value = "requireExplicitPolicy: " + requireExplicitPolicy.getValue(); 33 | } 34 | 35 | if (asn1object.size() >= 2) 36 | { 37 | ASN1Object inhibitPolicyMapping = asn1object.getComponent(1); 38 | if (inhibitPolicyMapping.getValue() == null) 39 | throw new Exception("Wrong ASN.1 type for PolicyConstraints.inhibitPolicyMapping"); 40 | 41 | value = value + "\ninhibitPolicyMapping: " + inhibitPolicyMapping.getValue(); 42 | } 43 | } 44 | 45 | public String toString() 46 | { 47 | return value; 48 | } 49 | } 50 | 51 | -------------------------------------------------------------------------------- /language/README_LANGUAGE.txt: -------------------------------------------------------------------------------- 1 | JXPlorer i18n Translation Files 2 | =============================== 3 | 4 | JX.properties contains a list of all the keywords in JXplorer. 5 | To Translate into another language, the phrases on the RIGHT HAND SIDE of the 6 | equals sign must be translated. The format should be either UTF8 or Unicode, 7 | NOT a local encoding such as Shift-JIS, Big-5 Chinese or whatever. I have 8 | rewritten the java language handling so that normal utf-8 and unicode can 9 | be used, rather than the ludicrous java 'escaped unicode' format (although 10 | that should work as well). 11 | 12 | The files follow the normal java i18n standard for locale specification: 13 | e.g. 14 | JX.properties - Default 15 | JX_de.properties - German 16 | JX_en.properties - English 17 | JX_fr.properties - French 18 | JX_ja.properties - Japanese 19 | JX_zh_CN.properties - Simplified Chinese 20 | JX_zh_TW.properties - Traditional Chinese 21 | JX_en_US.properties - American dialect of english 22 | 23 | 24 | cheers! 25 | 26 | - Chris 27 | 28 | Notes for developers: 29 | ===================== 30 | 31 | There are some perl scripts included here that can be used to 32 | build the base properties file, or to find newly added terms not present in 33 | existing translation files. 34 | 35 | The current process is to use extract_text.pl to get the CBIntText.get(xxx) 36 | terms from the source to produce an 'english' properties file, and 37 | then 'append_new_text.pl' to merge this text with existing translation files. 38 | 39 | e.g. 40 | perl extract_terms.pl -d ~/projects/jxplorer/src/com/ca -f java 41 | perl append_new_text.pl JX_fr.properties JX.properties 42 | 43 | -------------------------------------------------------------------------------- /src/com/ca/commons/security/cert/extensions/BasicConstraints.java: -------------------------------------------------------------------------------- 1 | 2 | package com.ca.commons.security.cert.extensions; 3 | 4 | import com.ca.commons.security.asn1.*; 5 | 6 | /** 7 | *
 8 |  * BasicConstraints ::= SEQUENCE {
 9 |  *      cA                      BOOLEAN DEFAULT FALSE,
10 |  *      pathLenConstraint       INTEGER (0..MAX) OPTIONAL }
11 |  * 
12 | * 13 | * @author vbui 14 | */ 15 | public class BasicConstraints implements V3Extension 16 | { 17 | String value = null; 18 | 19 | public int pathLenConstraint = -1; 20 | 21 | public void init(ASN1Object asn1object) throws Exception 22 | { 23 | if (!asn1object.isASN1Type(ASN1Type.SEQUENCE)) 24 | throw new Exception("Wrong ASN.1 type for BasicConstraints"); 25 | 26 | if (asn1object.size() == 0) 27 | { 28 | value = "CA: False\nPath Length Constraint: None"; 29 | return; 30 | } 31 | 32 | if (asn1object.size() >= 1) 33 | { 34 | Object ca = asn1object.getComponent(0).getValue(); 35 | if (!(ca instanceof Boolean)) 36 | throw new Exception("Wrong ASN.1 type for BasicConstraints.cA"); 37 | 38 | value = "CA: " + ca; 39 | } 40 | 41 | if (asn1object.size() >= 2) 42 | { 43 | Object pathLen = asn1object.getComponent(1).getValue(); 44 | value = value + "\nPath Length Constraint: " + pathLen; 45 | try 46 | { 47 | int len = Integer.parseInt(pathLen.toString()); 48 | if (len >= 0) pathLenConstraint = len; 49 | } 50 | catch (NumberFormatException ex) 51 | { 52 | // ignore 53 | } 54 | } 55 | else 56 | { 57 | value = value + "\nPath Length Constraint: None"; 58 | } 59 | } 60 | 61 | public String toString() 62 | { 63 | return value; 64 | } 65 | } 66 | 67 | -------------------------------------------------------------------------------- /templates/locality/address.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | inetOrgPerson: Address Tab 4 | 10 | 11 | 12 |
13 | 14 | 15 | 26 | 27 | 28 | 29 | 32 | 33 | 34 | 35 | 38 | 39 | 40 | 41 | 46 | 47 |
16 |

17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |

locality

25 |
Street: 30 | 31 |
State or Province: 36 | 37 |
42 | 43 |   44 | 45 |
48 |
49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/viewer/tableviewer/AttributeNameAndType.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer.viewer.tableviewer; 2 | 3 | /** 4 | * TableAttributeEditor utility class; encapsulates the idea of 5 | * a displayable object type name, that may or may not be mandatory 6 | * (and hence displayed differently). 7 | */ 8 | 9 | public class AttributeNameAndType 10 | { 11 | static final int NORMAL = 0; 12 | static final int MANDATORY = 1; // whether attribute is required 13 | //static final int BINARY = 2; // future use 14 | static final int OPERATIONAL = 3; // display differently if it is an operational attribute 15 | 16 | 17 | private String value; 18 | private int type; 19 | 20 | /** 21 | * initialise with an object, take a backup, and set changed to false 22 | */ 23 | public AttributeNameAndType(String name, boolean isMandatory) 24 | { 25 | // trim ";binary" for display purposes... (Is this what people want I wonder?) 26 | if (name.endsWith(";binary")) 27 | name = name.substring(0, name.length()-7); 28 | 29 | value = name; 30 | type = isMandatory?1:0; 31 | } 32 | 33 | /** 34 | * 35 | * @param name the attribute ID 36 | * @param attributeType the type of the attribute 37 | */ 38 | public AttributeNameAndType(String name, int attributeType) 39 | { 40 | value = name; 41 | type = attributeType; 42 | 43 | } 44 | 45 | public String getName() { return value; } 46 | 47 | public boolean isMandatory() { return type==MANDATORY; } 48 | 49 | public boolean isOperational() { return type==OPERATIONAL;} 50 | 51 | public String toString() { return value; } 52 | 53 | 54 | } -------------------------------------------------------------------------------- /src/com/pegacat/testprovider/TestProviderParser.java: -------------------------------------------------------------------------------- 1 | package com.pegacat.testprovider; 2 | 3 | import javax.naming.ldap.*; 4 | 5 | import javax.naming.*; 6 | import java.util.logging.Logger; 7 | import java.util.logging.Level; 8 | 9 | /** 10 | * This code lovingly written by Chris. 11 | */ 12 | public class TestProviderParser implements NameParser 13 | { 14 | 15 | private static Logger log = Logger.getLogger(TestProviderParser.class.getName()); 16 | // private static Logger log = Logger.getLogger("com.pegacat.testprovider"); 17 | 18 | /** 19 | * Default DSML parser for general use 20 | */ 21 | public static final TestProviderParser parser = new TestProviderParser(); 22 | 23 | // Debug 24 | { 25 | log.setLevel(Level.FINE); 26 | } 27 | 28 | /** 29 | * Parses a name into its components. DSML names are 30 | * simply LDAP names, and this parser returns a javax.naming.ldap.LdapName object. 31 | * 32 | * @param name The non-null string name to parse. 33 | * @return A jndi name object (LdapName) 34 | * @throws javax.naming.InvalidNameException 35 | * If name does not conform to the LDAP syntax 36 | * @throws javax.naming.NamingException If a naming exception was encountered. 37 | */ 38 | 39 | public Name parse(String name) throws NamingException 40 | { 41 | return new LdapName(name); 42 | } 43 | 44 | /** 45 | * Empty constructor. Use if you don't want to use the static 'parser' object (e.g. 46 | * for thread safety reasons). 47 | */ 48 | public TestProviderParser() 49 | { 50 | log.log(Level.FINE, "creating DsmlParser"); 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /themes/classic-theme/templates/locality/address.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | inetOrgPerson: Address Tab 4 | 10 | 11 | 12 |
13 | 14 | 15 | 26 | 27 | 28 | 29 | 32 | 33 | 34 | 35 | 38 | 39 | 40 | 41 | 46 | 47 |
16 |

17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |

locality

25 |
Street: 30 | 31 |
State or Province: 36 | 37 |
42 | 43 |   44 | 45 |
48 |
49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /templates/locality/Main.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | inetOrgPerson: Main Tab 4 | 10 | 11 | 12 |
13 | 14 | 15 | 26 | 27 |
16 |

17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |

locality

25 |
28 | 29 | 30 | 31 | 34 | 35 | 36 | 37 | 40 | 41 | 42 | 43 | 48 | 49 |
Locality Name: 32 | 33 |
Description: 38 | 39 |
44 | 45 |   46 | 47 |
50 |
51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /themes/classic-theme/templates/locality/Main.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | inetOrgPerson: Main Tab 4 | 10 | 11 | 12 |
13 | 14 | 15 | 26 | 27 |
16 |

17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |

locality

25 |
28 | 29 | 30 | 31 | 34 | 35 | 36 | 37 | 40 | 41 | 42 | 43 | 48 | 49 |
Locality Name: 32 | 33 |
Description: 38 | 39 |
44 | 45 |   46 | 47 |
50 |
51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /src/com/ca/commons/security/cert/extensions/ExtendedKeyUsage.java: -------------------------------------------------------------------------------- 1 | 2 | package com.ca.commons.security.cert.extensions; 3 | 4 | import com.ca.commons.security.asn1.*; 5 | 6 | /** 7 | *
 8 |  * ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId
 9 |  *
10 |  * KeyPurposeId ::= OBJECT IDENTIFIER
11 |  *
12 |  * serverAuth (1 3 6 1 5 5 7 3 1) -- TLS Web server authentication
13 |  * clientAuth (1 3 6 1 5 5 7 3 2) -- TLS Web client authentication
14 |  * codeSigning (1 3 6 1 5 5 7 3 3) -- Code signing
15 |  * emailProtection (1 3 6 1 5 5 7 3 4) -- E-mail protection
16 |  * ipsecEndSystem (1 3 6 1 5 5 7 3 5) -- IP security end system
17 |  * ipsecTunnel (1 3 6 1 5 5 7 3 6) -- IP security tunnel termination
18 |  * ipsecUser (1 3 6 1 5 5 7 3 7) -- IP security user
19 |  * timeStamping (1 3 6 1 5 5 7 3 8) -- Timestamping
20 |  * OCSP Signing (1 3 6 1 5 5 7 3 9) -- OCSP Signing
21 |  * smartCard Logon (1 3 6 1 4 1 311 20 2 2) -- Smart Card Logon
22 |  * 
23 | * 24 | * @author vbui 25 | */ 26 | public class ExtendedKeyUsage implements V3Extension 27 | { 28 | String value = null; 29 | 30 | public void init(ASN1Object asn1object) throws Exception 31 | { 32 | if (!asn1object.isASN1Type(ASN1Type.SEQUENCE)) 33 | throw new Exception("Wrong ASN.1 type for ExtendedKeyUsage"); 34 | 35 | for (int i = 0; i < asn1object.size(); i++) 36 | { 37 | Object pur = asn1object.getComponent(i).getValue(); 38 | if ( pur instanceof String ) { // if not, it's not in table ! 39 | String spur = (String) pur; 40 | spur = ASN1OID.getName(spur); 41 | if (spur != null) { 42 | if (value == null) 43 | value = spur; 44 | else 45 | value = value + "\n" + spur; 46 | } 47 | } 48 | } 49 | } 50 | 51 | public String toString() 52 | { 53 | return value; 54 | } 55 | } 56 | 57 | -------------------------------------------------------------------------------- /templates/locality/other.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | inetOrgPerson: Other Tab 4 | 10 | 11 | 12 |
13 | 14 | 15 | 26 | 27 | 28 | 29 | 32 | 33 | 34 | 35 | 38 | 39 | 40 | 41 | 48 | 49 |
16 |

17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |

locality

25 |
See Also: 30 | 31 |
Search Guide: 36 | 37 |
42 |
43 | 44 |   45 | 46 |
47 |
50 |
51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /themes/classic-theme/templates/locality/other.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | inetOrgPerson: Other Tab 4 | 10 | 11 | 12 |
13 | 14 | 15 | 26 | 27 | 28 | 29 | 32 | 33 | 34 | 35 | 38 | 39 | 40 | 41 | 48 | 49 |
16 |

17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |

locality

25 |
See Also: 30 | 31 |
Search Guide: 36 | 37 |
42 |
43 | 44 |   45 | 46 |
47 |
50 |
51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /src/com/ca/commons/security/cert/extensions/KeyUsage.java: -------------------------------------------------------------------------------- 1 | 2 | package com.ca.commons.security.cert.extensions; 3 | 4 | import com.ca.commons.security.asn1.*; 5 | 6 | /** 7 | *
 8 |  * KeyUsage ::= BIT STRING
 9 |  * {
10 |  *     digitalSignature        (0),
11 |  *     nonRepudiation          (1),
12 |  *     keyEncipherment         (2),
13 |  *     dataEncipherment        (3),
14 |  *     keyAgreement            (4),
15 |  *     keyCertSign             (5),
16 |  *     cRLSign                 (6),
17 |  *     encipherOnly            (7),
18 |  *     decipherOnly            (8) }
19 |  * 
20 | * 21 | * @author vbui 22 | */ 23 | public class KeyUsage implements V3Extension 24 | { 25 | String value = null; 26 | 27 | public void init(ASN1Object asn1object) throws Exception 28 | { 29 | if (!asn1object.isASN1Type(ASN1Type.BIT_STRING)) 30 | throw new Exception("Wrong ASN.1 type for KeyUsage"); 31 | 32 | byte[] o = (byte[]) asn1object.getValue(); 33 | 34 | StringBuffer buff = new StringBuffer(); 35 | 36 | if ((o[1] & (byte)0x80) != 0) 37 | buff.append("digitalSignature, "); 38 | if ((o[1] & (byte)0x40) != 0) 39 | buff.append("nonRepudiation, "); 40 | if ((o[1] & (byte)0x20) != 0) 41 | buff.append("keyEncipherment, "); 42 | if ((o[1] & (byte)0x10) != 0) 43 | buff.append("dataEncipherment, "); 44 | if ((o[1] & (byte)0x08) != 0) 45 | buff.append("keyAgreement, "); 46 | if ((o[1] & (byte)0x04) != 0) 47 | buff.append("keyCertSign, "); 48 | if ((o[1] & (byte)0x02) != 0) 49 | buff.append("cRLSign, "); 50 | if ((o[1] & (byte)0x01) != 0) 51 | buff.append("encipherOnly, "); 52 | if ((o[0] & (byte)0x80) != 0) // ?? 53 | buff.append("decipherOnly, "); 54 | 55 | value = buff.toString(); 56 | if (value.endsWith(", ")) 57 | value = value.substring(0, value.length() - 2); 58 | } 59 | 60 | public String toString() 61 | { 62 | return value; 63 | } 64 | } 65 | 66 | -------------------------------------------------------------------------------- /src/com/ca/commons/jndi/BasicOpsTest.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by IntelliJ IDEA. 3 | * User: betch01 4 | * Date: Dec 3, 2002 5 | * Time: 12:10:04 PM 6 | * To change this template use Options | File Templates. 7 | */ 8 | package com.ca.commons.jndi; 9 | 10 | import junit.framework.*; 11 | 12 | public class BasicOpsTest extends TestCase 13 | { 14 | public BasicOpsTest(String name) 15 | { 16 | super(name); 17 | } 18 | 19 | public static Test suite() 20 | { 21 | return new TestSuite(BasicOpsTest.class); 22 | } 23 | 24 | public static void main (String[] args) 25 | { 26 | System.out.println("Running basic ops test"); 27 | junit.textui.TestRunner.run(suite()); 28 | } 29 | 30 | /* 31 | // requires test ldap server to run 32 | public static void testSlash() throws NamingException 33 | { 34 | 35 | String ldapServerURL = "ldap://betch01:19389"; 36 | 37 | System.out.println("Running slash test"); 38 | 39 | ConnectionData con = new ConnectionData(); 40 | con.setURL(ldapServerURL); 41 | BasicOps ops = new BasicOps(con); 42 | 43 | NameParser nameParser = ops.getContext().getNameParser(""); 44 | NamingEnumeration bloop = ops.list("o=Democorp,c=au"); 45 | while (bloop.hasMoreElements()) 46 | { 47 | SearchResult result = (SearchResult)bloop.nextElement(); 48 | String name = result.getName(); 49 | System.out.println("\n1: " + name); 50 | System.out.println("2: " + new CompositeName(name).get(0)); 51 | String ldapString = new CompositeName(name).get(0); 52 | Name realName = ops.getContext().getNameParser("").parse(ldapString); 53 | System.out.println("3: " + realName.toString()); 54 | } 55 | } 56 | */ 57 | 58 | public void testStuff() 59 | { 60 | } 61 | 62 | } 63 | -------------------------------------------------------------------------------- /src/com/ca/jndiproviders/dsml/DsmlParser.java: -------------------------------------------------------------------------------- 1 | package com.ca.jndiproviders.dsml; 2 | 3 | import com.ca.commons.naming.DN; 4 | 5 | import javax.naming.*; 6 | import java.util.logging.Logger; 7 | import java.util.logging.Level; 8 | 9 | /** 10 | * This code lovingly written by Chris. 11 | */ 12 | public class DsmlParser implements NameParser 13 | { 14 | 15 | private static Logger log = Logger.getLogger(DsmlParser.class.getName()); 16 | // private static Logger log = Logger.getLogger("com.ca.jndiproviders.dsml"); 17 | 18 | /** 19 | * Default DSML parser for general use 20 | */ 21 | public static final DsmlParser parser = new DsmlParser(); 22 | 23 | // Debug 24 | { 25 | log.setLevel(Level.FINE); 26 | } 27 | 28 | /** 29 | * Parses a name into its components. DSML names are 30 | * simply LDAP names, and this parser returns a com.ca.commons.naming.DN object. 31 | * It does not support 32 | * 33 | * @param name The non-null string name to parse. 34 | * @return A non-null parsed form of the name using the naming convention 35 | * of this parser. 36 | * @throws javax.naming.InvalidNameException 37 | * If name does not conform to 38 | * syntax defined for the namespace. 39 | * @throws javax.naming.NamingException If a naming exception was encountered. 40 | */ 41 | 42 | public Name parse(String name) throws NamingException 43 | { 44 | DN newDN = new DN(name); 45 | if (newDN.error()) 46 | throw newDN.getNamingException(); 47 | return newDN; 48 | } 49 | 50 | /** 51 | * Empty constructor. Use if you don't want to use the static 'parser' object (e.g. 52 | * for thread safety reasons). 53 | */ 54 | public DsmlParser() 55 | { 56 | log.log(Level.FINE, "creating DsmlParser"); 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/editor/cacertificateeditor.java: -------------------------------------------------------------------------------- 1 | /** 2 | * All pluggable editors must be in this package 3 | */ 4 | 5 | package com.ca.directory.jxplorer.editor; 6 | 7 | import com.ca.commons.security.cert.*; 8 | import com.ca.commons.security.cert.CertViewer; 9 | import com.ca.commons.cbutil.*; 10 | 11 | import java.awt.Frame; 12 | import java.security.cert.X509Certificate; 13 | import java.util.Arrays; 14 | 15 | /** 16 | * Cerrtificate Editor. 17 | * Allows user to enter a masked binary password. 18 | */ 19 | 20 | public class cacertificateeditor implements abstractbinaryeditor 21 | { 22 | Frame owner; 23 | 24 | public cacertificateeditor(Frame owner) 25 | { 26 | this.owner = owner; 27 | } 28 | 29 | /** 30 | * Uses the static editCertificate method in CertViewer to 31 | * display (and potentially edit) the certificate. 32 | */ 33 | 34 | public void setValue(editablebinary editMe) 35 | { 36 | byte[] data = editMe.getValue(); 37 | 38 | CertViewer.CertAndFileName returnVal = null; 39 | 40 | try 41 | { 42 | returnVal = CertViewer.editCertificate(owner, data); 43 | } 44 | catch (Exception e) 45 | { 46 | CBUtility.error(CBIntText.get("Error reading certificate."), e); 47 | } 48 | 49 | X509Certificate cert = null; 50 | 51 | if(returnVal != null) //TE: throws an exception if this is null....bug 3176. 52 | cert = returnVal.cert; 53 | 54 | if (cert != null) 55 | { 56 | try 57 | { 58 | byte[] newData = cert.getEncoded(); 59 | if (Arrays.equals(newData, data) == false) 60 | editMe.setValue(newData); 61 | } 62 | catch(Exception e) 63 | { 64 | CBUtility.error(CBIntText.get("Error: unable to modify certificate."), e); 65 | } 66 | } 67 | } 68 | } -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/editor/usercertificateeditor.java: -------------------------------------------------------------------------------- 1 | /** 2 | * All pluggable editors must be in this package 3 | */ 4 | 5 | package com.ca.directory.jxplorer.editor; 6 | 7 | import com.ca.commons.security.cert.*; 8 | import com.ca.commons.security.cert.CertViewer; 9 | import com.ca.commons.cbutil.*; 10 | 11 | import java.awt.Frame; 12 | import java.security.cert.X509Certificate; 13 | import java.util.Arrays; 14 | 15 | /** 16 | * Cerrtificate Editor. 17 | * Allows user to enter a masked binary password. 18 | */ 19 | 20 | public class usercertificateeditor implements abstractbinaryeditor 21 | { 22 | Frame owner; 23 | 24 | public usercertificateeditor(Frame owner) 25 | { 26 | this.owner = owner; 27 | } 28 | 29 | /** 30 | * Uses the static editCertificate method in CertViewer to 31 | * display (and potentially edit) the certificate. 32 | */ 33 | 34 | public void setValue(editablebinary editMe) 35 | { 36 | byte[] data = editMe.getValue(); 37 | 38 | CertViewer.CertAndFileName returnVal = null; 39 | 40 | try 41 | { 42 | returnVal = CertViewer.editCertificate(owner, data); 43 | } 44 | catch (Exception e) 45 | { 46 | CBUtility.error(CBIntText.get("Error reading certificate."), e); 47 | } 48 | 49 | X509Certificate cert = null; 50 | 51 | if(returnVal != null) //TE: throws an exception if this is null....bug 3176. 52 | cert = returnVal.cert; 53 | 54 | if (cert != null) 55 | { 56 | try 57 | { 58 | byte[] newData = cert.getEncoded(); 59 | if (Arrays.equals(newData, data) == false) 60 | editMe.setValue(newData); 61 | } 62 | catch(Exception e) 63 | { 64 | CBUtility.error(CBIntText.get("Error: unable to modify certificate."), e); 65 | } 66 | } 67 | } 68 | } -------------------------------------------------------------------------------- /src/org/apache/axis/utils/tcpinterceptor.properties: -------------------------------------------------------------------------------- 1 | # Translation instructions. 2 | # 1. Each message line is of the form key=value. Translate the value, DO NOT translate the key. 3 | # 2. The messages may contain arguments that will be filled in by the runtime. These are of the form: {0}, {1}, etc. These must appear as is in the message, though the order may be changed to support proper language syntax. 4 | # 3. If a single quote character is to appear in the resulting message, it must appear in this file as two consecutive single quote characters. 5 | # 4. Lines beginning with "#" (like this one) are comment lines and may contain translation instructions. They need not be translated unless your translated file, rather than this file, will serve as a base for other translators. 6 | 7 | actAs00=Act as a... 8 | active00=Active 9 | add00=Add 10 | admin00=Admin 11 | close00=Close 12 | done00=Done 13 | resp00=Resp 14 | req00=Req 15 | error00=Error 16 | host00=Host: 17 | holdRequest=Hold Request 18 | holeResponse=Hold Response 19 | hostname00=Hostname 20 | listener00=Listener 21 | listenPort00=Listen Port # 22 | listenPort01=Listen Port: 23 | mostRecent00=Most Recent 24 | newTCP00=Create a new TCP/IP Monitor... 25 | options00=Options 26 | port00=Port # 27 | port01=Port 28 | port02=Port: 29 | proxy00=Proxy 30 | proxySupport00=HTTP Proxy Support 31 | removeAll00=Remove All 32 | removeSelected00=Remove Selected 33 | request00=Request... 34 | request01=Request 35 | requestHost00=Request Host 36 | resend00=Resend 37 | response00=Response 38 | save00=Save 39 | send=Send 40 | start00=Start 41 | state00=State 42 | stop00=Stop 43 | switch00=Switch Layout 44 | targetHost00=Target Host 45 | targetHost01=Target Host: 46 | targetHostname00=Target Hostname 47 | targetPort00=Target Port # 48 | targetPort01=Target Port: 49 | tcpmon00=TCPMonitor 50 | tcpint00=TCPInterceptor 51 | time00=Time 52 | usage00=Usage: 53 | wait00=Waiting for Connection... 54 | wait01=Waiting for Connection 55 | 56 | # NOTE: in xmlFormat00, do not translate "XML" 57 | xmlFormat00=XML Format 58 | -------------------------------------------------------------------------------- /src/com/ca/commons/cbutil/CBButton.java: -------------------------------------------------------------------------------- 1 | package com.ca.commons.cbutil; 2 | 3 | import javax.swing.*; 4 | import java.awt.*; 5 | import java.awt.event.MouseAdapter; 6 | import java.awt.event.MouseEvent; 7 | 8 | 9 | /** 10 | * Simple class that extends JButton to give the button the affact of a rollover. 11 | * On mouse entered, the text changes colour to blue. 12 | * 13 | * @author Trudi. 14 | */ 15 | 16 | public class CBButton extends JButton 17 | { 18 | 19 | 20 | /** 21 | * Constructor that calls CBButton(String text, String tooltip, Icon icon) with a null icon. 22 | * 23 | * @param text the button label. 24 | * @param tooltip the button tooltip. 25 | */ 26 | 27 | public CBButton(String text, String tooltip) 28 | { 29 | this(text, tooltip, null); 30 | } 31 | 32 | 33 | /** 34 | * Constructor that calls CBButton(String text, String tooltip, Icon icon) with a null icon. 35 | * 36 | * @param text the button label. 37 | * @param icon the icon to put on the button. 38 | */ 39 | 40 | public CBButton(String text, Icon icon) 41 | { 42 | this(text, "", icon); 43 | } 44 | 45 | 46 | /** 47 | * Constructor that makes the button. It adds the tooltip and a mouse listener 48 | * to create the rollover affect. 49 | * 50 | * @param text the button label. 51 | * @param tooltip the button tooltip. 52 | * @param icon the icon to put on the button. 53 | */ 54 | 55 | public CBButton(String text, String tooltip, Icon icon) 56 | { 57 | super(text, icon); 58 | 59 | if (tooltip != null) 60 | setToolTipText(tooltip); 61 | 62 | addMouseListener(new MouseAdapter() 63 | { 64 | public void mouseEntered(MouseEvent e) 65 | { 66 | setForeground(Color.blue); 67 | } 68 | 69 | public void mouseExited(MouseEvent e) 70 | { 71 | setForeground(Color.black); 72 | } 73 | }); 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /src/com/ca/commons/jndi/JNDIOpsTest.java: -------------------------------------------------------------------------------- 1 | package com.ca.commons.jndi; 2 | 3 | import junit.framework.*; 4 | 5 | 6 | 7 | 8 | /** 9 | * Test class for creating LDAP filters from JAXB objects. 10 | * It passes a DSML XML request to the LdapFilter class 11 | * and compares the result with the expected LDAP filter. 12 | * @author Chris. 13 | */ 14 | 15 | public class JNDIOpsTest extends TestCase 16 | { 17 | 18 | public JNDIOpsTest(String name) 19 | { 20 | super(name); 21 | } 22 | 23 | 24 | public static Test suite() 25 | { 26 | return new TestSuite(JNDIOpsTest.class); 27 | } 28 | 29 | 30 | 31 | protected void setUp() 32 | { 33 | } 34 | 35 | 36 | 37 | public static void main(String[] args) 38 | { 39 | junit.textui.TestRunner.run(suite()); 40 | } 41 | 42 | 43 | 44 | /** 45 | * Test examples from RFC 2252 46 | */ 47 | public void testURLEncoding() 48 | { 49 | assertEquals("ldap://localhost:19389", JNDIOps.makeServerURL("ldap://localhost:19389", null)); 50 | assertEquals("ldap://localhost:19389", JNDIOps.makeServerURL("ldap://localhost:19389", "")); 51 | assertEquals("ldap:///o=University%20of%20Michigan,c=US", JNDIOps.makeServerURL("ldap://", "o=University of Michigan,c=US")); 52 | assertEquals("ldap:///o=University%20of%20Michigan,c=US", JNDIOps.makeServerURL("ldap:///","o=University of Michigan,c=US" )); 53 | assertEquals("ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=US", JNDIOps.makeServerURL("ldap://ldap.itd.umich.edu", "o=University of Michigan,c=US")); 54 | assertEquals("ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=US", JNDIOps.makeServerURL("ldap://ldap.itd.umich.edu/","o=University of Michigan,c=US" )); 55 | assertEquals("ldap://ldap.question.com/o=Question%3f,c=US", JNDIOps.makeServerURL("ldap://ldap.question.com", "o=Question?,c=US")); 56 | assertEquals("ldap:///o=%20%3c%3e%3f%23%25%7b%7d%7c%5c%5e%7e%5b%5d%27", JNDIOps.makeServerURL("ldap:///", "o= <>\"#%{}|\\^~[]'")); 57 | } 58 | 59 | } -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/search/TextFilterPanel.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer.search; 2 | 3 | import javax.swing.*; 4 | 5 | import com.ca.commons.cbutil.*; 6 | 7 | 8 | 9 | /** 10 | * A basic panel that has a text area which the value can be set and 11 | * retreived. Currently used in the search dialog for the text input 12 | * of LDAP filters. 13 | * . 14 | */ 15 | 16 | class TextFilterPanel extends CBPanel 17 | { 18 | JTextArea area; 19 | 20 | 21 | 22 | /** 23 | * Constructs a panel with a text area that is currently used by the search dialog. 24 | * . 25 | */ 26 | 27 | public TextFilterPanel() 28 | { 29 | addln(new JLabel(" ")); //TE: padding at top. 30 | makeHeavy(); 31 | area = new JTextArea(); 32 | area.setLineWrap(true); //TE: allows line wrapping. 33 | add(new JScrollPane(area, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER),1,1); //TE: scroll pane that scrolls vertically on need and never scrolls horizontally. 34 | } 35 | 36 | 37 | 38 | /** 39 | * Returns the value from the text area. 40 | * @return the string value (hopefully a valid filter) from the text area. 41 | * . 42 | */ 43 | 44 | public String getFilter() 45 | { 46 | return area.getText(); 47 | } 48 | 49 | 50 | 51 | /** 52 | * Displays the given string filter in the text area. 53 | * @param filter the string filter to display in the text area. 54 | * . 55 | */ 56 | 57 | public void displayFilter(String filter) 58 | { 59 | area.setText(filter); 60 | } 61 | 62 | 63 | 64 | /** 65 | * This basically only checks if there is a value in the text area. It doesn't 66 | * do a syntax check of the LDAP filter...we leave that up to the dsa. 67 | * @return true if there is a value (if after a string trim the length is greater than zero), 68 | * false otherwise. 69 | * . 70 | */ 71 | 72 | public boolean isFilterValid() 73 | { 74 | String filter = area.getText(); 75 | 76 | if (filter.trim().length() <=0) 77 | return false; 78 | 79 | return true; 80 | } 81 | } -------------------------------------------------------------------------------- /src/com/ca/commons/security/cert/extensions/PrivateKeyUsagePeriod.java: -------------------------------------------------------------------------------- 1 | 2 | package com.ca.commons.security.cert.extensions; 3 | 4 | import com.ca.commons.security.asn1.*; 5 | 6 | import java.util.Date; 7 | import java.text.SimpleDateFormat; 8 | 9 | /** 10 | *
11 |  * PrivateKeyUsagePeriod ::= SEQUENCE {
12 |  *      notBefore       [0]     GeneralizedTime OPTIONAL,
13 |  *      notAfter        [1]     GeneralizedTime OPTIONAL }
14 |  * 
15 | * 16 | * @author vbui 17 | */ 18 | public class PrivateKeyUsagePeriod implements V3Extension 19 | { 20 | String value = null; 21 | 22 | public void init(ASN1Object asn1object) throws Exception 23 | { 24 | if (!asn1object.isASN1Type(ASN1Type.SEQUENCE)) 25 | throw new Exception("Wrong ASN.1 type for PrivateKeyUsagePeriod"); 26 | 27 | SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss"); 28 | SimpleDateFormat printer = new SimpleDateFormat("MMM d, yyyy h:mm:ss a"); 29 | 30 | String dateString = null; 31 | 32 | for (int i = 0; i < asn1object.size(); i++) 33 | { 34 | ASN1Object nextComp = (ASN1Object) asn1object.getComponent(i).getValue(); 35 | 36 | if (nextComp.isASN1Type(ASN1Type.OCTET_STRING) && i == 0) 37 | { 38 | String notBefore = new String((byte[])nextComp.getValue()); 39 | try 40 | { 41 | Date hotdate = formatter.parse(notBefore); 42 | value = "Not Before: " + printer.format(hotdate); 43 | } 44 | catch (Exception ex) 45 | { 46 | ex.printStackTrace(); 47 | value = "Not Before: invalid date"; 48 | } 49 | } 50 | else if (nextComp.isASN1Type(ASN1Type.OCTET_STRING) && i == 1) 51 | { 52 | String notAfter = new String((byte[])nextComp.getValue()); 53 | try 54 | { 55 | Date hotdate = formatter.parse(notAfter); 56 | value = value + "\nNot After: " + printer.format(hotdate); 57 | } 58 | catch (Exception ex) 59 | { 60 | ex.printStackTrace(); 61 | value = value + "\nNot After: invalid date"; 62 | } 63 | } 64 | } 65 | } 66 | 67 | public String toString() 68 | { 69 | return value; 70 | } 71 | } 72 | 73 | -------------------------------------------------------------------------------- /src/com/ca/commons/security/cert/extensions/AuthorityInfoAccess.java: -------------------------------------------------------------------------------- 1 | 2 | package com.ca.commons.security.cert.extensions; 3 | 4 | import com.ca.commons.security.asn1.*; 5 | 6 | import java.util.Hashtable; 7 | 8 | /** 9 | *
10 |  * AuthorityInfoAccessSyntax  ::=
11 |  *          SEQUENCE SIZE (1..MAX) OF AccessDescription
12 |  *
13 |  * AccessDescription  ::=  SEQUENCE {
14 |  *          accessMethod          OBJECT IDENTIFIER,
15 |  *          accessLocation        GeneralName  }
16 |  *
17 |  * On-line Certificate Status Protocol (1 3 6 1 5 5 7 48 1)
18 |  * 
19 | * 20 | * @author vbui 21 | */ 22 | public class AuthorityInfoAccess implements V3Extension 23 | { 24 | String value = null; 25 | 26 | static Hashtable acc = new Hashtable(); 27 | 28 | static 29 | { 30 | acc.put(ASN1OID.authInfoAccessOCSP, "On-line Certificate Status Protocol"); 31 | } 32 | 33 | public void init(ASN1Object asn1object) throws Exception 34 | { 35 | if (!asn1object.isASN1Type(ASN1Type.SEQUENCE)) 36 | throw new Exception("Wrong ASN.1 type for AuthorityInfoAccess"); 37 | 38 | for (int i = 0; i < asn1object.size(); i++) 39 | { 40 | if (!(asn1object.getComponent(i) instanceof Sequence)) 41 | throw new Exception("AuthorityInfoAccess component is not sequence"); 42 | 43 | Sequence seq = (Sequence) asn1object.getComponent(i); 44 | for (int j = 0; j < seq.size(); j++) 45 | { 46 | ASN1Object nextComp = seq.getComponent(j); 47 | 48 | if (j == 0) 49 | { 50 | String accMethod = (String)acc.get(nextComp.getValue()); 51 | if (accMethod == null) accMethod = "Unidentified"; 52 | 53 | if (value == null) 54 | value = "Access Method: " + accMethod; 55 | else 56 | value = value + "\n" + "Access Method: " + accMethod; 57 | } 58 | else if (j == 1) 59 | { 60 | if (value == null) 61 | value = IssuerAltName.getGNameString(nextComp); 62 | else 63 | value = value + "\n" + IssuerAltName.getGNameString(nextComp); 64 | } 65 | } 66 | } 67 | } 68 | 69 | public String toString() 70 | { 71 | return value; 72 | } 73 | } 74 | 75 | -------------------------------------------------------------------------------- /src/com/ca/jndiproviders/dsml/DsmlCtxFactory.java: -------------------------------------------------------------------------------- 1 | package com.ca.jndiproviders.dsml; 2 | 3 | import javax.naming.spi.InitialContextFactory; 4 | import javax.naming.Context; 5 | import javax.naming.NamingException; 6 | import java.util.Hashtable; 7 | import java.util.logging.*; 8 | 9 | /** 10 | * This code lovingly written by Chris. 11 | */ 12 | public class DsmlCtxFactory implements InitialContextFactory 13 | { 14 | 15 | private static Logger log = Logger.getLogger(DsmlContext.class.getName()); 16 | // private static Logger log = Logger.getLogger("com.ca.jndiproviders.dsml"); 17 | 18 | /*// Debug 19 | { 20 | log.setLevel(Level.FINE); 21 | ConsoleHandler ch = new ConsoleHandler(); 22 | ch.setLevel(Level.FINEST); 23 | log.addHandler(ch); 24 | log.info("com.ca.jndiproviders.dsml log setup"); 25 | } 26 | */ 27 | 28 | /** 29 | * Creates an Initial Context for beginning name resolution. 30 | * Special requirements of this context are supplied 31 | * using environment. 32 | *

33 | * The environment parameter is owned by the caller. 34 | * The implementation will not modify the object or keep a reference 35 | * to it, although it may keep a reference to a clone or copy. 36 | * 37 | * @param environment The possibly null environment 38 | * specifying information to be used in the creation 39 | * of the initial context. 40 | * @return A non-null initial context object that implements the Context 41 | * interface. 42 | * @throws javax.naming.NamingException If cannot create an initial context. 43 | */ 44 | public Context getInitialContext(Hashtable environment) throws NamingException 45 | { 46 | log.fine("CREATING NEW CA DSML CONTEXT..."); 47 | 48 | // sort out any pre creation setup (e.g. setting up SOAP connection etc?) 49 | 50 | DsmlContext newContext = new DsmlContext((Hashtable)environment.clone()); 51 | 52 | log.fine( "...CREATED NEW CA DSML CONTEXT"); 53 | 54 | return newContext; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/com/ca/commons/security/cert/extensions/NameConstraints.java: -------------------------------------------------------------------------------- 1 | 2 | package com.ca.commons.security.cert.extensions; 3 | 4 | import com.ca.commons.security.asn1.*; 5 | 6 | /** 7 | *

 8 |  * NameConstraints ::= SEQUENCE {
 9 |  *      permittedSubtrees       [0]     GeneralSubtrees OPTIONAL,
10 |  *      excludedSubtrees        [1]     GeneralSubtrees OPTIONAL }
11 |  *
12 |  * GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
13 |  *
14 |  * GeneralSubtree ::= SEQUENCE {
15 |  *      base                    GeneralName,
16 |  *      minimum         [0]     BaseDistance DEFAULT 0,
17 |  *      maximum         [1]     BaseDistance OPTIONAL }
18 |  *
19 |  * BaseDistance ::= INTEGER (0..MAX)
20 |  * 
21 | * 22 | * @author vbui 23 | */ 24 | public class NameConstraints implements V3Extension 25 | { 26 | String value = null; 27 | 28 | public void init(ASN1Object asn1object) throws Exception 29 | { 30 | if (!asn1object.isASN1Type(ASN1Type.SEQUENCE)) 31 | throw new Exception("Wrong ASN.1 type for NameConstraints"); 32 | 33 | if (asn1object.size() >= 1) 34 | { 35 | value = "permittedSubtrees: " + getSubtrees(asn1object.getComponent(0)); 36 | } 37 | 38 | if (asn1object.size() >= 2) 39 | { 40 | value = value + "\nexcludedSubtrees: " + getSubtrees(asn1object.getComponent(0)); 41 | } 42 | } 43 | 44 | public String getSubtrees(ASN1Object obj) 45 | { 46 | StringBuffer buff = new StringBuffer(); 47 | 48 | for (int i = 0; i < obj.size(); i++) 49 | { 50 | buff.append("\n generalSubtree"); 51 | ASN1Object gsubtree = obj.getComponent(i); 52 | if (gsubtree.size() >= 1) 53 | { 54 | buff.append("\n\tbase: " + IssuerAltName.getGNameString(gsubtree.getComponent(0))); 55 | } 56 | if (gsubtree.size() >= 2) 57 | { 58 | buff.append("\n\tminimum: " + gsubtree.getComponent(1).getValue()); 59 | } 60 | if (gsubtree.size() >= 3) 61 | { 62 | buff.append("\n\tmaximum: " + gsubtree.getComponent(2).getValue()); 63 | } 64 | } 65 | 66 | return buff.toString(); 67 | } 68 | 69 | public String toString() 70 | { 71 | return value; 72 | } 73 | } 74 | 75 | -------------------------------------------------------------------------------- /src/com/ca/commons/naming/NameUtilityTest.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | 5 | 6 | package com.ca.commons.naming; 7 | 8 | import junit.framework.*; 9 | import javax.naming.NamingException; 10 | 11 | public class NameUtilityTest extends TestCase 12 | { 13 | 14 | private static final String myLdapDN = "\\e6\\90\\ad\\e9\\85\\8d\\e5\\90\\b8\\e6\\94\\b6\\e5\\a4\\96\\e8\\b5\\84"; 15 | private static final String myUnicode = "\u642d\u914d\u5438\u6536\u5916\u8d44"; 16 | 17 | private static final String finalSpaceTest = "bloop\\ "; 18 | private static final String finalSpaceTestOutcome = "bloop "; 19 | private static final String badFinalSpace = "bloop\\"; 20 | private static final String badFinalSpaceOutcome = "bloop "; 21 | 22 | private static final String specialCharRDNVal = "jon\\,fred\\+erick (\\\"\\\\\")" ; 23 | 24 | public NameUtilityTest(String name) 25 | { 26 | super(name); 27 | } 28 | 29 | public static Test suite() 30 | { 31 | return new TestSuite(NameUtilityTest.class); 32 | } 33 | 34 | public static void main (String[] args) 35 | { 36 | junit.textui.TestRunner.run(suite()); 37 | } 38 | 39 | 40 | public void testCodec() throws NamingException 41 | { 42 | String unicode1 = NameUtility.unescape(myLdapDN); 43 | assertEquals("testing escaped UTF8 to unicode conversion", unicode1, myUnicode); 44 | 45 | String temp = NameUtility.unescape(specialCharRDNVal); 46 | String backAgain = NameUtility.escape(temp); 47 | 48 | assertEquals("testing escaping/unescaping of special rfc 2253 characters", specialCharRDNVal, backAgain); 49 | } 50 | 51 | public void testFinalSpace() throws NamingException 52 | { 53 | String temp = NameUtility.unescape(finalSpaceTest); 54 | assertEquals("Test that a final escaped space is decoded o.k.", finalSpaceTestOutcome, temp); 55 | 56 | temp = NameUtility.escape(temp); 57 | assertEquals("Test that a final escaped space is encoded o.k.", finalSpaceTest, temp); 58 | 59 | temp = NameUtility.unescape(badFinalSpace); 60 | assertEquals("Test that a malformed final slash is encoded to a slash and a space", badFinalSpaceOutcome, temp); 61 | 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/com/ca/commons/security/cert/extensions/NetscapeCertType.java: -------------------------------------------------------------------------------- 1 | 2 | package com.ca.commons.security.cert.extensions; 3 | 4 | import com.ca.commons.security.asn1.*; 5 | 6 | /** 7 | *
 8 |  * NetscapeCertType ::= BIT STRING
 9 |  * {
10 |  * 		bit-0 SSL client - this cert is certified for SSL client authentication use
11 |  * 		bit-1 SSL server - this cert is certified for SSL server authentication use
12 |  * 		bit-2 S/MIME - this cert is certified for use by clients (New in PR3)
13 |  * 		bit-3 Object Signing - this cert is certified for signing objects such as Java applets and plugins(New in PR3)
14 |  * 		bit-4 Reserved - this bit is reserved for future use
15 |  * 		bit-5 SSL CA - this cert is certified for issuing certs for SSL use
16 |  * 		bit-6 S/MIME CA - this cert is certified for issuing certs for S/MIME use (New in PR3)
17 |  * 		bit-7 Object Signing CA - this cert is certified for issuing certs for Object Signing (New in PR3)
18 |  * }
19 |  * 
20 | * 21 | * @author vbui 22 | */ 23 | public class NetscapeCertType implements V3Extension 24 | { 25 | String value = null; 26 | 27 | public void init(ASN1Object asn1object) throws Exception 28 | { 29 | if (!asn1object.isASN1Type(ASN1Type.BIT_STRING)) 30 | throw new Exception("Wrong ASN.1 type for NetscapeCertType"); 31 | 32 | byte[] o = (byte[]) asn1object.getValue(); 33 | 34 | StringBuffer buff = new StringBuffer(); 35 | 36 | if ((o[1] & (byte)0x80) != 0) 37 | buff.append("SSL client, "); 38 | if ((o[1] & (byte)0x40) != 0) 39 | buff.append("SSL server, "); 40 | if ((o[1] & (byte)0x20) != 0) 41 | buff.append("S/MIME, "); 42 | if ((o[1] & (byte)0x10) != 0) 43 | buff.append("Object Signing, "); 44 | if ((o[1] & (byte)0x08) != 0) 45 | buff.append("Reserved, "); 46 | if ((o[1] & (byte)0x04) != 0) 47 | buff.append("SSL CA, "); 48 | if ((o[1] & (byte)0x02) != 0) 49 | buff.append("S/MIME CA, "); 50 | if ((o[1] & (byte)0x01) != 0) 51 | buff.append("Object Signing CA, "); 52 | 53 | value = buff.toString(); 54 | if (value.endsWith(", ")) 55 | value = value.substring(0, value.length() - 2); 56 | } 57 | 58 | public String toString() 59 | { 60 | return value; 61 | } 62 | } 63 | 64 | -------------------------------------------------------------------------------- /templates/person/Main.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Person: Main Tab 4 | 10 | 11 | 12 |
13 | 14 | 15 | 25 | 26 | 27 | 28 | 31 | 32 | 33 | 34 | 37 | 38 | 39 | 40 | 43 | 44 | 45 | 46 | 49 | 50 | 51 | 52 | 55 | 56 | 57 | 58 | 63 | 64 |
16 |

17 | 18 | 19 | 20 | 21 | 22 |
23 |

Person

24 |
Common Name: 29 | 30 |
Surname: 35 | 36 |
Description: 41 | 42 |
User Password: 47 | 48 |
Telephone Number: 53 | 54 |
59 | 60 |   61 | 62 |
65 |
66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /themes/classic-theme/templates/person/Main.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Person: Main Tab 4 | 10 | 11 | 12 |
13 | 14 | 15 | 25 | 26 | 27 | 28 | 31 | 32 | 33 | 34 | 37 | 38 | 39 | 40 | 43 | 44 | 45 | 46 | 49 | 50 | 51 | 52 | 55 | 56 | 57 | 58 | 63 | 64 |
16 |

17 | 18 | 19 | 20 | 21 | 22 |
23 |

Person

24 |
Common Name: 29 | 30 |
Surname: 35 | 36 |
Description: 41 | 42 |
User Password: 47 | 48 |
Telephone Number: 53 | 54 |
59 | 60 |   61 | 62 |
65 |
66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /licence.txt: -------------------------------------------------------------------------------- 1 | CA Open Source Licence Version 1.0 2 | ================================== 3 | 4 | Copyright (c) 2003 Computer Associates. All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, 10 | this list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. The end-user documentation included with the redistribution, if any, 17 | must include the following acknowledgment: 18 | 19 | "This product includes software developed by 20 | Computer Associates (http://www.ca.com/)." 21 | 22 | Alternately, this acknowledgment may appear in the software itself, if and 23 | wherever such third-party acknowledgments normally appear. 24 | 25 | 4. The name "Computer Associates" must not be used to endorse or promote 26 | products derived from this software without prior written permission. 27 | 28 | 5. Products may not include "Computer Associates" in their name, without prior 29 | written permission of the Computer Associates. 30 | 31 | THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, 32 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 33 | AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 34 | COMPUTER ASSOCIATES OR CONTRIBUTORS TO THE JXPLORER OPEN SOURCE PROJECT BE 35 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 36 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 37 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 38 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 39 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 40 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41 | POSSIBILITY OF SUCH DAMAGE. 42 | 43 | JXWorkBench 44 | =========== 45 | Note that the JXWorkBench commercial licence is separate; see 46 | jxworkbench_licence.txt 47 | 48 | -------------------------------------------------------------------------------- /src/com/ca/commons/naming/LdifFileChooser.java: -------------------------------------------------------------------------------- 1 | package com.ca.commons.naming; 2 | 3 | import com.ca.commons.cbutil.CBFileFilter; 4 | import com.ca.commons.cbutil.CBIntText; 5 | 6 | import javax.swing.*; 7 | import java.awt.*; 8 | import java.awt.event.ActionEvent; 9 | import java.awt.event.ActionListener; 10 | 11 | /** 12 | * This extends the standard JFileChooser class to import ldif files, 13 | * and also to allow for a 'test' button, and to include a new 'TEST_OPTION' 14 | * response to file open requests. 15 | * 16 | * (c) Chris Betts; Pegacat Software (http://pegacat.com) 17 | */ 18 | 19 | public class LdifFileChooser extends javax.swing.JFileChooser implements ActionListener 20 | { 21 | public static int IMPORT_OPTION = 3; 22 | boolean buttonPressed = false; 23 | JDialog dialog; 24 | 25 | public LdifFileChooser(String homeDirectory) 26 | { 27 | super(homeDirectory); 28 | setApproveButtonText("Preview Changes"); 29 | 30 | addChoosableFileFilter(new CBFileFilter(new String[] {"ldif", "ldi"},"Ldif Files (*.ldif, *.ldi)")); 31 | 32 | } 33 | 34 | protected JDialog createDialog(Component parent) throws HeadlessException { 35 | dialog = super.createDialog(parent); 36 | JPanel panel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); 37 | 38 | JButton button = new JButton(CBIntText.get("Import")); 39 | button.setToolTipText(CBIntText.get("Tries to show what changes would be made without writing to the directory")); 40 | button.addActionListener(this); 41 | panel.add(button); 42 | //button.setSelected(true); 43 | 44 | // TODO: unselect import button.... 45 | dialog.add(panel, java.awt.BorderLayout.SOUTH); 46 | dialog.pack(); 47 | setVisible(true); 48 | 49 | return dialog; 50 | } 51 | 52 | public int showOpenDialog(Component parent) 53 | throws HeadlessException 54 | { 55 | int response = super.showOpenDialog(parent); 56 | return (buttonPressed)? IMPORT_OPTION :response; 57 | 58 | } 59 | public void actionPerformed(ActionEvent e) { 60 | buttonPressed = true; 61 | dialog.dispose(); // disposing of the dialog triggers showOpenDialog to end... 62 | } 63 | } -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/event/JXplorerEvent.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer.event; 2 | 3 | import java.util.EventObject; 4 | 5 | /** 6 | * The object that implements the JXplorerListener interface 7 | * gets this JXplorerEvent when the event occurs. 8 | * 9 | * @see JXplorerListener 10 | * 11 | * @author Chris Betts 12 | */ 13 | 14 | public class JXplorerEvent extends EventObject { 15 | 16 | 17 | /** 18 | * The user selected DN being passed back in this event. 19 | * @see #getDN() 20 | */ 21 | 22 | private String DN; 23 | private EventType type; 24 | 25 | 26 | /** 27 | * Constructs a JXplorerEvent object. 28 | * 29 | * @param source the object that originated the event 30 | * @param type the event type 31 | * @param DN the DN 32 | */ 33 | public JXplorerEvent(Object source, EventType type, String DN) 34 | { 35 | super(source); 36 | this.type = type; 37 | this.DN = DN; 38 | } 39 | 40 | 41 | /** 42 | * Returns the current DN. 43 | * 44 | * @return the selected DN (or null if none selected) 45 | */ 46 | public String getDN() { 47 | return DN; 48 | } 49 | 50 | 51 | /** 52 | * Gets the type of event. 53 | * 54 | * @return the type 55 | */ 56 | public EventType getEventType() 57 | { 58 | return type; 59 | } 60 | 61 | 62 | /** 63 | * Defines the ENTERED, EXITED, and ACTIVATED event types, along 64 | * with their string representations, returned by toString(). 65 | */ 66 | public static final class EventType 67 | { 68 | private String typeString; 69 | 70 | private EventType(String s) 71 | { 72 | typeString = s; 73 | } 74 | 75 | /** 76 | * Entered type. 77 | */ 78 | public static final EventType DNSELECTED = new EventType("DNSELECTED"); 79 | 80 | /** 81 | * Converts the type to a string. 82 | * 83 | * @return the string 84 | */ 85 | public String toString() 86 | { 87 | return typeString; 88 | } 89 | 90 | } 91 | 92 | 93 | } -------------------------------------------------------------------------------- /src/com/ca/commons/cbutil/Theme.java: -------------------------------------------------------------------------------- 1 | package com.ca.commons.cbutil; 2 | 3 | import java.io.File; 4 | import java.io.FileInputStream; 5 | import java.io.IOException; 6 | import java.util.Properties; 7 | 8 | public class Theme { 9 | 10 | private static Theme instance; 11 | 12 | public static Theme getInstance() { 13 | if (instance == null) { 14 | instance = new Theme(); 15 | } 16 | return instance; 17 | } 18 | 19 | private String dirHtmlDocs; 20 | private String dirIcons; 21 | private String dirImages; 22 | private String dirTemplates; 23 | 24 | private Theme() { 25 | String localDir = System.getProperty("user.dir") + File.separator; 26 | String theme = findActiveTheme(localDir); 27 | init(localDir, theme); 28 | } 29 | 30 | private String findActiveTheme(String localDir) { 31 | Properties themeProp = new Properties(); 32 | try { 33 | themeProp.load(new FileInputStream(localDir + "themes" + File.separator + "themes.properties")); 34 | } catch (IOException e) { } 35 | String theme = themeProp.getProperty("settings.theme", "classic-theme"); 36 | return theme; 37 | } 38 | 39 | private void init(String localDir, String theme) 40 | { 41 | String themeDirectory = localDir + "themes" + File.separator + theme + File.separator; 42 | 43 | // backward compatibility hack to allow new jar files to be used in old installs (some folks just drop a new jar file in) 44 | File themeLocation = new File(themeDirectory); 45 | if (!themeLocation.exists()) 46 | { 47 | themeDirectory = localDir; 48 | } 49 | 50 | dirHtmlDocs = themeDirectory + "htmldocs" + File.separator; 51 | dirIcons = themeDirectory + "icons" + File.separator; 52 | dirImages = themeDirectory + "images" + File.separator; 53 | dirTemplates = themeDirectory + "templates" + File.separator; 54 | 55 | 56 | } 57 | 58 | public String getDirHtmlDocs() { 59 | return dirHtmlDocs; 60 | } 61 | 62 | public String getDirIcons() { 63 | return dirIcons; 64 | } 65 | 66 | public String getDirImages() { 67 | return dirImages; 68 | } 69 | 70 | public String getDirTemplates() { 71 | return dirTemplates; 72 | } 73 | 74 | } 75 | -------------------------------------------------------------------------------- /src/com/ca/commons/jndi/JndiTools.java: -------------------------------------------------------------------------------- 1 | package com.ca.commons.jndi; 2 | 3 | import com.ca.commons.cbutil.CBBase64; 4 | 5 | import javax.naming.directory.*; 6 | import java.io.IOException; 7 | import java.security.MessageDigest; 8 | import java.util.logging.Level; 9 | import java.util.logging.Logger; 10 | 11 | 12 | /** 13 | * (c) GroupMind Project 14 | * - Dr Christopher Betts 2005 15 | * 16 | * THIS CLASS IS *NOT* PART OF THE ORIGINAL JXPLORER CLASSES IN THIS PACKAGE... 17 | */ 18 | public class JndiTools 19 | { 20 | private static Logger log = Logger.getLogger(JndiTools.class.getName()); 21 | 22 | /* replaced by EntryAttribute class 23 | public static BasicAttribute makeAttribute(String ID, String[] vals) 24 | { 25 | BasicAttribute att = new BasicAttribute(ID); 26 | for (String val : vals) 27 | att.add(val); 28 | return att; 29 | } 30 | */ 31 | 32 | // candidate for replacement by an 'EntryAttributes' class... 33 | public static BasicAttributes makeAttributes(Attribute[] vals) 34 | { 35 | BasicAttributes atts = new BasicAttributes(); 36 | for (Attribute val : vals) 37 | atts.put(val); 38 | return atts; 39 | } 40 | 41 | // Need this to do decent password encoding, once we've got binary atts working... 42 | // protected byte[] getLDAPValueBytes(String s, int type) 43 | public static String shaEncode(String s) 44 | throws IOException 45 | { 46 | try 47 | { 48 | MessageDigest md = MessageDigest.getInstance("sha"); 49 | StringBuffer hexString = new StringBuffer("{sha}"); 50 | 51 | md.reset(); // necessary? 52 | 53 | md.update(s.getBytes("UTF-8")); 54 | 55 | byte[] buff = md.digest(); 56 | 57 | hexString.append(CBBase64.binaryToString(buff)); 58 | return hexString.toString(); 59 | // return hexString.toString().getBytes("UTF-8"); 60 | } 61 | catch (java.security.NoSuchAlgorithmException e) 62 | { 63 | log.log(Level.WARNING, "Unexpected error encoding password ", e); 64 | e.printStackTrace(); 65 | 66 | throw new IOException("internal error encrypting password " + e.getMessage()); 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/editor/largestringeditor.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer.editor; 2 | 3 | import com.ca.commons.cbutil.*; 4 | import javax.swing.*; 5 | import java.awt.*; 6 | 7 | /** 8 | * Creates a simple text editor for displaying very 9 | * large text attributes. 10 | * @author Chris. 11 | */ 12 | public class largestringeditor extends CBDialog 13 | implements abstractstringeditor 14 | { 15 | protected JTextArea area; 16 | protected JScrollPane scroll; 17 | protected editablestring editableText; 18 | 19 | /** 20 | * Construct the GUI, but do not initialise it with data (yet). 21 | */ 22 | public largestringeditor(Frame owner, editablestring text) 23 | { 24 | super(owner, CBIntText.get("Simple Text Editor"), null); 25 | setModal(true); 26 | 27 | area = new JTextArea(); 28 | area.setLineWrap(true); //TE: wrap the lines. 29 | 30 | scroll = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); //TE: no horizontal scroll. 31 | scroll.setViewport(new CBViewport()); 32 | scroll.getViewport().setView(area); 33 | scroll.setPreferredSize(new Dimension(310,60)); 34 | 35 | makeHeavy(); 36 | addln(scroll); 37 | 38 | setSize(500, 400); 39 | 40 | setStringValue(text); 41 | } 42 | 43 | /** 44 | * Sets the attribute value in the text area of the attribute editor. 45 | * @param originalText 46 | */ 47 | public void setStringValue(editablestring originalText) 48 | { 49 | editableText = originalText; 50 | area.setText(editableText.getStringValue()); 51 | JViewport port = scroll.getViewport(); 52 | if (port != null) 53 | port.setViewPosition(new Point(0,0)); 54 | else 55 | System.out.println("NULL VIEWPORT"); 56 | } 57 | 58 | /** 59 | * Sets the changed attribute value from the attribute editor in the table. 60 | */ 61 | public void doOK() 62 | { 63 | String newAttribute = area.getText(); 64 | 65 | //sets the attribute value to reflect the changes 66 | //made in the attribute editor. 67 | 68 | editableText.setStringValue(newAttribute); 69 | 70 | super.doOK(); 71 | } 72 | } -------------------------------------------------------------------------------- /src/com/ca/commons/naming/LdifStreamReader.java: -------------------------------------------------------------------------------- 1 | package com.ca.commons.naming; 2 | 3 | import java.io.*; 4 | 5 | /** 6 | * Utility file reader for LDIF files. 7 | * 8 | * We overload buffered reader / line number reader to create a reader that returns pre-joined lines from 9 | * the LDIF file (e.g. splices together all those multi-line attribute values...). 10 | * 11 | * (c) Chris Betts; Pegacat Software (http://pegacat.com) 12 | */ 13 | public class LdifStreamReader extends LineNumberReader 14 | { 15 | String nextLine; 16 | String currentLine = ""; 17 | boolean firstLine = true; 18 | 19 | public LdifStreamReader(Reader reader) 20 | throws IOException 21 | { 22 | super(reader); 23 | nextLine = super.readLine(); 24 | } 25 | 26 | /** 27 | * Returns the next full attribute text of an LDIF file, concatenating any split lines as required 28 | * @return 29 | * @throws IOException 30 | */ 31 | public String readLine() 32 | throws IOException 33 | { 34 | if (nextLine == null) // stream ended 35 | return null; 36 | 37 | String current = ""; 38 | 39 | do 40 | { 41 | current = current + nextLine; 42 | nextLine = super.readLine(); 43 | 44 | } 45 | while (nextLineContinues()); // modifies nextLine 46 | 47 | return current; 48 | } 49 | 50 | /** 51 | * This checks whether the 'nextLine' instance variable is a line continuation (e.g. has a leading space as per RFC 2849) 52 | * @return 53 | */ 54 | private boolean nextLineContinues() 55 | { 56 | if (nextLine == null) 57 | return false; 58 | 59 | int len = nextLine.length(); 60 | if (len>0 && nextLine.charAt(0)==' ') 61 | { 62 | nextLine = nextLine.substring(1); 63 | 64 | //XXX A special (and inefficient) hack for a private project - allow an initial '>' to represent a line feed for readability of multi line text 65 | //XXX in an LDIF file. Note - this is *not* standard LDIF! 66 | if (len>1 && nextLine.charAt(0) == '>') // hack for user-readible line wraps... non-standard, but allowable in groupmind application. 67 | nextLine = "\n" + ((len>2)?nextLine.substring(1):""); 68 | 69 | return true; 70 | } 71 | else 72 | return false; 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /src/com/ca/directory/jxplorer/search/SearchExecute.java: -------------------------------------------------------------------------------- 1 | package com.ca.directory.jxplorer.search; 2 | 3 | import java.util.logging.Logger; 4 | 5 | import com.ca.directory.jxplorer.tree.*; 6 | import com.ca.directory.jxplorer.broker.*; 7 | import com.ca.commons.naming.*; 8 | 9 | /** 10 | * This executes a search request from a particular base DN, using 11 | * a particular filter, returning a particular set of attributes. 12 | */ 13 | 14 | public class SearchExecute 15 | { 16 | private static Logger log = Logger.getLogger(SearchExecute.class.getName()); 17 | 18 | private SearchExecute() {} // class should not be instantiated 19 | 20 | /** 21 | * This executes a search request from a particular base DN, using 22 | * a particular filter, returning a particular set of attributes. 23 | * @param searchTree the search tree. 24 | * @param baseDN the DN that the search will begin from. 25 | * @param filter the LDAP search filter to be used. Reset to '(objectClass=*)' if passed in as null. 26 | * @param attribs a list of attributes the search should return (only these attributes, not the whole entry). //TE: TO DO...returning attributes... (should be a String[]). 27 | * @param searchLevel either 0 = Search Base Object, 1 = Search Next Level or 2 = Search Full Subtree. 28 | * @param searchBroker the broker that will fire off the search. 29 | * . 30 | */ 31 | 32 | public static void run(SmartTree searchTree, DN baseDN, String filter, String[] attribs, int searchLevel, JNDIDataBroker searchBroker) 33 | { 34 | if (filter==null) 35 | filter = "(objectClass=*)"; 36 | 37 | switch (searchLevel) //TE: info messages... 38 | { 39 | case 0: { log.info( "search: [ " + baseDN + "] [" + filter + "] [baseObject] "); break; } 40 | case 1: { log.info( "search: [ " + baseDN + "] [" + filter + "] [singleLevel] "); break; } 41 | case 2: { log.info( "search: [ " + baseDN + "] [" + filter + "] [wholeSubtree] "); break; } 42 | } 43 | 44 | searchTree.entry=null; //TE: so that the last entry is cleared from attribute editor pane. 45 | searchTree.clearTree(); 46 | 47 | if ((baseDN.isEmpty()==false) && (baseDN.getRootRDN().equals(""))) 48 | baseDN.remove(0); 49 | 50 | searchBroker.search(baseDN, filter, searchLevel, attribs); // searchBroker is registered to searchTree as its data source. When search broker gets results, searchTree is automatically updated. Yes, this is clunky and confusing - CB. 51 | } 52 | } -------------------------------------------------------------------------------- /src/com/ca/commons/cbutil/CBTableMap.java: -------------------------------------------------------------------------------- 1 | package com.ca.commons.cbutil; 2 | 3 | /** 4 | * In a chain of data manipulators some behaviour is common. TableMap 5 | * provides most of this behavour and can be subclassed by filters 6 | * that only need to override a handful of specific methods. TableMap 7 | * implements TableModel by routing all requests to its model, and 8 | * TableModelListener by routing all events to its listeners. Inserting 9 | * a TableMap which has not been subclassed into a chain of table filters 10 | * should have no effect. 11 | * 12 | * @version 1.4 12/17/97 13 | * @author Philip Milne http: 14 | * //java.sun.com/docs/books/tutorial/uiswing/components/table.html#eg 15 | */ 16 | 17 | import javax.swing.event.TableModelEvent; 18 | import javax.swing.event.TableModelListener; 19 | import javax.swing.table.AbstractTableModel; 20 | import javax.swing.table.TableModel; 21 | 22 | public class CBTableMap extends AbstractTableModel 23 | implements TableModelListener 24 | { 25 | protected TableModel model; 26 | 27 | public TableModel getModel() 28 | { 29 | return model; 30 | } 31 | 32 | public void setModel(TableModel model) 33 | { 34 | this.model = model; 35 | model.addTableModelListener(this); 36 | } 37 | 38 | // By default, implement TableModel by forwarding all messages 39 | // to the model. 40 | 41 | public Object getValueAt(int aRow, int aColumn) 42 | { 43 | return model.getValueAt(aRow, aColumn); 44 | } 45 | 46 | public void setValueAt(Object aValue, int aRow, int aColumn) 47 | { 48 | model.setValueAt(aValue, aRow, aColumn); 49 | } 50 | 51 | public int getRowCount() 52 | { 53 | return (model == null) ? 0 : model.getRowCount(); 54 | } 55 | 56 | public int getColumnCount() 57 | { 58 | return (model == null) ? 0 : model.getColumnCount(); 59 | } 60 | 61 | public String getColumnName(int aColumn) 62 | { 63 | return model.getColumnName(aColumn); 64 | } 65 | 66 | public Class getColumnClass(int aColumn) 67 | { 68 | return model.getColumnClass(aColumn); 69 | } 70 | 71 | public boolean isCellEditable(int row, int column) 72 | { 73 | return model.isCellEditable(row, column); 74 | } 75 | // 76 | // Implementation of the TableModelListener interface, 77 | // 78 | // By default forward all events to all the listeners. 79 | public void tableChanged(TableModelEvent e) 80 | { 81 | fireTableChanged(e); 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /templates/organization/address.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | organization: Address Tab 4 | 10 | 11 | 12 |
13 | 14 | 15 | 26 | 27 | 28 | 29 | 32 | 33 | 34 | 35 | 38 | 39 | 40 | 41 | 44 | 45 | 46 | 47 | 50 | 51 | 52 | 53 | 56 | 57 | 58 | 59 | 62 | 63 | 64 | 65 | 70 | 71 |
16 |

17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |

organization

25 |
Post Office Box: 30 | 31 |
Street: 36 | 37 |
Address: 42 | 43 |
State or Province: 48 | 49 |
Postcode: 54 | 55 |
Registered Address: 60 | 61 |
66 | 67 |   68 | 69 |
72 |
73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /templates/organization/Main.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | organization: Main Tab 4 | 10 | 11 | 12 |
13 | 14 | 15 | 26 | 27 | 28 | 29 | 32 | 33 | 34 | 35 | 38 | 39 | 40 | 41 | 44 | 45 | 46 | 47 | 50 | 51 | 52 | 53 | 56 | 57 | 58 | 59 | 62 | 63 | 64 | 65 | 70 | 71 |
16 |

17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |

organization

25 |
Organization: 30 | 31 |
Description: 36 | 37 |
User Password: 42 | 43 |
Telephone Number: 48 | 49 |
Facsimile Number: 54 | 55 |
Locality Name: 60 | 61 |
66 | 67 |   68 | 69 |
72 |
73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /templates/organizationalUnit/address.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | organizationalUnit: Address Tab 4 | 10 | 11 | 12 |
13 | 14 | 15 | 26 | 27 | 28 | 29 | 32 | 33 | 34 | 35 | 38 | 39 | 40 | 41 | 44 | 45 | 46 | 47 | 50 | 51 | 52 | 53 | 56 | 57 | 58 | 59 | 62 | 63 | 64 | 65 | 70 | 71 |
16 |

17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |

organizationalUnit

25 |
Post Office Box: 30 | 31 |
Street: 36 | 37 |
Address: 42 | 43 |
State or Province: 48 | 49 |
Postcode: 54 | 55 |
Registered Address: 60 | 61 |
66 | 67 |   68 | 69 |
72 |
73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /themes/classic-theme/templates/organization/address.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | organization: Address Tab 4 | 10 | 11 | 12 |
13 | 14 | 15 | 26 | 27 | 28 | 29 | 32 | 33 | 34 | 35 | 38 | 39 | 40 | 41 | 44 | 45 | 46 | 47 | 50 | 51 | 52 | 53 | 56 | 57 | 58 | 59 | 62 | 63 | 64 | 65 | 70 | 71 |
16 |

17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |

organization

25 |
Post Office Box: 30 | 31 |
Street: 36 | 37 |
Address: 42 | 43 |
State or Province: 48 | 49 |
Postcode: 54 | 55 |
Registered Address: 60 | 61 |
66 | 67 |   68 | 69 |
72 |
73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /templates/organizationalPerson/address.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | organizationalPerson: Address Tab 4 | 10 | 11 | 12 |
13 | 14 | 15 | 26 | 27 | 28 | 29 | 32 | 33 | 34 | 35 | 38 | 39 | 40 | 41 | 44 | 45 | 46 | 47 | 50 | 51 | 52 | 53 | 56 | 57 | 58 | 59 | 62 | 63 | 64 | 65 | 70 | 71 |
16 |

17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |

organizationalPerson

25 |
Post Office Box: 30 | 31 |
Street: 36 | 37 |
Address: 42 | 43 |
State or Province: 48 | 49 |
Postcode: 54 | 55 |
Registered Address: 60 | 61 |
66 | 67 |   68 | 69 |
72 |
73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /templates/organizationalUnit/Main.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | organizationalUnit: Main Tab 4 | 10 | 11 | 12 |
13 | 14 | 15 | 26 | 27 | 28 | 29 | 32 | 33 | 34 | 35 | 38 | 39 | 40 | 41 | 44 | 45 | 46 | 47 | 50 | 51 | 52 | 53 | 56 | 57 | 58 | 59 | 62 | 63 | 64 | 65 | 70 | 71 |
16 |

17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |

organizationalUnit

25 |
Organization: 30 | 31 |
Description: 36 | 37 |
User Password: 42 | 43 |
Telephone Number: 48 | 49 |
Facsimile Number: 54 | 55 |
Locality Name: 60 | 61 |
66 | 67 |   68 | 69 |
72 |
73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /themes/classic-theme/templates/organization/Main.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | organization: Main Tab 4 | 10 | 11 | 12 |
13 | 14 | 15 | 26 | 27 | 28 | 29 | 32 | 33 | 34 | 35 | 38 | 39 | 40 | 41 | 44 | 45 | 46 | 47 | 50 | 51 | 52 | 53 | 56 | 57 | 58 | 59 | 62 | 63 | 64 | 65 | 70 | 71 |
16 |

17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |

organization

25 |
Organization: 30 | 31 |
Description: 36 | 37 |
User Password: 42 | 43 |
Telephone Number: 48 | 49 |
Facsimile Number: 54 | 55 |
Locality Name: 60 | 61 |
66 | 67 |   68 | 69 |
72 |
73 | 74 | 75 | 76 | --------------------------------------------------------------------------------