Skip to content

Instantly share code, notes, and snippets.

View brunopk's full-sized avatar

Bruno Piaggio brunopk

View GitHub Profile
@brunopk
brunopk / resumen_http.md
Last active December 5, 2018 00:29
Resumen del protocolo HTTP

Protocolo HTTP

Introducción

El RFC que define el protocolo en su versión 1.1 es el 2616 [1]. Los mensajes se pueden clasificar en dos tipos:

Requests

@brunopk
brunopk / resumen_smtp.md
Last active December 5, 2018 00:31
Resumen del protocolo SMTP

Protocolo SMTP

Introducción

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)){
@brunopk
brunopk / Main.java
Created March 2, 2020 17:34
SQL Server connection with Java 8
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();
@brunopk
brunopk / spring_boot_https.md
Last active May 14, 2020 23:44
Usar HTTPS con Spring Boot 2

SSL/TLS es gestionado por Spring Boot con su servidor Tomcat embebido. Para publicar servicios a través de HTTPS hacer lo siguiente:

  1. Generar keystore (o importar claves desde archivo crt en keystore).
  2. Agregar las configuraciones en el archivo .properties que usa Spring Boot (por defecto src/main/resources/application.properties).

Mas info: https://howtodoinjava.com/spring-boot/spring-boot-ssl-https-example/

@brunopk
brunopk / compile_and_run_spring_boot_app.md
Last active May 15, 2020 15:58
Compilar y correr aplicaciones con Spring Boot y Maven

Generar JAR

./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/).

Correr la aplicación

Suponiendo que el archivo JAR generado se encuentra en target/server.jar:

@brunopk
brunopk / deploy_angular_on_nginx_with_https.md
Created August 20, 2020 20:05
Deploy Angular on nginx with HTTPS

Deploy Angular on nginx with HTTPS

Introducción

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
@brunopk
brunopk / google_recaptcha.md
Last active August 20, 2020 20:10
Google reCaptcha

Google reCaptcha

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.

Configuración de reCaptcha en backend

Para esto se debe editar el archivo 'application.properties'. Allí se encontrará una línea similar a la siguiente:

@brunopk
brunopk / WsClient.java
Created August 24, 2020 15:45
WS Security for SOAP WS client with Spring Boot
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;
@brunopk
brunopk / jboss-web.xml
Last active August 24, 2020 16:05
Deploy Spring Boot aplication to JBoss EAP 7.3 or WildFly 18
<?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>