小编NAI*_*AIT的帖子

检查java密钥库中的证书过期日期

我的java应用程序使用密钥库文件,其中我有一个证书,用于与活动目录服务器的ssl连接.我要做的是检查其到期日期并提示用户是否即将到期.我的申请开始时我必须这样做.我的想法是使用外部程序:keytool在密钥库中显示有关某些证书的信息,然后对keytool输出的字符串进行一些解析操作以查找此验证日期.

这是特定keytool命令的输出:

Owner:
Issuer: CN=CPD Root CA, DC=cpd, DC=local<br>
Serial number: 39e8d1610002000000cb
<br>Valid from: Wed Feb 22 21:36:31 CET 2012 until: Thu Feb 21 21:36:31 CET 2013
Certificate fingerprints: <br>
         MD5:  82:46:8B:DB:BC:5C:64:21:84:BB:68:E3:4B:D4:35:70<br>
         SHA1: 35:52:CA:F2:11:66:1E:50:63:BC:53:A5:50:C1:F0:1E:62:81:BC:3F<br>
         Signature algorithm name: SHA1withRSA
Run Code Online (Sandbox Code Playgroud)

问题在于解析日期,因为我无法确定它的显示格式.

有没有更简单的方法来检查java密钥库文件中包含的证书的到期日期?

java ssl certificate keystore

20
推荐指数
2
解决办法
3万
查看次数

无状态会话bean可以保护最终方法吗?

我已经定义了一个会话bean基类.此类是抽象的,包含受保护的最终方法.会话实现类扩展了抽象类并定义了其他方法.在部署期间,Glassfish 3.1.2服务器生成一个异常,说明该方法被覆盖.

abstract class AbstractSessionBean {
    @PersistenceContext(unitName="primary")
    private EntityManager em;

    protected final EntityManager getEntityManager() {
       return em;
    }
}

@Startup
@Stateless
class RegistrationSessionBean extends AbstractSessionBean {
     public void loadRegistration() {
        ...
     }
}
Run Code Online (Sandbox Code Playgroud)

在部署期间,glassfish服务器抛出异常.如果我使AbstractSessionBean的方法非final,则部署成功.

这是否意味着会话bean不能拥有最终方法?或者此行为仅适用于Glassfish 3.1.2.

异常消息是:

[#|2013-08-26T17:45:48.542+0530|SEVERE|glassfish3.1.2|javax.enterprise.system.tools.admin.org.glassfish.deployment.admin|_ThreadID=47;_ThreadName=Thread-2;|Exception while loading the app : EJB Container initialization error
java.lang.RuntimeException: Could not invoke defineClass!
    at com.sun.ejb.containers.EjbOptionalIntfGenerator.makeClass(EjbOptionalIntfGenerator.java:448)
    at com.sun.ejb.containers.EjbOptionalIntfGenerator.access$200(EjbOptionalIntfGenerator.java:64)
    at com.sun.ejb.containers.EjbOptionalIntfGenerator$1.run(EjbOptionalIntfGenerator.java:99)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.ejb.containers.EjbOptionalIntfGenerator.loadClass(EjbOptionalIntfGenerator.java:96)
    at com.sun.ejb.containers.BaseContainer.instantiateOptionalEJBLocalBusinessObjectImpl(BaseContainer.java:3886)
    at com.sun.ejb.containers.StatelessSessionContainer.initializeHome(StatelessSessionContainer.java:253)
    at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:167)
    at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:230)
    at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:305)
    at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:108)
    at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:186)
    at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:264)
    at …
Run Code Online (Sandbox Code Playgroud)

java ejb-3.0 glassfish-3

4
推荐指数
1
解决办法
3393
查看次数

标签 统计

java ×2

certificate ×1

ejb-3.0 ×1

glassfish-3 ×1

keystore ×1

ssl ×1