• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

NotesSession и внешний сервис (на tomcat)

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Всем привет.
Есть сервис на tomcat.
Сервис обращается в Lotus через Notes.jar.
Соответственно сессии, базы, виды и т.д. Все эти объекты статические с целью, чтоб не плодить лишние объекты и сессии.
Какое-то время все работает нормально, но через 2-3 часа сессия обрывается (что собственно логично ) и при обращении к любому объекту получаю ошибку
NotesException: Object no longer exists on server
Все логично. Увеличивать время жизни сессии на сервере не вариант.
Есть мысль пересоздать сессию при обрыве, но вот как поймать этот момент - не пойму
вот такой вариант не работает. Объект вроде как и null, но проверку не проходит
Java:
public class LotusConnection {
        private static Session session = null;

        //..............................
        if( LotusConnection.session == null ) {
            // code
        }
        //..............................
}
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
214
Все эти объекты статические с целью, чтоб не плодить лишние объекты и сессии.
такой метод работы с доминой чреват проблемами
и второй момент - зачем вовсе делать все через натив? (в части задач вполне подойдет DAS)
Не добавляет устойчивости
Улетевшая сессия инвадидирует все объекты от неё и как следствие - все статики накроются (их придется пересоздавать), т.о. "плодить объекты" - правильный путь
 
  • Нравится
Реакции: alexas1

swyatogor

Green Team
24.02.2014
593
24
BIT
0
Код:
import lotus.domino.NotesException;
try {
//тут код для использования сессии
} catch (NotesException e) {
// если e.id = нет сессии - то както это дело обработать.. 
            System.out.println(e.id + " | " + e.text);
            e.printStackTrace();
        }
или так не прокатывает?)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!