/* * Data Hub Service (DHuS) - For Space data distribution. * Copyright (C) 2013,2014,2015 GAEL Systems * * This file is part of DHuS software sources. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package fr.gael.dhus.messaging.jms; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.web.authentication.WebAuthenticationDetails; import fr.gael.dhus.database.object.User; public class Message { public enum MessageType { NORMAL_LOGS, // for simples logs, not used inside the code ALL_MESSAGES, // for configuration simplicity ADMIN, CART, // User ? COLLECTIONS, COMPRESS, // Utile ? DATABASE, DOWNLOADS, EVICTION, FILESCANNER, FTP, GEOCODER, MAILS, NETWORK, ODATA, PRODUCTS, PRODUCTS_PROCESSING, SCANNER, SEARCH, SECURITY, SOLR, SYSTEM, // + de d�tails ? USER, // Connections � part ? ResetPassword (demande ESA) ? UPLOADS; } private MessageType type; private String message; public Message(MessageType type, String message) { this.type = type; this.message = message; SecurityContext context = SecurityContextHolder.getContext (); if (context == null) { return; } Authentication auth = SecurityContextHolder.getContext ().getAuthentication (); if (auth == null) { return; } String user; if (auth.getDetails () instanceof WebAuthenticationDetails) { WebAuthenticationDetails details = (WebAuthenticationDetails) auth.getDetails (); user = "["+((User)auth.getPrincipal ()).getUsername () + " @ "+details.getRemoteAddress ()+"] "; } else { user = "["+auth.getPrincipal ().toString () + "] "; } this.message = user + message; } public MessageType getType () { return type; } public String getMessage () { return message; } @Override public String toString () { return getMessage(); } }