package uk.ac.ox.zoo.seeg.abraid.mp.publicsite.security; import org.springframework.security.core.context.SecurityContextHolder; import uk.ac.ox.zoo.seeg.abraid.mp.publicsite.domain.PublicSiteUser; /** * A service to obtain the currently logged in user. * Copyright (c) 2014 University of Oxford */ public class CurrentUserServiceImpl implements CurrentUserService { /** * Obtains the id of the currently logged in user. * @return The the id of the currently logged in user or null if user is not logged in */ @Override public Integer getCurrentUserId() { Object user = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); return (user instanceof PublicSiteUser) ? ((PublicSiteUser) user).getId() : null; } }