El RFC que define el protocolo en su versión 1.1 es el 2616 [1]. Los mensajes se pueden clasificar en dos tipos:
El objetivo de SMTP (Simple Mail Transport Protocol) es transferir correo de forma segura y eficiente entre diferentes subsistemas de una red WAN o LAN. Requiere de un transporte que usualmente es TCP pero no está restringido solamente a este protocolo. El único requisito es que sea un transporte seguro y que se haga de forma ordenada. Permite que un correo sea retransmitido por una serie de hosts intermedios de una red. Luego, para la recepción final de los correos, normalmente se utilizan otros protocolos como por ejemplo POP (Post Office Protocol) e IMAP. Uno de los RFC que lo define es el 5321 [1].
El siguiente dibujo esquematiza la arquitectura e interacciones típica de un sistema con SMTP:
+----------+ +----------+
#include <stdio.h> | |
#include <stdlib.h> | |
#include <unistd.h> | |
#include <sys/io.h> | |
#define base 0x378 /* parallel port base address */ | |
int main(){ | |
int y; | |
if (ioperm(base,1,1)){ |
import java.sql.*; | |
public class Main { | |
public static void main(String[] args) { | |
// Create a variable for the connection string. | |
String connectionUrl = "jdbc:sqlserver://10.64.36.137:1433;user=sigma;password=Password33"; | |
try { | |
Connection con = DriverManager.getConnection(connectionUrl); Statement stmt = con.createStatement(); |
SSL/TLS es gestionado por Spring Boot con su servidor Tomcat embebido. Para publicar servicios a través de HTTPS hacer lo siguiente:
- Generar keystore (o importar claves desde archivo crt en keystore).
- Agregar las configuraciones en el archivo
.properties
que usa Spring Boot (por defectosrc/main/resources/application.properties
).
Mas info: https://howtodoinjava.com/spring-boot/spring-boot-ssl-https-example/
./mvnm package
El archivo mvnm
lo genera el IDE (por ejemplo Itellij IDEA) pero puede sustituirse por el comando maven
. Al final de la salida se mostrará el directorio donde se genera el JAR (usualmente es en target/
).
Suponiendo que el archivo JAR generado se encuentra en target/server.jar
:
El despliegue de la aplicación web está pensado para realizarse con nginx, el cual se encargará de servir todo el contenido estático publicando solamente el archivo index.html
. Como dice en la página oficial (ver referencias), la configuración se hace editando el archivo nginx.conf
el cual puede estar alojado en alguna de las siguientes rutas:
/usr/local/nginx/conf
,/etc/nginx
/usr/local/etc/nginx
La discriminación de usuarios reales contra bots o algún otro tipo de mecanismos está hecha con reCaptcha versión 2. El funcionamiento de reCaptcha requiere de cierta implementación en el servidor con el backend de la institución y en el servidor con el frontend (de la misma institución).
Como dice en la documentación oficial (ver referencias), lo primero es registrar el dominio donde se publicará el frontend desde el servidor de la institución y obtener un par de claves (pública y privada) asociadas al dominio registrado. Esto se hace a través de la consola de administración.
Para esto se debe editar el archivo 'application.properties'. Allí se encontrará una línea similar a la siguiente:
package com.bruno.ws; | |
import org.apache.wss4j.dom.WSConstants; | |
import org.apache.wss4j.dom.handler.WSHandlerConstants; | |
import org.springframework.beans.factory.annotation.Autowired; | |
import org.springframework.beans.factory.annotation.Qualifier; | |
import org.springframework.beans.factory.annotation.Value; | |
import org.springframework.context.annotation.Bean; | |
import org.springframework.context.annotation.Configuration; | |
import org.springframework.context.annotation.PropertySource; |
<?xml version="1.0" encoding="UTF-8"?> | |
<!-- this is really not | |
> needed... you can just build (or rename WAR file to) | |
> spring-boot-jboss.war this file goes on src/main/webapp/WEB-INF/jboss-web.xml | |
> --> | |
<!DOCTYPE jboss-web> | |
<jboss-web> | |
<context-root>/app</context-root> | |
</jboss-web> |