List of usage examples for org.apache.shiro.session.mgt SimpleSession setTimeout
public void setTimeout(long timeout)
From source file:com.aquenos.scm.ssh.server.ScmPasswordAuthenticator.java
License:Open Source License
@Override public boolean authenticate(String username, String password, ServerSession session) { if (username == null || password == null) { return false; }//from www . j a v a 2 s . c om SimpleSession shiroSession = new SimpleSession(); shiroSession.setTimeout(-1L); Subject subject = new Subject.Builder(securityManager).session(shiroSession) .host(session.getIoSession().getRemoteAddress().toString()).buildSubject(); try { subject.login(new UsernamePasswordToken(username, password)); } catch (AuthenticationException e) { return false; } // Store subject in session. session.setAttribute(ScmSshServer.SUBJECT_SESSION_ATTRIBUTE_KEY, subject); return true; }
From source file:com.aquenos.scm.ssh.server.ScmPublickeyAuthenticator.java
License:Open Source License
@Override public boolean authenticate(String username, PublicKey publicKey, ServerSession session) { if (username == null || publicKey == null) { return false; }//from w w w . j a va 2 s.co m SimpleSession shiroSession = new SimpleSession(); shiroSession.setTimeout(-1L); Subject subject = new Subject.Builder(securityManager).session(shiroSession) .host(session.getIoSession().getRemoteAddress().toString()).buildSubject(); try { subject.login(new PublicKeyToken(username, publicKey)); } catch (AuthenticationException e) { return false; } // Store subject in session. session.setAttribute(ScmSshServer.SUBJECT_SESSION_ATTRIBUTE_KEY, subject); return true; }
From source file:com.funtl.framework.apache.shiro.session.JedisSessionDAO.java
License:Apache License
/** * ??//from w w w .j a v a2 s . com * * @param includeLeave ??3? * @param principal ??? * @param filterSession ???? * @return */ @Override public Collection<Session> getActiveSessions(boolean includeLeave, Object principal, Session filterSession) { Set<Session> sessions = Sets.newHashSet(); Jedis jedis = null; try { jedis = JedisUtils.getResource(); Map<String, String> map = jedis.hgetAll(sessionKeyPrefix); for (Map.Entry<String, String> e : map.entrySet()) { if (StringUtils.isNotBlank(e.getKey()) && StringUtils.isNotBlank(e.getValue())) { String[] ss = StringUtils.split(e.getValue(), "|"); if (ss != null && ss.length == 3) {// jedis.exists(sessionKeyPrefix + e.getKey())){ // Session session = (Session)JedisUtils.toObject(jedis.get(JedisUtils.getBytesKey(sessionKeyPrefix + e.getKey()))); SimpleSession session = new SimpleSession(); session.setId(e.getKey()); session.setAttribute("principalId", ss[0]); session.setTimeout(Long.valueOf(ss[1])); session.setLastAccessTime(new Date(Long.valueOf(ss[2]))); try { // ?SESSION session.validate(); boolean isActiveSession = false; // ????3? if (includeLeave || DateUtils.pastMinutes(session.getLastAccessTime()) <= 3) { isActiveSession = true; } // ?? if (principal != null) { PrincipalCollection pc = (PrincipalCollection) session .getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY); if (principal.toString().equals( pc != null ? pc.getPrimaryPrincipal().toString() : StringUtils.EMPTY)) { isActiveSession = true; } } // SESSION if (filterSession != null && filterSession.getId().equals(session.getId())) { isActiveSession = false; } if (isActiveSession) { sessions.add(session); } } // SESSION? catch (Exception e2) { jedis.hdel(sessionKeyPrefix, e.getKey()); } } // SESSION?? else { jedis.hdel(sessionKeyPrefix, e.getKey()); } } // SESSIONValue else if (StringUtils.isNotBlank(e.getKey())) { jedis.hdel(sessionKeyPrefix, e.getKey()); } } logger.info("getActiveSessions size: {} ", sessions.size()); } catch (Exception e) { logger.error("getActiveSessions", e); } finally { JedisUtils.returnResource(jedis); } return sessions; }
From source file:com.ikanow.aleph2.security.db.SessionDb.java
License:Apache License
protected Object deserialize(JsonNode sessionOb) { SimpleSession s = null; try {//from ww w . j av a 2s . co m if (sessionOb != null) { s = new SimpleSession(); s.setId(sessionOb.get("_id").asText()); s.setLastAccessTime(new Date(sessionOb.get("last_access_time").asLong())); s.setStartTimestamp(new Date(sessionOb.get("start_time_stamp").asLong())); s.setTimeout(sessionOb.get("timeout").asLong()); s.setHost(sessionOb.get("host").asText()); JsonNode attributesOb = sessionOb.get("attributes"); for (Iterator<Entry<String, JsonNode>> it = attributesOb.fields(); it.hasNext();) { Entry<String, JsonNode> e = it.next(); s.setAttribute(deescapeMongoCharacters(e.getKey()), SerializableUtils.deserialize(e.getValue().asText())); } } } catch (Exception e) { logger.error("Caught Exception deserializing :" + sessionOb, e); } return s; }
From source file:com.parallax.server.blocklyprop.security.BlocklyPropSessionDao.java
/** * Concert a SessionRecord object to a Session object * * @param sessionRecord//from w ww . j a va 2 s. co m * the SessionRecord object to convert * * @return * a Session object. The session object attributes may be missing if the original * SessionRecord object contained non-string data. */ private Session convert(SessionRecord sessionRecord) { LOG.trace("Converting SessionRecord {} into a SimpleSession object", sessionRecord.getIdsession()); SimpleSession ssession = new SimpleSession(); ssession.setId(sessionRecord.getIdsession()); ssession.setStartTimestamp(sessionRecord.getStarttimestamp()); ssession.setLastAccessTime(sessionRecord.getLastaccesstime()); ssession.setTimeout(sessionRecord.getTimeout()); ssession.setHost(sessionRecord.getHost()); // Gather the session attributes into a HashMap that can be persisted into the // Session object if (sessionRecord.getAttributes() != null) { // In case there is something in the session attributes that isn't a string value // We can trap the issue here and deal with it. The @SuppressWarnings tells the IDE // that we have thought about this and taken appropriate defensive measures. try { @SuppressWarnings("unchecked") HashMap<Object, Object> attributes = (HashMap<Object, Object>) SerializationUtils .deserialize(sessionRecord.getAttributes()); ssession.setAttributes(attributes); } catch (ClassCastException ex) { LOG.warn("Unable to convert SessionRecord attributes in session {}", sessionRecord.getIdsession()); } } return ssession; }
From source file:net.eggcanfly.spring.shiro.support.RedisSessionDao.java
License:Apache License
protected Session deserializeSession(Serializable sessionId) { BoundHashOperations<String, String, Object> hashOperations = redisTemplate .boundHashOps(SESSION_KEY + sessionId); SimpleSession session = new SimpleSession(); try {//from www. jav a2 s. co m session.setHost((String) hashOperations.get("host")); session.setId(sessionId); session.setLastAccessTime( hashOperations.get("lastAccessTime") == null ? new Date(System.currentTimeMillis()) : (Date) hashOperations.get("lastAccessTime")); session.setStartTimestamp((Date) hashOperations.get("startTimestamp")); session.setStopTimestamp((Date) hashOperations.get("stopTimestamp")); session.setTimeout((long) hashOperations.get("timeout")); Set<String> hashKeys = hashOperations.keys(); for (Iterator<String> iterator = hashKeys.iterator(); iterator.hasNext();) { String hashKey = iterator.next(); session.setAttribute(hashKey, hashOperations.get(hashKey)); } } catch (Exception e) { logger.error(e.getMessage(), e); } logger.debug("read session " + sessionId + ", session is " + session); return session.isValid() ? session : null; }
From source file:org.graylog2.security.MongoDbSessionDAO.java
License:Open Source License
private SimpleSession getSimpleSession(Serializable sessionId, MongoDbSession dbSession) { final SimpleSession session = new SimpleSession(); assignSessionId(session, sessionId); session.setHost(dbSession.getHost()); session.setTimeout(dbSession.getTimeout()); session.setStartTimestamp(dbSession.getStartTimestamp()); session.setLastAccessTime(dbSession.getLastAccessTime()); session.setExpired(dbSession.isExpired()); session.setAttributes(dbSession.getAttributes()); return session; }
From source file:org.killbill.billing.util.security.shiro.dao.SessionModelDao.java
License:Apache License
public Session toSimpleSession() throws IOException { final SimpleSession simpleSession = new SimpleSession(); if (id != null) { // Make sure to use a String here! It will be used as-is as the key in Ehcache. // When retrieving the session, the sessionId will be a String // See https://github.com/killbill/killbill/issues/299 simpleSession.setId(id);// www . ja va2 s. c o m } simpleSession.setStartTimestamp(startTimestamp.toDate()); simpleSession.setLastAccessTime(lastAccessTime.toDate()); simpleSession.setTimeout(timeout); simpleSession.setHost(host); final Map attributes = serializer.deserialize(sessionData); //noinspection unchecked simpleSession.setAttributes(attributes); return simpleSession; }
From source file:org.killbill.billing.util.security.shiro.dao.TestJDBCSessionDao.java
License:Apache License
private SimpleSession createSession() { final SimpleSession simpleSession = new SimpleSession(); simpleSession.setStartTimestamp(new Date(System.currentTimeMillis() - 5000)); simpleSession.setLastAccessTime(new Date(System.currentTimeMillis())); simpleSession.setTimeout(493934L); simpleSession.setHost(UUID.randomUUID().toString()); simpleSession.setAttribute(UUID.randomUUID().toString(), Short.MIN_VALUE); simpleSession.setAttribute(UUID.randomUUID().toString(), Integer.MIN_VALUE); simpleSession.setAttribute(UUID.randomUUID().toString(), Long.MIN_VALUE); simpleSession.setAttribute(UUID.randomUUID().toString(), UUID.randomUUID().toString()); // Test with Serializable objects simpleSession.setAttribute(UUID.randomUUID().toString(), UUID.randomUUID()); simpleSession.setAttribute(UUID.randomUUID().toString(), new Date(1242)); return simpleSession; }
From source file:org.killbill.billing.util.security.shiro.dao.TestSessionModelDao.java
License:Apache License
@Test(groups = "fast") public void testRoundTrip() throws Exception { final SimpleSession simpleSession = new SimpleSession(); simpleSession.setStartTimestamp(new Date(System.currentTimeMillis() - 5000)); simpleSession.setLastAccessTime(new Date(System.currentTimeMillis())); simpleSession.setTimeout(493934L); simpleSession.setHost(UUID.randomUUID().toString()); simpleSession.setAttribute(UUID.randomUUID(), Short.MIN_VALUE); simpleSession.setAttribute(UUID.randomUUID(), Integer.MIN_VALUE); simpleSession.setAttribute(UUID.randomUUID(), Long.MIN_VALUE); simpleSession.setAttribute(UUID.randomUUID().toString(), UUID.randomUUID().toString()); // Test with Serializable objects simpleSession.setAttribute(UUID.randomUUID().toString(), UUID.randomUUID()); simpleSession.setAttribute(UUID.randomUUID().toString(), new Date(1242)); final SessionModelDao sessionModelDao = new SessionModelDao(simpleSession); Assert.assertEquals(sessionModelDao.getTimeout(), simpleSession.getTimeout()); Assert.assertEquals(sessionModelDao.getHost(), simpleSession.getHost()); Assert.assertTrue(sessionModelDao.getSessionData().length > 0); final Session retrievedSession = sessionModelDao.toSimpleSession(); Assert.assertEquals(retrievedSession, simpleSession); }