private HttpSession getSession() { return sessionProvider.getSession(); }
@Override public String generate(LoginToken token) { return sessionProvider.getSession(true).getId(); } }
@SuppressWarnings("unchecked") private ClientSession getClientSession() { HttpSession session = sessionProvider.getSession(); return (ClientSession) session.getAttribute(LoginConstants.CLIENT_SESSION_NAME); }
@Override public ClientSession login(LoginToken token) throws ServerException { LoginService loginService = loginServiceProvider.getLoginService(token); ClientSession clientSession = loginService.login(token); if (clientSession != null) { HttpSession session = sessionProvider.getSession(); session.setAttribute(LoginConstants.LOGIN_TOKEN_NAME, token); session.setAttribute(LoginConstants.CLIENT_SESSION_NAME, clientSession); } return clientSession; }
@Override public void changeAuthentication(ClientSession clientSession) { HttpSession session = sessionProvider.getSession(); LoginToken token = (LoginToken) session.getAttribute(LoginConstants.LOGIN_TOKEN_NAME); loginServiceProvider.getLoginService(token).changeAuthentication(clientSession); } }
@Override public void logout() throws ServerException { HttpSession session = sessionProvider.getSession(); LoginToken token = (LoginToken) session.getAttribute(LoginConstants.LOGIN_TOKEN_NAME); if (token != null && loginServiceProvider.getLoginService(token) != null) { loginServiceProvider.getLoginService(token).logout(); } //session.removeAttribute(LoginConstants.LOGIN_TOKEN_NAME); //session.removeAttribute(LoginConstants.CLIENT_SESSION_NAME); session.invalidate(); }
@Override public ClientSession getLoggedSession(UserContext userContext) { HttpSession session = sessionProvider.getSession(); LoginToken token = (LoginToken) session.getAttribute(LoginConstants.LOGIN_TOKEN_NAME); if (token instanceof UserPasswordLoginToken && userContext instanceof SessionUserContext) { String sessionWebId = userContext.getWebId(); String tokenWebId = token.getWebId(); if (!sessionWebId.equals(tokenWebId)) return null; } return getClientSession(); } }
@Override public ClientSession getLoggedSession(UserContext userContext) { if (isValid(userContext)) { HttpSession session = sessionProvider.getSession(); session.setAttribute(LoginConstants.ACRIS_API_KEY_STRING, ((APIKeyUserContext) userContext).getApiKey()); session.setAttribute(LoginConstants.LOGIN_TOKEN_NAME, createLoginToken(userContext.getWebId())); ClientSession clientSession = new ClientSession(); clientSession.setUser(apiKeyUserProvider.createUser(((APIKeyUserContext) userContext).getApiKey())); return clientSession; } else return null; }