Skip to content

Commit ca6cbb3

Browse files
committed
More Timing improvements (Set UTC)
1 parent f385af2 commit ca6cbb3

1 file changed

Lines changed: 12 additions & 11 deletions

File tree

  • core/src/main/java/com/onelogin/saml2/util

core/src/main/java/com/onelogin/saml2/util/Util.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import java.security.cert.X509Certificate;
3131
import java.security.spec.PKCS8EncodedKeySpec;
3232
import java.util.Calendar;
33-
import java.util.Date;
3433
import java.util.HashMap;
3534
import java.util.Iterator;
3635
import java.util.Map;
@@ -71,8 +70,8 @@
7170
import org.apache.xml.security.transforms.Transforms;
7271
import org.apache.xml.security.utils.XMLUtils;
7372
import org.joda.time.DateTime;
73+
import org.joda.time.DateTimeZone;
7474
import org.joda.time.Period;
75-
import org.joda.time.chrono.ISOChronology;
7675
import org.joda.time.format.DateTimeFormat;
7776
import org.joda.time.format.DateTimeFormatter;
7877
import org.joda.time.format.ISOPeriodFormat;
@@ -100,10 +99,10 @@ public final class Util {
10099
* Private property to construct a logger for this class.
101100
*/
102101
private static final Logger LOGGER = LoggerFactory.getLogger(Util.class);
103-
104-
private static final DateTimeFormatter DATE_TIME_FORMAT = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss'Z'").withChronology(ISOChronology.getInstanceUTC());
105-
private static final DateTimeFormatter DATE_TIME_FORMAT_MILLS = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").withChronology(ISOChronology.getInstanceUTC());
106-
102+
103+
private static final DateTimeFormatter DATE_TIME_FORMAT = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss'Z'").withZone(DateTimeZone.UTC);
104+
private static final DateTimeFormatter DATE_TIME_FORMAT_MILLS = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").withZone(DateTimeZone.UTC);
105+
107106
/**
108107
* This function load an XML string in a save way. Prevent XEE/XXE Attacks
109108
*
@@ -1399,7 +1398,7 @@ public static String uniqid(String prefix, Boolean more_entropy) {
13991398
* @throws IllegalArgumentException
14001399
*/
14011400
public static long parseDuration(String duration) throws IllegalArgumentException {
1402-
TimeZone timeZone = TimeZone.getTimeZone("UTC");
1401+
TimeZone timeZone = DateTimeZone.UTC.toTimeZone();
14031402
return parseDuration(duration, Calendar.getInstance(timeZone).getTimeInMillis() / 1000);
14041403
}
14051404

@@ -1427,6 +1426,7 @@ public static long parseDuration(String durationString, long timestamp) throws I
14271426
Period period = periodFormatter.parsePeriod(durationString);
14281427

14291428
DateTime dt = new DateTime(timestamp * 1000);
1429+
dt.toDateTime(DateTimeZone.UTC);
14301430

14311431
DateTime result = null;
14321432
if (haveMinus) {
@@ -1441,8 +1441,9 @@ public static long parseDuration(String durationString, long timestamp) throws I
14411441
* @return the unix timestamp that matches the current time.
14421442
*/
14431443
public static Long getCurrentTimeStamp() {
1444-
Date currentDate = new Date();
1445-
return currentDate.getTime() / 1000;
1444+
DateTime currentDate = new DateTime();
1445+
currentDate.toDateTime(DateTimeZone.UTC);
1446+
return currentDate.getMillis() / 1000;
14461447
}
14471448

14481449
/**
@@ -1463,8 +1464,8 @@ public static long getExpireTime(String cacheDuration, String validUntil) {
14631464
}
14641465

14651466
if (validUntil != null && !StringUtils.isEmpty(validUntil)) {
1466-
DateTime date = Util.parseDateTime(validUntil);
1467-
long validUntilTimeInt = date.getMillis() / 1000;
1467+
DateTime dt = Util.parseDateTime(validUntil);
1468+
long validUntilTimeInt = dt.getMillis() / 1000;
14681469
if (expireTime == 0 || expireTime > validUntilTimeInt) {
14691470
expireTime = validUntilTimeInt;
14701471
}

0 commit comments

Comments
 (0)