Index: murachi/src/main/java/ve/gob/cenditel/murachi/AuthenticationService.java
===================================================================
--- murachi/src/main/java/ve/gob/cenditel/murachi/AuthenticationService.java	(revision 14891932a03c6e67ea0fabe55e6c75ba832f0c84)
+++ murachi/src/main/java/ve/gob/cenditel/murachi/AuthenticationService.java	(revision 14891932a03c6e67ea0fabe55e6c75ba832f0c84)
@@ -0,0 +1,61 @@
+package ve.gob.cenditel.murachi;
+
+import java.io.IOException;
+//import java.util.Base64;
+import java.util.StringTokenizer;
+
+import org.apache.commons.codec.binary.Base64;
+import org.apache.log4j.Logger;
+
+/**
+ * Clase para ejecutar el servicio de autenticacion basica HTTP.
+ * 
+ * @author aaraujo
+ *
+ */
+public class AuthenticationService {
+	
+	final static Logger logger = Logger.getLogger(AuthenticationService.class);
+	
+	public boolean authenticate(String authCredentials) {
+
+		if (null == authCredentials)
+			return false;
+		// header value format will be "Basic encodedstring" for Basic
+		// authentication. Example "Basic YWRtaW46YWRtaW4="
+		final String encodedUserPassword = authCredentials.replaceFirst("Basic"
+				+ " ", "");
+		String usernameAndPassword = null;
+		try {
+			//byte[] decodedBytes = Base64.getDecoder().decode(encodedUserPassword);
+			
+			// usando la clase Base64 de org.apache.commons.codec.binary.Base64
+			byte[] decodedBytes = Base64.decodeBase64(encodedUserPassword);
+			
+			usernameAndPassword = new String(decodedBytes, "UTF-8");
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		final StringTokenizer tokenizer = new StringTokenizer(
+				usernameAndPassword, ":");
+		final String username = tokenizer.nextToken();
+		final String password = tokenizer.nextToken();
+		
+		logger.debug(username);
+		logger.debug(password);
+		
+		
+
+		// we have fixed the userid and password as admin
+		// call some UserService/LDAP here
+		boolean authenticationStatus = "admin".equals(username)
+				&& "admin".equals(password);
+		
+		if (!authenticationStatus) {
+			logger.error("Fallo la autenticación básica de HTTP; no se ejecuta el recurso");
+		}
+		
+		
+		return authenticationStatus;
+	}
+}
Index: murachi/src/main/java/ve/gob/cenditel/murachi/Authenticator.java
===================================================================
--- murachi/src/main/java/ve/gob/cenditel/murachi/Authenticator.java	(revision 14891932a03c6e67ea0fabe55e6c75ba832f0c84)
+++ murachi/src/main/java/ve/gob/cenditel/murachi/Authenticator.java	(revision 14891932a03c6e67ea0fabe55e6c75ba832f0c84)
@@ -0,0 +1,17 @@
+package ve.gob.cenditel.murachi;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+import javax.ws.rs.NameBinding;
+
+//@Authenticator annotation is the name binding annotation
+/**
+ * Autenticacion basica HTTP.
+ * 
+ * @author aaraujo
+ *
+ */
+@NameBinding
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Authenticator {}
Index: murachi/src/main/java/ve/gob/cenditel/murachi/JaxRsFilterAuthentication.java
===================================================================
--- murachi/src/main/java/ve/gob/cenditel/murachi/JaxRsFilterAuthentication.java	(revision 14891932a03c6e67ea0fabe55e6c75ba832f0c84)
+++ murachi/src/main/java/ve/gob/cenditel/murachi/JaxRsFilterAuthentication.java	(revision 14891932a03c6e67ea0fabe55e6c75ba832f0c84)
@@ -0,0 +1,45 @@
+package ve.gob.cenditel.murachi;
+
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerRequestFilter;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+import javax.ws.rs.ext.Provider;
+
+/**
+ * Filtro para realizar autenticación basica HTTP.
+ * 
+ * @author aaraujo
+ *
+ */
+@Provider
+@Authenticator
+public class JaxRsFilterAuthentication implements ContainerRequestFilter {
+	public static final String AUTHENTICATION_HEADER = "Authorization";
+
+	@Override
+	public void filter(ContainerRequestContext containerRequest)
+			throws WebApplicationException {
+
+		String authCredentials = containerRequest
+				.getHeaderString(AUTHENTICATION_HEADER);
+
+		// better injected
+		AuthenticationService authenticationService = new AuthenticationService();
+
+		boolean authenticationStatus = authenticationService
+				.authenticate(authCredentials);
+
+		if (!authenticationStatus) {
+			//throw new WebApplicationException(Status.UNAUTHORIZED);
+			
+			String errorMessage = "{\"error\":\"acceso no autorizado\"}";
+			Response response = Response.status(Status.UNAUTHORIZED).entity(errorMessage).build();
+			
+			throw new WebApplicationException(response);
+			
+		}
+
+	}
+}
Index: murachi/src/main/java/ve/gob/cenditel/murachi/MurachiRESTWS.java
===================================================================
--- murachi/src/main/java/ve/gob/cenditel/murachi/MurachiRESTWS.java	(revision d732178d7383cf3359efb6f9003986db1a8054f6)
+++ murachi/src/main/java/ve/gob/cenditel/murachi/MurachiRESTWS.java	(revision 14891932a03c6e67ea0fabe55e6c75ba832f0c84)
@@ -45,4 +45,5 @@
 import javax.ws.rs.FormParam;
 import javax.ws.rs.GET;
+import javax.ws.rs.NameBinding;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
@@ -180,5 +181,5 @@
 	 * 
 	 * @apiExample Example usage:
-     * curl -i https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/version
+     * curl -i https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/version -H "Authorization: Basic YWRtaW46YWRtaW4="
 	 * 
 	 * @apiSuccess {String} murachiVersion Versión del API
@@ -187,4 +188,5 @@
 	@GET
 	@Produces(MediaType.APPLICATION_JSON)
+	@Authenticator
 	public Response returnVersion() {
 		logger.info("/version: Murachi Version: " + API_VERSION);	
@@ -224,4 +226,5 @@
      *           contentType: false,
 	 *           processData: false,
+	 *           headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
      *           success: function(response) {
      *                  //identificador del archivo en el servidor
@@ -239,4 +242,8 @@
 	 *       "error": "datos recibidos del formulario son nulos"
 	 *     }
+	 *     HTTP/1.1 401 Unauthorized
+	 *     {
+	 *       "error": "acceso no autorizado"
+	 *     }
 	 *     
 	 *     HTTP/1.1 500 
@@ -252,4 +259,5 @@
 	@Consumes(MediaType.MULTIPART_FORM_DATA)
 	@Produces(MediaType.APPLICATION_JSON)
+	@Authenticator
 	public Response uploadFile(
 			@FormDataParam("upload") InputStream uploadedInputStream,
@@ -534,4 +542,5 @@
      *           contentType: false,
 	 *           processData: false,
+	 *           headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
      *           success: function(response) {
 	 *                  var json = JSON.stringify(response);
@@ -551,4 +560,8 @@
 	 *     }
 	 *     
+	 *     HTTP/1.1 401 Unauthorized
+	 *     {
+	 *       "error": "acceso no autorizado"
+	 *     }     
 	 *     
 	 *     HTTP/1.1 500 
@@ -562,4 +575,5 @@
 	@Consumes(MediaType.MULTIPART_FORM_DATA)
 	@Produces(MediaType.APPLICATION_JSON)
+	@Authenticator
 	public Response uploadFileAndVerify(
 			@FormDataParam("upload") InputStream uploadedInputStream,
@@ -714,7 +728,12 @@
 	 * 
 	 * @apiExample Example usage:
-     * curl -i https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/f011ff87-f0d0-4a5e-a0b9-a64eb70661ee
+     * curl -i https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/f011ff87-f0d0-4a5e-a0b9-a64eb70661ee -H "Authorization: Basic YWRtaW46YWRtaW4="
 	 * 
 	 * @apiErrorExample {json} Error-Response:
+	 *     HTTP/1.1 401 Unauthorized
+	 *     {
+	 *       "error": "acceso no autorizado"
+	 *     }
+	 *     
 	 *     HTTP/1.1 404 Bad Request
 	 *     {
@@ -780,4 +799,5 @@
 	@Path("/{idFile}")
 	@Produces("application/json")
+	@Authenticator
 	public Response verifyAFile(@PathParam("idFile") String idFile) throws MurachiException {
 		
@@ -1364,4 +1384,5 @@
      *           data: parameters,
      *           contentType: "application/json",
+     *           headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
      *           success: function(data, textStatus, jqXHR){
 	 *                              var json_x = data;
@@ -1386,4 +1407,9 @@
 	 *     }
 	 *     
+	 *     HTTP/1.1 401 Unauthorized
+	 *     {
+	 *       "error": "acceso no autorizado"
+	 *     }
+	 *     
 	 *     HTTP/1.1 500 Internal Server Error
 	 *     {
@@ -1398,4 +1424,5 @@
 	@Consumes(MediaType.APPLICATION_JSON)
 	@Produces(MediaType.APPLICATION_JSON)
+	@Authenticator
 	//public PresignHash presignPdf(PresignParameters presignPar, @Context HttpServletRequest req) {
 	public Response presignPdf(PresignParameters presignPar, @Context HttpServletRequest req) throws MurachiException {
@@ -1713,4 +1740,5 @@
      *           data: JSON.stringify({"signature":signature.hex}),
      *           contentType: "application/json",
+     *           headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
      *           success: function(data, textStatus, jqXHR){
      *                              alert('Archivo firmado correctamente: ' + data['signedFileId']);
@@ -1724,4 +1752,9 @@
 	 * 
 	 * @apiErrorExample {json} Error-Response:
+	 *     HTTP/1.1 401 Unauthorized
+	 *     {
+	 *       "error": "acceso no autorizado"
+	 *     } 
+	 * 
 	 *     HTTP/1.1 500 Internal Server Error
 	 *     {
@@ -1733,5 +1766,6 @@
 	@Path("/pdfs/resenas")
 	@Consumes(MediaType.APPLICATION_JSON)
-	@Produces(MediaType.APPLICATION_JSON)	
+	@Produces(MediaType.APPLICATION_JSON)
+	@Authenticator
 	public Response postsignPdf(PostsignParameters postsignPar, @Context HttpServletRequest req) throws IOException, MurachiException {
 		
@@ -1867,4 +1901,5 @@
 	@GET
 	@Path("/pdfs/{idFile}")
+	@Authenticator
 	public Response getPdfSigned(@PathParam("idFile") String idFile) {
 		logger.info("/pdfs/{idFile}");
@@ -2352,4 +2387,5 @@
      *           data: parameters,
      *           contentType: "application/json",
+     *           headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
      *           success: function(data, textStatus, jqXHR){
 	 *                              var json_x = data;
@@ -2368,4 +2404,9 @@
 	 * 
 	 * @apiErrorExample {json} Error-Response:
+	 *     HTTP/1.1 401 Unauthorized
+	 *     {
+	 *       "error": "acceso no autorizado"
+	 *     }
+	 *     
 	 *     HTTP/1.1 500 Internal Server Error
 	 *     {
@@ -2380,4 +2421,5 @@
 	@Consumes(MediaType.APPLICATION_JSON)
 	@Produces(MediaType.APPLICATION_JSON)
+	@Authenticator
 	public Response presignBdoc(PresignParametersBdoc presignPar, @Context HttpServletRequest req) throws MurachiException {
 		
@@ -2552,4 +2594,5 @@
      *           data: JSON.stringify({"signature":signature.hex}),
      *           contentType: "application/json",
+     *           headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
      *           success: function(data, textStatus, jqXHR){
      *                              alert('Archivo firmado correctamente: ' + data['signedFileId']);
@@ -2563,4 +2606,9 @@
 	 * 
 	 * @apiErrorExample {json} Error-Response:
+	 *     HTTP/1.1 401 Unauthorized
+	 *     {
+	 *       "error": "acceso no autorizado"
+	 *     }
+	 *     
 	 *     HTTP/1.1 500 Internal Server Error
 	 *     {
@@ -2572,5 +2620,6 @@
 	@Path("/bdocs/resenas")
 	@Consumes(MediaType.APPLICATION_JSON)
-	@Produces(MediaType.APPLICATION_JSON)	
+	@Produces(MediaType.APPLICATION_JSON)
+	@Authenticator
 	public Response postsignBdoc(PostsignParameters postsignPar, @Context HttpServletRequest req) throws IOException, MurachiException {
 		
@@ -2660,5 +2709,36 @@
 	 * @apiSuccess {String} containerId Identificador único del contenedor BDOC creado.
 	 * 
+	 * @apiExample Example usage:
+	 * 
+	 * var formData = new FormData();
+     * var fileInput = document.getElementById("file-sign");
+     * var list = fileInput.files;
+     * for (var i=0; i<list.length; i++){
+	 *    formData.append("upload", $("#file-sign")[0].files[i]);
+	 * }
+	 * 
+	 * $.ajax({
+     *          url: "https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/cargas",
+     *          type: "post",
+     *          dataType: "json",
+     *          data: formData,
+     *          cache: false,
+     *          contentType: false,
+	 *          processData: false,
+	 *          headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
+	 *          success: function(response) {
+	 *             var fileId = response.containerId.toString();
+	 *          },
+	 *          error: function(jqXHR, textStatus, errorThrown){
+	 *             alert('ajax error function: ' + jqXHR.responseText);                             
+	 *          }
+     *  });
+     *  
 	 * @apiErrorExample {json} Error-Response:
+	 *     HTTP/1.1 401 Unauthorized
+	 *     {
+	 *       "error": "acceso no autorizado"
+	 *     }
+	 * 
 	 *     HTTP/1.1 500 Internal Server Error
 	 *     {
@@ -2671,4 +2751,5 @@
 	@Consumes(MediaType.MULTIPART_FORM_DATA)
 	@Produces(MediaType.APPLICATION_JSON)
+	@Authenticator
 	public Response uploadFilesToBDOC(FormDataMultiPart formParams) throws MurachiException {
 		
@@ -2786,4 +2867,9 @@
 	 * 
 	 * @apiErrorExample {json} Error-Response:
+	 *     HTTP/1.1 401 Unauthorized
+	 *     {
+	 *       "error": "acceso no autorizado"
+	 *     }
+	 *     
 	 *     HTTP/1.1 500 Internal Server Error
 	 *     {
@@ -2796,4 +2882,5 @@
 	@Consumes(MediaType.MULTIPART_FORM_DATA)
 	@Produces(MediaType.APPLICATION_JSON)
+	@Authenticator
 	public Response appendFilesToBDOC(FormDataMultiPart formParams, @PathParam("containerId")  String containerId) throws MurachiException {
 		
@@ -2953,17 +3040,29 @@
 	 * @apiSuccess {String} dataFileNumber Número de archivos que se encuentran en el contendor BDOC.
 	 * 
+	 * @apiExample Example usage:
+	 * 
+	 * curl -i https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/archivos/f011ff87-f0d0-4a5e-a0b9-a64eb70661ee -k -H "Authorization: Basic YWRtaW46YWRtaW4="
+	 * 
+	 * 
 	 * @apiErrorExample {json} Error-Response:
+	 *     HTTP/1.1 401 Unauthorized
+	 *     {
+	 *       "error": "acceso no autorizado"
+	 *     }
+	 *     
+	 *     HTTP/1.1 404 Not Found
+	 *     {
+	 *       "error": "el contenedor con identificador containerId no existe ."
+	 *     }
+	 *
 	 *     HTTP/1.1 500 Internal Server Error
 	 *     {
 	 *       "error": "error interno al leer el contenedor."
 	 *     }
+	 *     
 	 *     HTTP/1.1 500 Internal Server Error
 	 *     {
 	 *       "error": "no se pudo leer el contenedor."
 	 *     }
-	 *     HTTP/1.1 404 Not Found
-	 *     {
-	 *       "error": "el contenedor con identificador containerId no existe ."
-	 *     }
 	 * 
 	 */
@@ -2971,4 +3070,5 @@
 	@Path("/bdocs/archivos/{containerId}")
 	@Produces(MediaType.APPLICATION_JSON)
+	@Authenticator
 	public Response getDataFileNumber(@PathParam("containerId")  String containerId) {
 		logger.info("recurso /bdocs/archivos/"+containerId);
@@ -3051,8 +3151,13 @@
 	 * 
 	 * @apiExample Example usage:
-     * curl -i https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/archivos/f011ff87-f0d0-4a5e-a0b9-a64eb70661ee/0
+     * curl -i https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/archivos/f011ff87-f0d0-4a5e-a0b9-a64eb70661ee/0 -H "Authorization: Basic YWRtaW46YWRtaW4="
 	 * 	 
 	 * 
 	 * @apiErrorExample {json} Error-Response:
+	 *     HTTP/1.1 401 Unauthorized
+	 *     {
+	 *       "error": "acceso no autorizado"
+	 *     }
+     *
 	 *     HTTP/1.1 404 Not Found
 	 *     {
@@ -3072,4 +3177,5 @@
 	@Path("/bdocs/archivos/{containerId}/{dataFileId}")
 	@Produces(MediaType.APPLICATION_OCTET_STREAM)
+	@Authenticator
 	public Response downloadDataFileFromBDOC(@PathParam("containerId")  String containerId, @PathParam("dataFileId")  int dataFileId) {
 		logger.info("recurso /bdocs/archivos/"+containerId+"/"+Integer.toString(dataFileId));
@@ -3164,12 +3270,18 @@
 	 * 
 	 * @apiExample Example usage:
-     * curl -i https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/archivos/papelera/f011ff87-f0d0-4a5e-a0b9-a64eb70661ee/0
+     * curl -i https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/archivos/papelera/f011ff87-f0d0-4a5e-a0b9-a64eb70661ee/0 -H "Authorization: Basic YWRtaW46YWRtaW4="
 	 * 	 
 	 * 
 	 * @apiErrorExample {json} Error-Response:
+	 *     HTTP/1.1 401 Unauthorized
+	 *     {
+	 *       "error": "acceso no autorizado"
+	 *     }
+	 *     
 	 *     HTTP/1.1 404 Not Found
 	 *     {
 	 *       "fileExist": false
 	 *     }
+	 *     
 	 *     HTTP/1.1 500 Internal server Error
 	 *     {
@@ -3181,4 +3293,5 @@
 	@Path("/bdocs/archivos/papelera/{containerId}/{dataFileId}")
 	@Produces(MediaType.APPLICATION_JSON)
+	@Authenticator
 	public Response removeDataFile(@PathParam("containerId")  String containerId, @PathParam("dataFileId") int dataFileId) {
 		logger.info("recurso /bdocs/archivos/papelera/"+containerId+"/"+Integer.toString(dataFileId));
@@ -3291,16 +3404,23 @@
 	 * 
 	 * @apiExample Example usage:
-     * curl -i https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/archivos/lista/f011ff87-f0d0-4a5e-a0b9-a64eb70661ee
+     * curl -i https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/archivos/lista/f011ff87-f0d0-4a5e-a0b9-a64eb70661ee -H "Authorization: Basic YWRtaW46YWRtaW4=" 
 	 * 	 
 	 * 
 	 * @apiErrorExample {json} Error-Response:
+	 *     HTTP/1.1 401 Unauthorized
+	 *     {
+	 *       "error": "acceso no autorizado"
+	 *     }
+	 *     
 	 *     HTTP/1.1 404 Not Found
 	 *     {
 	 *       "error": "El contenedor con identificador containerId no existe."
 	 *     }
+	 *     
 	 *     HTTP/1.1 500 Internal server Error
 	 *     {
 	 *       "error": "no se pudo leer el contenido del contenedor."
 	 *     }
+     *     
      *     HTTP/1.1 500 Internal server Error
 	 *     {
@@ -3312,4 +3432,5 @@
 	@Path("/bdocs/archivos/lista/{containerId}")
 	@Produces(MediaType.APPLICATION_JSON)
+	@Authenticator
 	public Response getDataFileList(@PathParam("containerId")  String containerId) {
 	
@@ -3412,19 +3533,30 @@
 	 * @apiDescription Retorna el número de firmas del contendor BDOC.
 	 * 
+	 * @apiExample Example usage:
+     * curl -i https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/firmas/f011ff87-f0d0-4a5e-a0b9-a64eb70661ee -H "Authorization: Basic YWRtaW46YWRtaW4="
+	 * 
 	 * @apiSuccess {String} signatureNumber Número de firmas del contendor BDOC.
 	 * 
 	 * @apiErrorExample {json} Error-Response:
+	 *     HTTP/1.1 401 Unauthorized
+	 *     {
+	 *       "error": "acceso no autorizado"
+	 *     }
+	 *     
+	 *     HTTP/1.1 404 Not Found
+	 *     {
+	 *       "error": "el contenedor con identificador containerId no existe ."
+	 *     }
+	 *     
 	 *     HTTP/1.1 500 Internal Server Error
 	 *     {
 	 *       "error": "error interno al leer el contenedor."
 	 *     }
-	 *     HTTP/1.1 404 Not Found
-	 *     {
-	 *       "error": "el contenedor con identificador containerId no existe ."
-	 *     } 
+	  
 	 */
 	@GET
 	@Path("/bdocs/firmas/{containerId}")
 	@Produces(MediaType.APPLICATION_JSON)
+	@Authenticator
 	public Response getSignatureNumber(@PathParam("containerId")  String containerId) {
 		logger.info("/bdocs/firmas/"+containerId);
@@ -3488,5 +3620,5 @@
 	 * @return identificador del contenedor.
 	 * 
-	 * * @api {get} /Murachi/0.1/archivos/bdocs/firmas/papelera{containerId}/{signatureId} Elimina una firma de un contenedor.
+	 * * @api {get} /Murachi/0.1/archivos/bdocs/firmas/papelera/{containerId}/{signatureId} Elimina una firma de un contenedor.
 	 * @apiName BDocEliminaFirmas
 	 * @apiGroup BDOCS
@@ -3497,16 +3629,25 @@
 	 * 
 	 * @apiDescription Elimina una firma del contendor BDOC.
-	 * 
+     *
+	 * @apiExample Example usage:
+     * curl -i https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/firmas/papelera/f011ff87-f0d0-4a5e-a0b9-a64eb70661ee -H "Authorization: Basic YWRtaW46YWRtaW4="
+     * 
 	 * @apiSuccess {String} mensaje firma eliminada correctamente
 	 * 
 	 * @apiErrorExample {json} Error-Response:
+	 *     HTTP/1.1 401 Unauthorized
+	 *     {
+	 *       "error": "acceso no autorizado"
+	 *     }
+	 *     
+	 *     HTTP/1.1 404 Not Found
+	 *     {
+	 *       "error": "el contenedor con identificador containerId no existe ."
+	 *     } 
+	 *     
 	 *     HTTP/1.1 500 Internal Server Error
 	 *     {
 	 *       "error": "no se pudo leer el contenido del contenedor."
 	 *     }
-	 *     HTTP/1.1 404 Not Found
-	 *     {
-	 *       "error": "el contenedor con identificador containerId no existe ."
-	 *     } 
 	 * 
 	 */
@@ -3514,4 +3655,5 @@
 	@Path("/bdocs/firmas/papelera/{containerId}/{signatureId}")
 	@Produces(MediaType.APPLICATION_JSON)
+	@Authenticator
 	public Response removeSignature(@PathParam("containerId")  String containerId, @PathParam("signatureId") int signatureId) {
 		logger.info("recurso /bdocs/firmas/papelera/"+containerId+"/"+Integer.toString(signatureId));
@@ -3632,26 +3774,36 @@
 	 * @apiSuccess {String} signatures.signerCertificateIssuer Emisor del certificado firmante. 
 	 * @apiSuccess {String} signatures.signatureCountry País donde se realiza la firma.
+	 * 
+     * @apiExample Example usage:
+     * curl -i https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/firmas/lista/f011ff87-f0d0-4a5e-a0b9-a64eb70661ee -H "Authorization: Basic YWRtaW46YWRtaW4="
 	 *
 	 * @apiSuccess {Boolean}   containerValidation: Especifica si el contenedor posee una estructura válida.  
-
 	 * 
 	 * @apiErrorExample {json} Error-Response:
+	 *     HTTP/1.1 401 Unauthorized
+	 *     {
+	 *       "error": "acceso no autorizado"
+	 *     }
+	 *     
+ 	 *     HTTP/1.1 404 Not Found
+	 *     {
+	 *       "error": "el contenedor con identificador containerId no existe ."
+	 *     } 
+	 *     
 	 *     HTTP/1.1 500 Internal Server Error
 	 *     {
 	 *       "error": "error interno al leer el contenedor."
 	 *     }
+	 *     
 	 *     HTTP/1.1 500 Internal Server Error
 	 *     {
 	 *       "error": "El contenedor tiene un número menor que cero de firmas"
 	 *     }
-
-	 *     HTTP/1.1 404 Not Found
-	 *     {
-	 *       "error": "el contenedor con identificador containerId no existe ."
-	 *     } 
+	 *     
 	 */
 	@GET
 	@Path("/bdocs/firmas/lista/{containerId}")
 	@Produces(MediaType.APPLICATION_JSON)
+	@Authenticator
 	public Response getSignaturesList(@PathParam("containerId")  String containerId) {
 		logger.info("/bdocs/firmas/lista/"+containerId);
@@ -3776,4 +3928,5 @@
      *           data: parameters,
      *           contentType: "application/json",
+     *           headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
      *           success: function(data, textStatus, jqXHR){
 	 *                              var json_x = data;
@@ -3792,14 +3945,19 @@
 	 * 
 	 * @apiErrorExample {json} Error-Response:
+	 *     HTTP/1.1 401 Unauthorized
+	 *     {
+	 *       "error": "acceso no autorizado"
+	 *     }
+	 *     
+	 *     HTTP/1.1 404 Not Found
+	 *     {
+	 *       "error": "el contenedor con identificador containerId no existe ."
+	 *     }
+	 *     
 	 *     HTTP/1.1 500 Internal Server Error
 	 *     {
 	 *       "hash": "",
 	 *       "error": "Error en el certificado del firmante"
-	 *     }
-	 *     HTTP/1.1 404 Not Found
-	 *     {
-	 *       "error": "el contenedor con identificador containerId no existe ."
-	 *     }
-	 * 
+	 *     } 
 	 * 
 	 */
@@ -3808,4 +3966,5 @@
 	@Consumes(MediaType.APPLICATION_JSON)
 	@Produces(MediaType.APPLICATION_JSON)
+	@Authenticator
 	public Response presignBDOCContainer(PresignParametersBdoc presignPar) throws MurachiException {
 		
@@ -4040,4 +4199,5 @@
      *           	}),
      *           contentType: "application/json",
+     *           headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
      *           success: function(data, textStatus, jqXHR){
      *                              alert('Archivo firmado correctamente: ' + data['signedFileId']);
@@ -4051,12 +4211,19 @@
 	 * 
 	 * @apiErrorExample {json} Error-Response:
+	 *     HTTP/1.1 401 Unauthorized
+	 *     {
+	 *       "error": "acceso no autorizado"
+	 *     }
+	 *     
+	 *     HTTP/1.1 404 Not Found
+	 *     {
+	 *       "error": "el contenedor con identificador containerId no existe ."
+	 *     }
+	 *          
 	 *     HTTP/1.1 500 Internal Server Error
 	 *     {
 	 *       "error": "Error en proceso de deserialización y completación de firma"
 	 *     }
-	 *     HTTP/1.1 404 Not Found
-	 *     {
-	 *       "error": "el contenedor con identificador containerId no existe ."
-	 *     }
+
 	 * 
 	 */
@@ -4065,4 +4232,5 @@
 	@Consumes(MediaType.APPLICATION_JSON)
 	@Produces(MediaType.APPLICATION_JSON)	
+	@Authenticator
 	public Response postsignBDOCContainer(PostsignParameters postsignPar) throws IOException, MurachiException {
 		
