Bonjour à tous,

J'utilise Spring-Security pour la connexion de mes utilisateurs sur le site. Je vais chercher les droits/roles de mes utilisateurs en base dans un populator. Au passage, je veux logguer la connexion en base, ce que j'arrive à faire.

Ce qui me manque, c'est de pouvoir récupérer le "user-agent" (msie, firefox, etc.) qui a été utilisé.

Vous pouvez me dire si cette conception est bonne déjà, et comment récupérer mon user-agent, svp. ?

Voici à quoi ressemble actuellement mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
public class MonPopulator implements LdapAuthoritiesPopulator {
 
@Autowired
private UserService userService;
 
@Override
public final Collection<? extends GrantedAuthority> getGrantedAuthorities(DirContextOperations userData, String username) {
 
	logger.debug("getGrantedAuthorities");
 
	final MonUser user = getMonUserByUsernameEnBase(username);
 
	final List<GrantedAuthority> authorities = newArrayList();
 
	// token
	final List<GrantedAuthority> grantedAuthorities = getAuthorities(user.getRoles());
	authorities.addAll(grantedAuthorities);
 
	// Register en base
	registerConnectionIntoDb(userData, username);
 
	return authorities;
}
 
/**
 * Enregistre en base le fait que l'utilisateur vient de se connecter.
 * 
 * @param userData
 * @param username
 */
private void registerConnectionIntoDb(DirContextOperations userData, String username) {
	logger.debug("registerConnectionIntoDb");
 
	final ApplicationEnum appEnum = getApplicationEnum();
 
	final String userAgent = getUserAgent(userData);
 
 
 
	userService.registerConnectionIntoDb(username, userAgent, appEnum);
}
 
private static String getUserAgent(DirContextOperations userData) {
 
	final String userAgent = "firefox"; // partie a changer
 
	return userAgent ;
}