/*
* SecurityUtils.java
*
* Created on Jan 25, 2010, 8:38:30 AM
*
* Description: Provides security utilities.
*
* Copyright (C) Jan 25, 2010 reed.
*
* This program is free software; you can redistribute it and/or modify it under the terms
* of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with this program;
* if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
package org.texai.security;
import net.jcip.annotations.NotThreadSafe;
import org.texai.util.TexaiException;
/** Provides security utilities.
*
* @author reed
*/
@NotThreadSafe
public final class SecurityUtils {
/** Prevents the instantiation of this static methods class. */
private SecurityUtils() {
}
/** Returns whether a security manager is installed.
*
* @return whether a security manager is installed
*/
public static boolean isSecurityManagerInstalled() {
return System.getSecurityManager() != null;
}
/** Installs the profiling security manager. */
public static void installProfilingSecurityManager() {
//Preconditions
if (isSecurityManagerInstalled()) {
throw new TexaiException("security manager: " + System.getSecurityManager() +
" (" + System.getSecurityManager().getClass().getName() + ") is already installed");
}
System.setSecurityManager(new ProfilingSecurityManager());
}
}