Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Есть одно но: в Debian/Ubuntu свой механизм очистки сессий, который выполняется кроном, а у PHP нет возможности удалять файлы сессий. Честно говоря, это «черезжопа».
09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n 200 -r -0 rm
Classes that require special handling during the serialization and deserialization process must implement special methods with these exact signatures:
private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException;
private void writeObject(java.io.ObjectOutputStream stream) throws IOException
import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.io.Serializable; public class SerializationCallbackTest implements Serializable { private void writeObject(ObjectOutputStream s) throws IOException { System.out.println("writeObject called"); } public static void main(String[] args) { try { SerializationCallbackTest me = new SerializationCallbackTest(); FileOutputStream fos = new FileOutputStream("C:\\t.tmp"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(me); oos.close(); fos.close(); } catch (Exception e) { e.printStackTrace(); } } }
Serialization of an object can be prevented by implementing writeObject and readObject methods that throw the NotSerializableException. The exception will be caught by the ObjectOutputStream and abort the serialization process.
Пишем свою реализацию сессий для обработки мертвой сессии перед зачисткой