AdminPasswordAction.java revision 0e8561b1f4ae8fce3b1cac5dff812a95182b4ae1
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync/**
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync *
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * Copyright (c) 2005 Sun Microsystems Inc. All Rights Reserved
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync *
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * The contents of this file are subject to the terms
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * of the Common Development and Distribution License
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * (the License). You may not use this file except in
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * compliance with the License.
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync *
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * You can obtain a copy of the License at
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * https://opensso.dev.java.net/public/CDDLv1.0.html or
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * opensso/legal/CDDLv1.0.txt
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * See the License for the specific language governing
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * permission and limitations under the License.
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync *
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * When distributing Covered Code, include this CDDL
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * Header Notice in each file and include the License file
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * at opensso/legal/CDDLv1.0.txt.
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * If applicable, add the following below the CDDL Header,
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * with the fields enclosed by brackets [] replaced by
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * your own identifying information:
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * "Portions Copyrighted [year] [name of copyright owner]"
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync *
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * $Id: AdminPasswordAction.java,v 1.5 2008/08/19 19:09:21 veiming Exp $
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync *
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync */
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsyncpackage com.sun.identity.security;
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsyncimport java.security.PrivilegedAction;
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsyncimport com.iplanet.am.util.AdminUtils;
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync/**
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync *
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * The class is used to perform privileged operations using
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * <code>AccessController.doPrivileged()
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * </code> when using
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * <code> com.iplanet.am.util.AdminUtils</code> to obtain Administrator
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * passwords. Ths class implements the interface <code>PrivilegedAction</code>
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * with a non-default constructor. * This class should be used in order to
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * perform the privileged operation of
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * <code> com.iplanet.am.util.AdminUtils.getAdminPassword()</code>.
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync *
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * <PRE>
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync *
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * This line of code: String adminDN =
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * com.iplanet.am.util.AdminUtils.getAdminDN(); should be replaced with: String
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * adminDN = (String) AccessController.doPrivileged( new AdminPasswordAction());
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * If this is not done and Java security permissions check is enabled, then the
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * operation will fail and return a null everytime.
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync *
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * Note: Java security permissions check for OpenSSO can be enabled
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * by setting the property <code>com.sun.identity.security.checkcaller</code> to
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * true in AMConfig properties file.
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync *
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * </PRE>
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync *
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * @supported.all.api
489ce997e6d81472bf0d1322ad2b5b57ffa4c53dvboxsync */
489ce997e6d81472bf0d1322ad2b5b57ffa4c53dvboxsyncpublic class AdminPasswordAction implements PrivilegedAction {
489ce997e6d81472bf0d1322ad2b5b57ffa4c53dvboxsync
489ce997e6d81472bf0d1322ad2b5b57ffa4c53dvboxsync /**
489ce997e6d81472bf0d1322ad2b5b57ffa4c53dvboxsync * Default constructor
489ce997e6d81472bf0d1322ad2b5b57ffa4c53dvboxsync */
489ce997e6d81472bf0d1322ad2b5b57ffa4c53dvboxsync public AdminPasswordAction() {
489ce997e6d81472bf0d1322ad2b5b57ffa4c53dvboxsync super();
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync }
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync /*
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * (non-Javadoc)
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync *
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync * @see java.security.PrivilegedAction#run()
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync */
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync public Object run() {
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync if (AdminUtils.getAdminPassword()==null) {
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync return null;
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync }
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync return new String(AdminUtils.getAdminPassword());
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync }
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync}
41c77a6173c9afd8d2ea87955be516ae7d8d0dc9vboxsync