Org/ejbca/ui/cli
Ø ErrorAdminCommandException
管理员命令出错后的异常
Ø IAdminCommand
执行管理员命令
Ø IllegalAdminCommandException
非法管理员命令异常
org/ejbca/ui/web
/protocol
Ø IHealtChecker
一个接口。会被healthcheckservlet调用。
l String healthCheck(boolean doSignTest, boolean doValidityTest);
Ø RFC4387URL
是一个枚举类。创建RFC4387URL和HTML的一些引用到一些URL上。
l public String appendQueryToURL(String url, HashID hash, booleanisDelta)
把RFC的查询添加到URL上
l public String appendQueryToURL(String url, HashID hash)
appendQueryToURL(url, hash, false)
l public String getRef(String url, HashID hash, boolean isDelta)
以String的形式得到一个证书或者CRL
l public String getRef(String url, HashID hash)
重构。
/pub
Ø ServletDebug
向浏览器客户端打印出调试信息
l public void ieCertFix(byte[] bA)ie证书修复(感觉用不上), 在这里面调用了RequestHelper里面的函数
RequestHelper.ieCertFormat(bA,tmpPrinter);
l public void printDebugInfo()
打印出调试信息
Ø ServletUtils
这里的函数在很多servelet中都会用到,整理成一个类,避免了以后重复使用。
l public static void removeCacheHeaders(HttpServletResponse res)
将response中的header给去掉。No-cache的header会让IE拒绝保存一个文件。
l public static void addCacheHeaders(HttpServletResponse res)
向response中添加一个header
/cluster
Ø IHealthCheck
一个接口,有一个函数,并未实现
l public String checkHealth(HttpServletRequest request)
Ø CommonHealthCheck
是一个抽象类
继承自IHealthCheck
l init()函数中初始化维护文件
主要有checkMaintenance()函数,检查主维护文件是否有错误
checkMemory(),检查JVM内存
Ø ValidationAuthorityHealthCheck
继承自CommonHealthCheck
检查HttpServletRequest的请求是否有问题
l public void printDebugInfo()打印出调试信息
l public void printMessage(String msg)打印出消息
l public void printInsertLineBreaks(byte[] bA)打印出输入的信息
Ø RequestHelper
一个辅助类,帮助处理来自浏览器的证书请求,或者产生PKCS#10
l public byte[] nsCertRequest(SignSessionLocal signsession, byte[] reqBytes,String username, String password)处理证书请求(貌似是firefox)
@paramsignsession EJB session to signature bean.
@paramreqBytes buffer holding the request from NS.
@param username username in EJBCAfor authoriation.
@param password users password forauthorization. 返回包含了一定格式的字符,返回格式:
<code> SignedPublicKeyAndChallenge::=SEQUENCE{
publicKeyAndChallenge PublicKeyAndChallenge,
signatureAlgorithm AlgorithmIdentifier,
signature BIT STRING }</code>
公钥格式必须遵守RSAX.509.
l public byte[] pkcs10CertRequest(SignSessionLocal signsession, byte[]b64Encoded, String username,String password, int resulttype, boolean doSplitLines)处理PKCS10证书请求
@param signsession signsession to getcertificate from
@param b64Encoded base64 encodedpkcs10 request message
@param username username ofrequesting user
@param password passwordof requesting user
@param resulttypeshould indicate if a PKCS7 or just the certificate is wanted.
@param doSplitLines
@return Base64 encoded byte[]
l public byte[]cvcCertRequest(SignSessionLocal signsession, byte[] b64Encoded, Stringusername, String password)处理CVC证书请求(我们用不上)
@param signsession signsession to getcertificate from
@param b64Encodedbase64 encoded cvc request message
@param username username ofrequesting user
@param password passwordof requesting user
@return Base64encoded byte[]
l public static void sendNewCertToNSClient(byte[] certs,HttpServletResponse out)发送新的证书给NS客户端(用不到)
@param certs DER encoded certificatesto be installed in browser
@param out output stream to send to
l public static void sendNewB64File(byte[] b64cert,HttpServletResponse out, String filename, String beginKey, String endKey)通过二进制的发送新的证书给客户端,base64编码
@param b64cert base64 encoded certificate tobe returned
@param out output stream to send to
@param filename filename sent as'Content-disposition' header
@param beginKey, String contaitning keyinformation
@param beginKey, String contaitning keyinformation
l public static void sendNewB64Cert(byte[] b64cert,HttpServletResponse out, String beginKey, String endKey)重构,不提供文件名,文件名默认为"cert.pem"
l public static voidsendNewX509CaCert(byte[] cert, HttpServletResponse out)将CA证书以二进制的形式返回,应该是X509证书
l public static void setDefaultCharacterEncoding(HttpServletRequestrequest)设置默认的编码集
l public static String getFileNameFromCertNoEnding(Certificate cacert,String defaultname)得到证书的文件名
Ø CertificateView
将X509证书的原始数据(二进制而文件)以网页的形式展示出来给用户看,格式化证书。
通过一个Certificate的实例得到证书的各种信息
Ø LimitLengthASN1Reader
ASN1:一种 ISO/ITU-T 标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用程序。
这也是一个辅助类。
继承自ASN1InputStream,包bouncycastle中的一个类。
限制读入到ASN1格式数据的大小。
l public byte[] readFirstASN1Object()
把流中的数据读入到第一个ASN1对象中,并限制大小。
l public int read()
得到读入数据的大小。
Ø RevokedInfoView
证书的撤销状态视图。
这个类提供了查询关于证书撤销状态的所有信息。
这么多类,我只是觉得最主要的功能都在RequestHelper中,这个类处理浏览器发来的请求,给用户生成证书。