Logguer la connexion en base avec spring security
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:
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 ;
} |