Révision 96454bcd
Ajouté par Sylvain Sauvage il y a plus de 11 ans
IoTa-DiscoveryWS/IoTa-DiscoveryWS/src/main/java/fr/unicaen/iota/discovery/server/util/Session.java | ||
---|---|---|
|
||
import fr.unicaen.iota.discovery.server.hibernate.User;
|
||
import java.io.UnsupportedEncodingException;
|
||
import java.math.BigInteger;
|
||
import java.security.MessageDigest;
|
||
import java.security.NoSuchAlgorithmException;
|
||
import java.util.Date;
|
||
import java.util.HashMap;
|
||
import java.util.Map;
|
||
import org.apache.commons.logging.Log;
|
||
... | ... | |
}
|
||
private static final Log log = LogFactory.getLog(Session.class);
|
||
private static final Map<String, User> sessions = new HashMap<String, User>();
|
||
private static MessageDigest MD5;
|
||
|
||
static {
|
||
try {
|
||
MD5 = MessageDigest.getInstance("MD5");
|
||
} catch (NoSuchAlgorithmException e) {
|
||
log.fatal(null, e);
|
||
}
|
||
}
|
||
|
||
public static synchronized String openSession(User user) {
|
||
if (MD5 == null) {
|
||
log.error("MD5 not avalaible");
|
||
return null;
|
||
}
|
||
log.debug("opening session for user " + user.getUserID());
|
||
String sessionID;
|
||
java.util.Date today = new java.util.Date();
|
||
long today = new Date().getTime();
|
||
try {
|
||
do {
|
||
sessionID = MD5.MD5_Algo(Long.toString(today.getTime()) + user.getLogin() + (today.getTime() * Math.random())); // TODO add login+pass
|
||
String text = Long.toString(today) + user.getLogin() + (today * Math.random()); // TODO add login+pass
|
||
byte[] digest = MD5.digest(text.getBytes("UTF-8"));
|
||
sessionID = new BigInteger(1, digest).toString(16);
|
||
} while (sessions.containsKey(sessionID));
|
||
} catch (NoSuchAlgorithmException e) {
|
||
log.error(null, e);
|
||
return null;
|
||
} catch (UnsupportedEncodingException e) {
|
||
log.error(null, e);
|
||
return null;
|
Formats disponibles : Unified diff
Version 1.9-mock
This is version 1.9-mock. 1.9 because the API still have changes pending
(principally relative to the Discovery Services). “mock” because TLS
configuration is not yet available and the signatures (SigMa) are not fully
implemented.
- code cleaned and refactored
- lots of bugs fixed
- dependencies checked and trimmed
- documentation added
- Identity handling added
- code refactored
- new, better APIs
- Identity handling added
- use EPCglobal and DS events (no proxy types anymore)
- ETa-Callback modules are now available as web applications
- filtering rules: if a part of an event is not allowed, now the whole
event is deleted from the result (before only the rejectd part was)
- new temporary User web service
- new Xi module: XACML Interrogation web service (was two modules: TCP and
servlet)
- ETa and its Callback modules
- ActiveMQ
- SigMa
- certificate/signing key
- new simplified figures (sans IoTa and simplified IoTa)
- new figure for ETa modules
- show 3rd party clients
- data flows specified
- TLS and link security added
- IDs and trusted IDs added
- color adjusted for printing
- GREYC logo added