Hi guys,

we currently don't use anything but the basic Java Date classes to manipulate dates in Kerberos. For instance, the KerberosTime data structure is encapsulating a long, representing the number of seconds since jan, 1st, 1970. But the problem is that it does it incorrectly, as the following constructor shows :

    /** The kerberosTime, as a long */
    private long kerberosTime;
...
    /**
     * Creates a new instance of a KerberosTime object
     */
    public KerberosTime()
    {
        kerberosTime = System.currentTimeMillis();
    }

The problem with this constructor is that it takes the local time, not the UTC time, when the RFC states :

"...As required by the DER, it further shall not include any separators, and *it 
shall specify the UTC time zone* (Z)..."

Getting the System.currentTimeMillis() value does not return an UTC.

Now, using JodaTime won't solve the problem, but the Joda classes are way more 
simpler to use than the standard Java ones (up to a point the JSR 310 is going 
to define a new Date API for JDK 8, based on the Joda API).

Any objection ?


--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com

Reply via email to