AnsweredAssumed Answered

Modificación de password de administrador

Question asked by kylian on Jul 7, 2010
Latest reply on Jul 7, 2010 by fegor
Hola, estoy añadiendo contenido en el gestor documental desde Java utilizando la clase que indico más abajo

public class AddContentHelper {
   
   

   public static void execute(byte[] doc, String extension, String filename, String type, String uuid) throws Exception {
      
       // Start the session
       AuthenticationUtils.startSession("admin", "admin");
      
      // Creamos la referencia del nodo padre, donde se añadirá el contenido
      // En este caso el nodo padre es company_home
      
       FacesContext context = FacesContext.getCurrentInstance();
       String homeSpaceUUID = Application.getCurrentUser(context).getHomeSpaceId();
      
      Store storeRef = new Store(Constants.WORKSPACE_STORE, "SpacesStore");
      ParentReference companyHomeParent = new ParentReference(storeRef, (uuid!=null)? uuid : homeSpaceUUID,
            null, Constants.ASSOC_CONTAINS, null);

      
      
      Calendar calendario = Calendar.getInstance();
      
      String timecad="";
      timecad+=String.valueOf(calendario.get(Calendar.HOUR_OF_DAY));
      timecad+=String.valueOf(calendario.get(Calendar.MINUTE));
      timecad+=String.valueOf(calendario.get(Calendar.SECOND));
      
      
      // Asignamos un nombre para el nodo que vamos a crea en company_home
      String name = "Memorias (" + System.currentTimeMillis()
            + ")";
      name= filename+"_"+timecad;
      companyHomeParent.setChildName("cm:" + name);

      // Comienza la construcción de nodo

      NamedValue[] contentProps = new NamedValue[1];
      contentProps[0] = Utils.createNamedValue(Constants.PROP_NAME, name+extension);
      CMLCreate create = new CMLCreate("1", companyHomeParent, null, null,
            null, Constants.TYPE_CONTENT, contentProps);

      // Añadimos aspectos al nodo

      NamedValue[] titledProps = new NamedValue[2];
      titledProps[0] = Utils.createNamedValue(Constants.PROP_TITLE, name+extension);
      titledProps[1] = Utils.createNamedValue(Constants.PROP_DESCRIPTION,
            name+extension);
      CMLAddAspect addAspect = new CMLAddAspect(Constants.ASPECT_TITLED,
            titledProps, null, "1");

      // Contruimos CML Block, con el nodo y sus aspectos

      CML cml = new CML();
      cml.setCreate(new CMLCreate[] { create });
      cml.setAddAspect(new CMLAddAspect[] { addAspect });

      // Creamos y recuperamos el contenido vía Repository Web Service

      UpdateResult[] result = WebServiceFactory.getRepositoryService()
            .update(cml);
      Reference content = result[0].getDestination();

      // 
      // Escribimos el contenido
      // 

      ContentServiceSoapBindingStub contentService = WebServiceFactory
            .getContentService();
      ContentFormat contentFormat = new ContentFormat(type, "UTF-8");
      contentService.write(content, Constants.PROP_CONTENT, doc,
            contentFormat);

   }}

El problema que me surje es que de acuerdo a los requisitos de la aplicación que estoy realizando el usuario admin tiene que tener libertad para modifcar su password, y eso me plantea un problema cuando trato de insertar contenido.

Ahora mismo tengo metido "a fuego" en el código la password genérica del admin

AuthenticationUtils.startSession("admin", "admin");

Lo que necesitaría es como obtener la password de ese usuario de forma dinámica (y sin encriptar) para que este método me funcione siempre con independencia de la contraseña con la que se haya autenticado el usuario admin…

¿Alguna idea?, ¿alguien sabe como acceder a esa información o en su defecto cómo poder abordar este problema?

Muchas gracias por anticipado

Outcomes