购买代码签名证书时,从PKCS12到JKS证书开始有什么优点?一些供应商提供有关从JKS或PKCS12证书签名请求开始的说明.我们希望在使用购买的证书时具有最大的灵活性,特别是考虑到成本.例如,我们可能签署的不仅仅是Java代码(例如:iPhone或Android代码签名).在选择任何一种方法时,我们应该考虑哪些技术因素?
有没有人看到JavaMail没有向SMTP服务器发送正确的MimeMessages,具体取决于JVM的启动方式?在一天结束时,我无法使用Subject:或From:字段发送JavaMail SMTP邮件,并且只有在将应用程序作为战争运行时才会显示其他标题丢失.
Web项目是使用Maven构建的,我正在测试使用浏览器和简单的mail.jsp发送JavaMail来调试并在启动应用程序时看到不同的行为:
1)mvn jetty:run(邮件发送正常,有正确的Subject和From字段)
2)mvn jetty:run-war(邮件发送正常,但缺少主题,发件人和其他字段)
我在(详细)Maven调试输出(-X)上精心运行diff,并且两者之间的运行时依赖性没有差别.我还比较了系统属性,它们是相同的.Jetty发生了其他事情:运行战争案例改变了JavaMail的行为方式.还有什么需要转动?
奇怪的是,我在两种情况下都尝试过调试器,发现javax.mail.internet.MimeMessage实例的创建方式不同.webapp使用Spring发送从Apache ActiveMQ队列中挑选的电子邮件.运行应用程序时,mvn jetty:run
MimeMessage.contentStream变量用于邮件内容.运行时mvn jetty:run-war
,MimeMessage.content变量用于消息内容,content = ASCIIUtility.getBytes(is); call从已解析的内容中删除所有标头数据.由于这看起来很奇怪,并且调试Spring/ActiveMQ是一个深入的研究,我创建了一个没有任何基础结构的简化测试:只使用了一个使用mail-1.4.2.jar的JSP,但缺少相同的头文件.
另外值得注意的是,在Tomcat 5.5.27下运行WAR文件时,缺少这些头文件.运行WAR时,Tomcat的行为就像Jetty一样,缺少相同的标头.
打开JavaMail调试后,我清楚地看到不同的输出.
好的案例:在jetty:run(非WAR)中,日志输出是:
DEBUG: JavaMail version 1.4.2
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
DEBUG: Tables of loaded providers
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, …
Run Code Online (Sandbox Code Playgroud)