/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License (the "License"). * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* * * ident "%Z%%M% %I% %E% SMI" * * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * * pmUtility.java * Resource loading and utility classes */ package com.sun.admin.pm.client; import java.awt.*; import java.applet.*; import java.io.*; import java.util.*; import javax.swing.*; import com.sun.admin.pm.server.*; /* * Utility class to provide common functions to the printing * manager classes */ public class pmUtility { /* * Gets the localized string from the named bundle */ public static String getCopyrightResource(String key) { String keyvalue = null; ResourceBundle bundle = null; try { bundle = ResourceBundle.getBundle( "com.sun.admin.pm.client.pmCopyright"); } catch (MissingResourceException e) { Debug.fatal("Could not load pmCopyright file"); } try { keyvalue = bundle.getString(key); } catch (MissingResourceException e) { Debug.error("CLNT: getCopyrightResource: Missing: " + key); keyvalue = new String("<<" + key + ">>"); } return keyvalue; } public static String getResource(String key) { String keyvalue = null; ResourceBundle bundle = null; try { bundle = ResourceBundle.getBundle( "com.sun.admin.pm.client.pmResources"); } catch (MissingResourceException e) { Debug.fatal("Could not load pmResources file"); } try { keyvalue = bundle.getString(key); } catch (MissingResourceException e) { Debug.error("CLNT: getResource: Missing: " + key); keyvalue = new String("<<" + key + ">>"); } return keyvalue; } public static int getIntResource(String key) { int keyvalue = 0; String s = null; ResourceBundle bundle = null; try { bundle = ResourceBundle.getBundle( "com.sun.admin.pm.client.pmResources"); } catch (MissingResourceException e) { Debug.fatal("Could not load pmResources file"); } try { s = bundle.getString(key); } catch (MissingResourceException e) { Debug.error("Missing: " + key); } Debug.message("Resource: " + key + " Value: " + s); if (s != null) { try { keyvalue = s.charAt(0); } catch (Exception x) { Debug.error("Resource: " + key + " threw: " + x); } } return keyvalue; } public static void doLogin( pmTop mytop, JFrame frame) throws pmGuiException { pmLogin l; if (mytop.ns.getNameService().equals("nis") || mytop.ns.getNameService().equals("ldap")) { if (mytop.ns.getNameService().equals("nis")) { l = new pmLogin( frame, pmUtility.getResource("NIS.Authentication"), pmUtility.getResource("Enter.NIS.authentication.data."), mytop, "NISAuthentication"); } else { // LDAP l = new pmLogin( frame, pmUtility.getResource("LDAP.Authentication"), pmUtility.getResource("Enter.LDAP.authentication.data."), mytop, "LDAPAuthentication"); } l.setVisible(true); if ((l.getValue() != JOptionPane.OK_OPTION) && (l.getValue() != JOptionPane.CANCEL_OPTION)) { pmMessageDialog m = new pmMessageDialog( frame, pmUtility.getResource("Login.Failure"), pmUtility.getResource( "Request.cannot.be.completed.")); m.setVisible(true); throw new pmGuiException ("pmAccess: Cannot create Login screen"); } if (l.getValue() == JOptionPane.CANCEL_OPTION) { throw new pmUserCancelledException("User.Cancelled.Login"); } else { // Pass data to backend // getPassword sends back untrimmed string that is invalid // as a password as it's too long String tmpp = new String(l.passwordField.getPassword()); mytop.ns.setPasswd(tmpp.trim()); if (mytop.ns.getNameService().equals("ldap")) { // setUser for binddn mytop.ns.setUser(l.dnField.getText()); // setNameServiceHost overloaded for LDAP server name mytop.ns.setNameServiceHost(l.serverField.getText()); } try { mytop.ns.checkAuth(); Debug.message("doLogin():checkauth() OK"); } catch (Exception e) { Debug.warning("doLogin:checkAuth()exception " + e); throw new pmGuiException("Login.Authorization.Failed"); } } // User has not put in printer or server } else { pmMessageDialog m = new pmMessageDialog( frame, pmUtility.getResource("Login.Failure"), pmUtility.getResource("Request.cannot.be.completed."), mytop, "LoginFailed"); m.setVisible(true); throw new pmGuiException("pmAccess: Cannot create Login screen"); } } }