Here you can find the source of extractName(final X500Principal dname)
public static String extractName(final X500Principal dname)
//package com.java2s; /**/*from w w w .j a v a2 s .c o m*/ * Copyright 2013 Ministerio de Industria, Energ?a y Turismo * * Este fichero es parte de "Componentes de Firma XAdES 1.1.7". * * Licencia con arreglo a la EUPL, Versi?n 1.1 o ?en cuanto sean aprobadas por la Comisi?n Europea? versiones posteriores de la EUPL (la Licencia); * Solo podr? usarse esta obra si se respeta la Licencia. * * Puede obtenerse una copia de la Licencia en: * * http://joinup.ec.europa.eu/software/page/eupl/licence-eupl * * Salvo cuando lo exija la legislaci?n aplicable o se acuerde por escrito, el programa distribuido con arreglo a la Licencia se distribuye ?TAL CUAL?, * SIN GARANT??AS NI CONDICIONES DE NING?N TIPO, ni expresas ni impl?citas. * V?ase la Licencia en el idioma concreto que rige los permisos y limitaciones que establece la Licencia. */ import java.util.ArrayList; import java.util.List; import javax.security.auth.x500.X500Principal; public class Main { public static String extractName(final X500Principal dname) { return extractName(dname.getName()); } public static String extractName(final String dname) { String res = null; String[] col = splitAttributes(dname); res = searchAttribute(col, "CN"); if (res == null) { res = searchAttribute(col, "OU"); } if (res == null) { res = searchAttribute(col, "O"); } return res; } /** * <p>Separa las distintas partes, separadas por comas, de las que se compone el String proporcionado.</p> * @param dname String a separar en partes * @return Array de String con las partes obtenidas */ private static String[] splitAttributes(final String dname) { List<String> results = new ArrayList<String>(); String[] col = dname.split(","); for (int i = 0; i < col.length; i++) { String piece = col[i]; while (i < col.length - 1) { if (!col[i + 1].contains("=")) { piece += "," + col[++i]; } else { break; } } results.add(piece); } return results.toArray(new String[0]); } private static String searchAttribute(final String[] col, final String att) { String res = null; String attmod = att.toLowerCase() + "="; for (int i = 0; i < col.length; i++) { if (col[i].trim().toLowerCase().startsWith(attmod)) { res = col[i].trim().substring(attmod.length()); break; } } return res; } }