summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/serversession/ServerSession.java
blob: 3b79c5d3027f64ccf56ab202b597b2e096bfd571 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package org.openslx.imagemaster.serversession;

import java.util.List;

import org.openslx.imagemaster.Globals;
import org.openslx.imagemaster.db.models.LocalSatellite;

/**
 * Holds the session id of the server and manages the timeout.
 */
public class ServerSession
{
	private static final long TIMEOUT = Long.valueOf( Globals.getSessionTimeoutServer() ) * 1000L;

	private long timeOut = 0;
	private final LocalSatellite serverUser;

	public ServerSession(final LocalSatellite serverUser)
	{
		this.serverUser = serverUser;
		this.timeOut = System.currentTimeMillis() + TIMEOUT;
	}

	public synchronized void refresh()
	{
		if ( timedOut() )
			return; // Don't allow refreshing timed out session
		this.timeOut = System.currentTimeMillis() + TIMEOUT;
	}

	public synchronized boolean timedOut()
	{
		return System.currentTimeMillis() > this.timeOut;
	}

	public String getOrganizationId()
	{
		return serverUser.organizationId;
	}

	public List<String> getAddresses()
	{
		return serverUser.addresses;
	}
}