@Override public SubjectDAO get() { final KillBillSubjectDAO killBillSubjectDAO = new KillBillSubjectDAO(); killBillSubjectDAO.setSessionStorageEvaluator(new SessionStorageEvaluator() { @Override public boolean isSessionStorageEnabled(final Subject subject) { // Use what already exists return subject.getSession(false) != null; } }); return killBillSubjectDAO; } }
private boolean disableUpdatesForSession(final Subject subject, final Session session) { final JDBCSessionDao sessionDAO = getJDBCSessionDao(subject); if (sessionDAO != null) { sessionDAO.disableUpdatesForSession(session); return true; } return false; }
@Override protected void saveToSession(final Subject subject) { boolean updatesDisabled = false; Session session = subject.getSession(false); if (session == null && !CollectionUtils.isEmpty(subject.getPrincipals())) { // Force the creation of the session here to get the id session = subject.getSession(); // Optimize the session creation path: the default saveToSession implementation // will call setAttribute() several times in a row, causing unnecessary DAO UPDATE queries updatesDisabled = disableUpdatesForSession(subject, session); } super.saveToSession(subject); if (updatesDisabled) { enableUpdatesForSession(subject, session); } }
@Override protected void saveToSession(final Subject subject) { boolean updatesDisabled = false; Session session = subject.getSession(false); if (session == null && !CollectionUtils.isEmpty(subject.getPrincipals())) { // Force the creation of the session here to get the id session = subject.getSession(); // Optimize the session creation path: the default saveToSession implementation // will call setAttribute() several times in a row, causing unnecessary DAO UPDATE queries updatesDisabled = disableUpdatesForSession(subject, session); } super.saveToSession(subject); if (updatesDisabled) { enableUpdatesForSession(subject, session); } }
@Override public SubjectDAO get() { final KillBillSubjectDAO killBillSubjectDAO = new KillBillSubjectDAO(); killBillSubjectDAO.setSessionStorageEvaluator(new SessionStorageEvaluator() { @Override public boolean isSessionStorageEnabled(final Subject subject) { // Use what already exists return subject.getSession(false) != null; } }); return killBillSubjectDAO; } }
private void enableUpdatesForSession(final Subject subject, final Session session) { final JDBCSessionDao sessionDAO = getJDBCSessionDao(subject); if (sessionDAO != null) { sessionDAO.enableUpdatesForSession(session); } }
private void enableUpdatesForSession(final Subject subject, final Session session) { final JDBCSessionDao sessionDAO = getJDBCSessionDao(subject); if (sessionDAO != null) { sessionDAO.enableUpdatesForSession(session); } }
private boolean disableUpdatesForSession(final Subject subject, final Session session) { final JDBCSessionDao sessionDAO = getJDBCSessionDao(subject); if (sessionDAO != null) { sessionDAO.disableUpdatesForSession(session); return true; } return false; }