68 lines
1.0 KiB
Java
68 lines
1.0 KiB
Java
package org.scribe.services;
|
|
|
|
import java.util.*;
|
|
|
|
/**
|
|
* Implementation of {@link TimestampService} using plain java classes.
|
|
*
|
|
* @author Pablo Fernandez
|
|
*/
|
|
public class TimestampServiceImpl implements TimestampService
|
|
{
|
|
private Timer timer;
|
|
|
|
/**
|
|
* Default constructor.
|
|
*/
|
|
public TimestampServiceImpl()
|
|
{
|
|
timer = new Timer();
|
|
}
|
|
|
|
/**
|
|
* {@inheritDoc}
|
|
*/
|
|
public String getNonce()
|
|
{
|
|
Long ts = getTs();
|
|
return String.valueOf(ts + timer.getRandomInteger());
|
|
}
|
|
|
|
/**
|
|
* {@inheritDoc}
|
|
*/
|
|
public String getTimestampInSeconds()
|
|
{
|
|
return String.valueOf(getTs());
|
|
}
|
|
|
|
private Long getTs()
|
|
{
|
|
return timer.getMilis() / 1000;
|
|
}
|
|
|
|
void setTimer(Timer timer)
|
|
{
|
|
this.timer = timer;
|
|
}
|
|
|
|
/**
|
|
* Inner class that uses {@link System} for generating the timestamps.
|
|
*
|
|
* @author Pablo Fernandez
|
|
*/
|
|
static class Timer
|
|
{
|
|
Long getMilis()
|
|
{
|
|
return System.currentTimeMillis();
|
|
}
|
|
|
|
Integer getRandomInteger()
|
|
{
|
|
return new Random().nextInt();
|
|
}
|
|
}
|
|
|
|
}
|