Skip to content

Instantly share code, notes, and snippets.

@rayden-alex
rayden-alex / ResourceServerConfig.java
Created February 7, 2024 02:39 — forked from rponte/ResourceServerConfig.java
Spring Security: example of OAuth2 Resource Server configuration (Spring Boot v2.6.7)
package br.com.zup.edu.minhasfigurinhas;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import static org.springframework.http.HttpMethod.GET;
import static org.springframework.http.HttpMethod.POST;
import static org.springframework.security.config.http.SessionCreationPolicy.STATELESS;
@rayden-alex
rayden-alex / AccountRepository.java
Created February 7, 2024 02:36 — forked from rponte/AccountRepository.java
JPA and Hibernate: Simple and Smart way of using PostgreSQL Advisory Locks with JPQL to prevent Lost Update anomaly
package br.com.stackspot.nullbank.withdrawal;
import org.hibernate.LockOptions;
import org.springframework.data.jpa.repository.*;
import org.springframework.stereotype.Repository;
import javax.persistence.LockModeType;
import javax.persistence.QueryHint;
import javax.transaction.Transactional;
import java.util.Optional;
@rayden-alex
rayden-alex / MockEnvironmentRule.java
Created February 7, 2024 02:25 — forked from rponte/MockEnvironmentRule.java
Mocking Spring Boot Environment during integration tests
package br.com.rponte.base.spring.config.env;
import org.junit.rules.ExternalResource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.mock.env.MockPropertySource;
import org.springframework.stereotype.Component;
/**
* https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/env/ConfigurableEnvironment.html
@rayden-alex
rayden-alex / AbstractJdbcRepository.java
Created July 7, 2020 18:56 — forked from criminy/AbstractJdbcRepository.java
Implementation of PagingAndSortingRepository using JdbcTemplate
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
@rayden-alex
rayden-alex / tokens.md
Created October 15, 2019 09:51 — forked from zmts/tokens.md
Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Основы:

Аутентификация(authentication, от греч. αὐθεντικός [authentikos] – реальный, подлинный; от αὐθέντης [authentes] – автор) - это процесс проверки учётных данных пользователя (логин/пароль). Проверка подлинности пользователя путём сравнения введённого им логина/пароля с данными сохранёнными в базе данных.

Авторизация(authorization — разрешение, уполномочивание) - это проверка прав пользователя на доступ к определенным ресурсам.

Например после аутентификации юзер sasha получает право обращатся и получать от ресурса "super.com/vip" некие данные. Во время обращения юзера sasha к ресурсу vip система авторизации проверит имеет ли право юзер обращатся к этому ресурсу (проще говоря переходить по неким разрешенным ссылкам)

@rayden-alex
rayden-alex / App.java
Created May 4, 2019 10:04 — forked from thomasdarimont/App.java
Secure REST API Example with Spring Security, Spring Session, Spring Boot
package demo;
import java.io.Serializable;
import java.security.Principal;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
@rayden-alex
rayden-alex / CallDefaultMethodThroughReflection.java
Created November 27, 2018 08:13 — forked from lukaseder/CallDefaultMethodThroughReflection.java
Correct Reflective Access to Interface Default Methods in Java 8, 9, 10
// Compile on JDK 9 or 10 with javac -source 1.8 -target 1.8 CallDefaultMethodThroughReflection.java
// Blog post here: https://blog.jooq.org/2018/03/28/correct-reflective-access-to-interface-default-methods-in-java-8-9-10
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodHandles.Lookup;
import java.lang.invoke.MethodType;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
@rayden-alex
rayden-alex / supress-warning-idea.md
Created November 21, 2018 09:47 — forked from vegaasen/supress-warning-idea.md
SuppressWarnings with IntelliJ Idea

@SuppressWarnings - IntelliJ modes

Information

This list may grow each year with either new versions or patches. Enjoy!

Usage

Following is an example related to the usage of the various ignore capabilities.

GIT CHEAT SHEET

A humble attempt to create a easy on the eye, skimable git cheat sheet. Please comment with requests, improvement suggestions or corrections.

Starting a Repo init/clone/remote

Create or Initialize a repo from existing code or files

git init

Clone a current repo (into a folder with same name as repo)

@rayden-alex
rayden-alex / GenerateEntityPOJO.groovy
Created July 22, 2018 16:00 — forked from virtualadrian/GenerateEntityPOJO.groovy
IntelliJ Generators For Entity ( JPA Entity, View Model, Rest Controller ) - WIP plz comment with desires -
import com.intellij.database.model.DasTable
import com.intellij.database.model.ObjectKind
import com.intellij.database.util.Case
import com.intellij.database.util.DasUtil
/*
* Available context bindings:
* SELECTION Iterable<DasObject>
* PROJECT project
* FILES files helper