Path: blob/master/test/jdk/java/security/Provider/TestClient.java
41149 views
/*1* Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/22package c;2324import java.security.Provider;25import java.security.Security;26import java.util.Iterator;27import java.util.ServiceLoader;2829/**30* A Test client using different mechanism to search the custom security31* provider. It uses ClassLoader, ServiceLoader and default mechanism to find32* a provider registered through "java.security" extension file.33*/34public class TestClient {3536public static void main(String[] args) throws Exception {3738Provider p = null;39if (args != null && args.length > 1) {40switch (args[0]) {41case "CL":42p = (Provider) Class.forName(args[1]).newInstance();43if (Security.addProvider(p) == -1) {44throw new RuntimeException("Failed to add provider");45}46break;47case "SL":48ServiceLoader<Provider> services49= ServiceLoader.load(java.security.Provider.class);50Iterator<Provider> iterator = services.iterator();51while (iterator.hasNext()) {52Provider spr = iterator.next();53if (spr.getName().equals(args[1])) {54p = spr;55if (Security.addProvider(p) == -1) {56throw new RuntimeException(57"Failed to add provider");58}59break;60}61}62break;63case "SPN":64case "SPT":65p = Security.getProvider(args[1]);66break;67default:68throw new RuntimeException("Invalid argument.");69}70}71if (p == null) {72throw new RuntimeException("Provider TestProvider not found");73}74System.out.printf("Client: found provider %s", p.getName());75}76}777879