Skip to content

Instantly share code, notes, and snippets.

View rog3r's full-sized avatar

Rogério Oliveira rog3r

View GitHub Profile
package br.com.residencia18.api.validation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;
package br.com.residencia18.api.validation;
import java.util.Arrays;
import java.util.List;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
public class PasswordConstraintValidator implements ConstraintValidator<ValidPassword, String> {
package br.com.residencia18.api.service;
import java.util.Collection;
import java.util.Collections;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
package br.com.residencia18.api.service;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import br.com.residencia18.api.dto.LoginRequest;
import br.com.residencia18.api.dto.LoginResponse;
package br.com.residencia18.api.security;
import java.time.Instant;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.oauth2.jwt.JwtClaimsSet;
import org.springframework.security.oauth2.jwt.JwtEncoder;
import org.springframework.security.oauth2.jwt.JwtEncoderParameters;
import org.springframework.stereotype.Service;
package br.com.residencia18.api.repository;
import java.util.Optional;
import org.springframework.jdbc.core.simple.JdbcClient;
import org.springframework.jdbc.support.GeneratedKeyHolder;
import org.springframework.jdbc.support.KeyHolder;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
package br.com.residencia18.api.mapper;
import org.springframework.stereotype.Service;
import br.com.residencia18.api.dto.RegisterRequest;
import br.com.residencia18.api.entity.User;
@Service
public class UserMapper {
package br.com.residencia18.api.entity;
import br.com.residencia18.api.validation.ValidPassword;
import jakarta.persistence.Column;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
package br.com.residencia18.api.dto;
public record RegisterResponse(String message) {
}
package br.com.residencia18.api.dto;
public record RegisterRequest(String username, String password, String email) {
}