/******************************************************************************* * Copyright (c) 2015 Development Gateway, Inc and others. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the MIT License (MIT) * which accompanies this distribution, and is available at * https://opensource.org/licenses/MIT * * Contributors: * Development Gateway - initial API and implementation *******************************************************************************/ package org.devgateway.toolkit.persistence.dao; import org.springframework.data.domain.AuditorAware; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Component; /** * * This is a bean that reads the auditor information which is used to audit the * JPA entities * * @author mihai * */ @Component public class AuditorAwareImpl implements AuditorAware<String> { @Override public String getCurrentAuditor() { if (SecurityContextHolder.getContext().getAuthentication() == null) { return null; } Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (authentication == null) { return null; } final Object principal = authentication.getPrincipal(); if (principal instanceof Person) { return ((Person) principal).getUsername(); } return null; } }