diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2013-09-05 21:18:04 -0700 |
---|---|---|
committer | Jesse Morgan <jesse@jesterpm.net> | 2013-09-05 21:18:04 -0700 |
commit | 36970455d1fbb03a751cddbdbaa5bed334e58169 (patch) | |
tree | eee66ec85184a23c92c94a29edc6991eb94c6543 /src/com/p4square/grow/frontend/session | |
parent | 283c4928081f82e3f6ef7a0f80aecf0bacb89dbe (diff) |
Moving Sessions to FMFacade. Adding transition from Assessment to Training.
Diffstat (limited to 'src/com/p4square/grow/frontend/session')
6 files changed, 0 insertions, 319 deletions
diff --git a/src/com/p4square/grow/frontend/session/Session.java b/src/com/p4square/grow/frontend/session/Session.java deleted file mode 100644 index 3377962..0000000 --- a/src/com/p4square/grow/frontend/session/Session.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2013 Jesse Morgan - */ - -package com.p4square.grow.frontend.session; - -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -import org.restlet.security.User; - -/** - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public class Session { - private static final long LIFETIME = 86400000; - - private final String mSessionId; - private final User mUser; - private final Map<String, String> mData; - private long mExpires; - - Session(User user) { - mUser = user; - mSessionId = UUID.randomUUID().toString(); - mExpires = System.currentTimeMillis() + LIFETIME; - mData = new HashMap<String, String>(); - } - - void touch() { - mExpires = System.currentTimeMillis() + LIFETIME; - } - - boolean isExpired() { - return System.currentTimeMillis() > mExpires; - } - - public String getId() { - return mSessionId; - } - - public String get(String key) { - return mData.get(key); - } - - public void put(String key, String value) { - mData.put(key, value); - } - - public User getUser() { - return mUser; - } -} diff --git a/src/com/p4square/grow/frontend/session/SessionAuthenticator.java b/src/com/p4square/grow/frontend/session/SessionAuthenticator.java deleted file mode 100644 index ac194af..0000000 --- a/src/com/p4square/grow/frontend/session/SessionAuthenticator.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2013 Jesse Morgan - */ - -package com.p4square.grow.frontend.session; - -import org.restlet.Context; -import org.restlet.Request; -import org.restlet.Response; -import org.restlet.security.Authenticator; -import org.restlet.security.User; - -/** - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public class SessionAuthenticator /*extends Authenticator*/ { - /* - @Override - protected boolean authenticate(Request request, Response response) { - // Check for authentication cookie - final String cookie = request.getCookies().getFirstValue(COOKIE_NAME); - if (cookie != null) { - cLog.debug("Got cookie: " + cookie); - // TODO Decrypt user info - User user = new User(cookie); - request.getClientInfo().setUser(user); - return true; - } - - // Challenge the user if not authenticated - response.redirectSeeOther(mLoginPage); - return false; - } - */ -} diff --git a/src/com/p4square/grow/frontend/session/SessionCheckingAuthenticator.java b/src/com/p4square/grow/frontend/session/SessionCheckingAuthenticator.java deleted file mode 100644 index 745484d..0000000 --- a/src/com/p4square/grow/frontend/session/SessionCheckingAuthenticator.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2013 Jesse Morgan - */ - -package com.p4square.grow.frontend.session; - -import org.apache.log4j.Logger; - -import org.restlet.Context; -import org.restlet.Request; -import org.restlet.Response; -import org.restlet.security.Authenticator; - -/** - * Authenticator which succeeds if a valid Session exists. - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public class SessionCheckingAuthenticator extends Authenticator { - private static final Logger LOG = Logger.getLogger(SessionCheckingAuthenticator.class); - - public SessionCheckingAuthenticator(Context context, boolean optional) { - super(context, optional); - } - - protected boolean authenticate(Request request, Response response) { - Session s = Sessions.getInstance().get(request); - - if (s != null) { - LOG.debug("Found session for user " + s.getUser()); - request.getClientInfo().setUser(s.getUser()); - return true; - - } else { - return false; - } - } - -} diff --git a/src/com/p4square/grow/frontend/session/SessionCookieAuthenticator.java b/src/com/p4square/grow/frontend/session/SessionCookieAuthenticator.java deleted file mode 100644 index 789f58e..0000000 --- a/src/com/p4square/grow/frontend/session/SessionCookieAuthenticator.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2013 Jesse Morgan - */ - -package com.p4square.grow.frontend.session; - -import org.apache.log4j.Logger; - -import org.restlet.Context; -import org.restlet.Request; -import org.restlet.Response; -import org.restlet.security.Authenticator; - -/** - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public class SessionCookieAuthenticator extends Authenticator { - private static final Logger LOG = Logger.getLogger(SessionCookieAuthenticator.class); - - private static final String COOKIE_NAME = "S"; - - private final Sessions mSessions; - - public SessionCookieAuthenticator(Context context, boolean optional, Sessions sessions) { - super(context, optional); - - mSessions = sessions; - } - - protected boolean authenticate(Request request, Response response) { - final String cookie = request.getCookies().getFirstValue(COOKIE_NAME); - - if (request.getClientInfo().isAuthenticated()) { - // Request is already authenticated... create session if it doesn't exist. - if (cookie == null) { - Session s = mSessions.create(request.getClientInfo().getUser()); - response.getCookieSettings().add(COOKIE_NAME, s.getId()); - } - - return true; - - } else { - // Check for authentication cookie - if (cookie != null) { - LOG.debug("Got cookie: " + cookie); - - Session s = mSessions.get(cookie); - if (s != null) { - request.getClientInfo().setUser(s.getUser()); - return true; - } - } - - return false; - } - } - -} diff --git a/src/com/p4square/grow/frontend/session/SessionCreatingAuthenticator.java b/src/com/p4square/grow/frontend/session/SessionCreatingAuthenticator.java deleted file mode 100644 index c569bb9..0000000 --- a/src/com/p4square/grow/frontend/session/SessionCreatingAuthenticator.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2013 Jesse Morgan - */ - -package com.p4square.grow.frontend.session; - -import org.apache.log4j.Logger; - -import org.restlet.Context; -import org.restlet.Request; -import org.restlet.Response; -import org.restlet.security.Authenticator; -import org.restlet.security.User; - -/** - * Authenticator which creates a Session for the request and adds a cookie - * to the response. - * - * The Request MUST be Authenticated and MUST have a User object associated. - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public class SessionCreatingAuthenticator extends Authenticator { - private static final Logger LOG = Logger.getLogger(SessionCreatingAuthenticator.class); - - public SessionCreatingAuthenticator(Context context) { - super(context, true); - } - - protected boolean authenticate(Request request, Response response) { - if (Sessions.getInstance().get(request) != null) { - return true; - } - - User user = request.getClientInfo().getUser(); - - if (request.getClientInfo().isAuthenticated() && user != null) { - Sessions.getInstance().create(request, response); - LOG.debug(response); - return true; - } - - return false; - } - -} diff --git a/src/com/p4square/grow/frontend/session/Sessions.java b/src/com/p4square/grow/frontend/session/Sessions.java deleted file mode 100644 index 58bb5f6..0000000 --- a/src/com/p4square/grow/frontend/session/Sessions.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2013 Jesse Morgan - */ - -package com.p4square.grow.frontend.session; - -import java.util.concurrent.ConcurrentHashMap; -import java.util.Map; - -import org.restlet.Response; -import org.restlet.Request; -import org.restlet.data.CookieSetting; -import org.restlet.security.User; - -/** - * Singleton Session Manager. - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public class Sessions { - private static final String COOKIE_NAME = "S"; - - private static final Sessions THE = new Sessions(); - public static Sessions getInstance() { - return THE; - } - - private final Map<String, Session> mSessions; - - private Sessions() { - mSessions = new ConcurrentHashMap<String, Session>(); - } - - public Session get(String sessionid) { - Session s = mSessions.get(sessionid); - - if (s != null && !s.isExpired()) { - s.touch(); - return s; - } - - return null; - } - - /** - * Get the Session associated with the Request. - * @return A session or null if no session is found. - */ - public Session get(Request request) { - final String cookie = request.getCookies().getFirstValue(COOKIE_NAME); - - if (cookie != null) { - return get(cookie); - } - - return null; - } - - public Session create(User user) { - if (user == null) { - throw new IllegalArgumentException("Can not create session for null user."); - } - - Session s = new Session(user); - mSessions.put(s.getId(), s); - - return s; - } - - /** - * Create a new Session and add the Session cookie to the response. - */ - public Session create(Request request, Response response) { - Session s = create(request.getClientInfo().getUser()); - - CookieSetting cookie = new CookieSetting(COOKIE_NAME, s.getId()); - cookie.setPath("/"); - - request.getCookies().add(cookie); - response.getCookieSettings().add(cookie); - - return s; - } -} |