import java.io.File; import java.io.ObjectOutputStream; import java.io.ObjectInputStream; import java.io.FileOutputStream; import java.io.FileInputStream; import java.io.Serializable; import java.io.IOException; import java.util.HashMap; import java.security.SecureRandom; import java.security.NoSuchAlgorithmException; import java.rmi.server.UnicastRemoteObject; import java.rmi.RemoteException; class AgendaImpl extends UnicastRemoteObject implements Agenda { static final long serialVersionUID = 0xdefaced; /** Les utilisateurs et leurs droits */ private String [][]users = { {"bob", "flop", "rw"}, {"alice", "flup", "w"}, {"john", "coin", "r"}, }; /** Liste des sessions */ private static HashMap sessions = new HashMap(); /** Semaines des RDV */ private Semaine semaines[] = new Semaine[ 52 ]; /** Mutex sur les sauvegardes/chargements */ private static Object statemutex = new Object(); public AgendaImpl() throws RemoteException { super(); } /** * Authentifie un utlisateur * @param user Le nom d'utilisateur * @param pass Le mot de passe * @return La session ou null si échoué */ public Session login(String user, String pass) throws RemoteException, AgendaException { for(int i=0;i