Ir al contenido

Referencia

Glosario

Todos los términos que tienen ficha en los bloques de código — clases, métodos, anotaciones, cabeceras HTTP y propiedades — con su explicación y enlace a la documentación oficial.

Estos son los mismos términos que aparecen subrayados en el código de cada lección. Filtra por nombre o por concepto (por ejemplo, csrf, token o rol).

423 términos

tipoAbstractAuthenticationFailureEvent

Base de los eventos de login fallido: credenciales malas, cuenta bloqueada…

Documentación ↗

tipoAbstractAuthenticationToken

Clase base para tus propios tipos de Authentication (por ejemplo, una API key).

Documentación ↗

tipoAccessDeniedException

Autorización denegada. Si el usuario es anónimo termina en 401; si está autenticado, en 403.

Documentación ↗

tipoAccessDeniedHandler

void handle(request, response, AccessDeniedException)

Escribe la respuesta cuando un usuario autenticado no tiene permiso (403).

Documentación ↗

tipoAEADBadTagException

El tag de autenticación de AES-GCM no coincide: el mensaje fue manipulado o la clave/IV no son los correctos.

Documentación ↗

tipoAnonymousAuthenticationFilter

Si nadie te identificó, pone una autenticación anónima. Así el contexto nunca está vacío.

Documentación ↗

tipoArgon2PasswordEncoder

Argon2id: resistente a GPU por consumo de memoria. Recomendado por OWASP como primera opción.

Documentación ↗

tipoAuthentication

Principal + credenciales + authorities + isAuthenticated(). Antes de autenticar es una solicitud; después, el resultado verificado.

Documentación ↗

tipoAuthenticationEntryPoint

void commence(request, response, AuthenticationException)

Decide cómo pedir credenciales: redirigir a /login, responder 401 con WWW-Authenticate, o tu JSON propio.

Documentación ↗

tipoAuthenticationException

Raíz de los errores de autenticación. ExceptionTranslationFilter la convierte en un 401 mediante el AuthenticationEntryPoint.

Documentación ↗

tipoAuthenticationFailureBadCredentialsEvent

Evento de login fallido por credenciales incorrectas. Base para retrasos progresivos y alertas.

Documentación ↗

tipoAuthenticationManager

Authentication authenticate(Authentication)

Interfaz de un solo método: recibe una Authentication sin verificar y devuelve una verificada o lanza AuthenticationException.

Documentación ↗

tipoAuthenticationProvider

Quien verifica de verdad un tipo concreto de credencial (supports) y devuelve la Authentication autenticada (authenticate).

Documentación ↗

tipoAuthorizationDecision

Resultado de una autorización: concedida (true) o denegada (false).

Documentación ↗

tipoAuthorizationDeniedEvent

Evento publicado cuando se deniega un acceso (requiere un AuthorizationEventPublisher). Útil para auditoría.

Documentación ↗

tipoAuthorizationEventPublisher

Publica eventos de autorización (concedida/denegada). Necesario para recibir AuthorizationDeniedEvent.

Documentación ↗

tipoAuthorizationFilter

Último filtro de la cadena: aplica las reglas de authorizeHttpRequests. Si dice que no, lanza AccessDeniedException.

Documentación ↗

tipoAuthorizationManager

AuthorizationResult authorize(Supplier<Authentication>, T object)

El contrato único de autorización, tanto para URLs como para métodos. Cada hasRole, authenticated()… es uno ya hecho.

Documentación ↗

tipoAuthorizationManagerFactories· desde 7.0

Fábricas de reglas de autorización. multiFactor() construye reglas que además exigen factores de autenticación.

Documentación ↗

tipoAuthorizationResult· desde 6.3

Interfaz del resultado de autorización; AuthorizationDecision la implementa.

Documentación ↗

tipoAuthorizedClientServiceOAuth2AuthorizedClientManager

Manager pensado para procesos sin petición HTTP (jobs, consumidores de colas).

Documentación ↗

tipoBadCredentialsException

Credenciales incorrectas. Spring la usa también para "usuario no existe" y así evita la enumeración de usuarios.

Documentación ↗

tipoBase64

Codificación (no cifrado): cualquiera puede revertirla. getUrlEncoder() es la variante segura para URLs que usan los JWT.

Documentación ↗

tipoBasicAuthenticationFilter

Filtro de HTTP Basic: decodifica la cabecera Authorization: Basic ….

Documentación ↗

tipoBCryptPasswordEncoder

Hash adaptativo BCrypt con sal incluida. El parámetro strength (por defecto 10) controla el coste.

Documentación ↗

tipoBearerTokenAuthenticationFilter

Filtro del resource server: extrae el token de Authorization: Bearer … y lo valida.

Documentación ↗

tipoCipher

Cifrado simétrico o asimétrico de la JCA. Usa AES/GCM/NoPadding: cifra y autentica a la vez.

Documentación ↗

tipoClientHttpRequestInterceptor

Intercepta las peticiones salientes de RestClient: ideal para añadir cabeceras como Authorization.

Documentación ↗

tipoClientRegistrationRepository

Los registros de cliente OAuth2 configurados (normalmente desde propiedades).

Documentación ↗

tipoCompromisedPasswordChecker· desde 6.3

Comprueba si una contraseña aparece en filtraciones conocidas. Con un bean declarado, el login rechaza contraseñas comprometidas.

Documentación ↗

tipoCompromisedPasswordException· desde 6.3

Se lanza al autenticar con una contraseña filtrada. Captúrala para llevar al usuario a cambiarla.

Documentación ↗

tipoCookieCsrfTokenRepository

Guarda el token CSRF en una cookie XSRF-TOKEN que el JavaScript del front puede leer y reenviar.

Documentación ↗

tipoCorsConfiguration

Reglas CORS: orígenes, métodos y cabeceras permitidos, y si se aceptan credenciales.

Documentación ↗

tipoCorsConfigurationSource

Bean que Spring Security usa para responder el preflight CORS antes de autenticar.

Documentación ↗

tipoCsrfFilter

Exige un token CSRF válido en métodos que cambian estado (POST, PUT, PATCH, DELETE).

Documentación ↗

tipoCsrfToken

El token CSRF: valor, nombre de cabecera (X-CSRF-TOKEN) y nombre de parámetro (_csrf).

Documentación ↗

tipoCustomizer

Interfaz funcional que recibe un configurer y lo ajusta. Es lo que escribes como lambda en el DSL.

Documentación ↗

tipoDaoAuthenticationProvider

Provider de usuario y contraseña: carga el usuario con UserDetailsService y compara con PasswordEncoder.

Documentación ↗

tipoDelegatingFilterProxy

Puente entre el servidor (Tomcat) y los beans de Spring: Tomcat lo registra y él delega en el bean springSecurityFilterChain.

Documentación ↗

tipoDelegatingPasswordEncoder

Encoder que lee el prefijo {bcrypt}, {argon2}… de cada hash y delega en el algoritmo correcto. Permite migrar de algoritmo sin romper nada.

Documentación ↗

tipoDelegatingSecurityContextExecutorService

Envuelve un ExecutorService para que las tareas hereden el SecurityContext del hilo que las lanza.

Documentación ↗

tipoDisabledException

La cuenta está deshabilitada (enabled = false). Para el cliente sigue siendo un 401.

Documentación ↗

tipoDocumentBuilderFactory

Fábrica de parsers XML. Desactiva los DTD para evitar XXE.

Documentación ↗

tipoExceptionTranslationFilter

Envuelve el resto de la cadena en un try/catch y traduce AuthenticationException → 401 y AccessDeniedException → 403 (o 401 si eres anónimo).

Documentación ↗

tipoFactorGrantedAuthority· desde 7.0

Authority que representa un factor de autenticación ya superado (contraseña, OTT, passkey…) junto con el instante en que se obtuvo. Base del MFA en la 7.

Documentación ↗

tipoFileSystemResource

Un recurso respaldado por un fichero. Construye la ruta con cuidado si interviene el usuario.

Documentación ↗

tipoFilterChain

El "resto" de filtros. Llamar a chain.doFilter(...) deja continuar la petición; no llamarlo la corta.

Documentación ↗

tipoFilterChainProxy

El punto de entrada de toda la seguridad Servlet. Elige la cadena, la recorre, aplica el HttpFirewall y limpia el contexto al terminar.

Documentación ↗

tipoGCMParameterSpec

Parámetros de AES-GCM: tamaño del tag (128 bits) y el IV/nonce, que no debe repetirse nunca con la misma clave.

Documentación ↗

tipoGrantedAuthority

Un permiso concedido, representado como texto: ROLE_ADMIN, SCOPE_notes:read, FACTOR_PASSWORD…

Documentación ↗

tipoHaveIBeenPwnedRestApiPasswordChecker· desde 6.3

Implementación basada en la API de Have I Been Pwned con k-anonimato: solo envía los 5 primeros caracteres del SHA-1.

Documentación ↗

tipoHKDFParameterSpec· desde Java 25

Parámetros de HKDF: material de entrada (IKM), sal, info y longitud de la clave derivada.

Documentación ↗

tipoHttpMethod

Métodos HTTP. En reglas: requestMatchers(HttpMethod.DELETE, "/api/**").

Documentación ↗

tipoHttpSecurity

El constructor de una SecurityFilterChain. Cada método (csrf, cors, httpBasic…) añade, configura o quita filtros de la cadena.

Documentación ↗

tipoHttpServletRequest

La petición HTTP en el mundo Servlet: cabeceras, parámetros, sesión.

Documentación ↗

tipoHttpSessionEventPublisher

Publica eventos de creación/destrucción de sesión. Necesario para limitar sesiones concurrentes.

Documentación ↗

tipoHttpSessionSecurityContextRepository

Guarda el SecurityContext en la HttpSession. Es lo que hace que sigas autenticado con la cookie JSESSIONID.

Documentación ↗

tipoHttpStatus

Enum de códigos HTTP: UNAUTHORIZED (401), FORBIDDEN (403), NOT_FOUND (404)…

Documentación ↗

tipoInetAddress

Dirección IP resuelta. Sirve para bloquear destinos internos (isLoopbackAddress, isSiteLocalAddress) contra SSRF.

Documentación ↗

tipoInMemoryUserDetailsManager

Usuarios en memoria. Perfecto para demos y tests; nunca para producción.

Documentación ↗

tipoIO· desde Java 25

Utilidades de consola (IO.println, IO.readln) pensadas para ficheros fuente compactos.

Documentación ↗

tipoJdbcOneTimeTokenService· desde 6.4

Guarda los tokens de un solo uso en base de datos. Úsalo en producción en vez del almacén en memoria.

Documentación ↗

tipoJdbcTemplate

Acceso a BD con SQL. Usa siempre parámetros ?: nunca concatenes entrada del usuario.

Documentación ↗

tipoJdbcTokenRepositoryImpl

Guarda los tokens de remember-me en la tabla persistent_logins. Detecta el robo de cookies.

Documentación ↗

tipoJwt

Un JWT ya validado: headers, claims (sub, scope, exp…) y el valor del token. Es el principal en un resource server.

Documentación ↗

tipoJwtAudienceValidator

Valida que el claim aud incluya tu API: el token debe ser para ti.

Documentación ↗

tipoJwtAuthenticationConverter

Convierte un Jwt en una Authentication: decide el nombre del principal y las authorities.

Documentación ↗

tipoJwtAuthenticationToken

La Authentication de un resource server con JWT. getToken() da el Jwt.

Documentación ↗

tipoJwtClaimsSet

Builder de los claims de un JWT: issuer, subject, issuedAt, expiresAt, claim(...).

Documentación ↗

tipoJwtClaimValidator

Valida un claim cualquiera con un predicado propio.

Documentación ↗

tipoJwtDecoder

Jwt decode(String token)

Valida firma y claims de un token y devuelve un Jwt. Si algo falla, lanza JwtException (→ 401).

Documentación ↗

tipoJwtEncoderParameters

Parámetros para JwtEncoder.encode: claims y, opcionalmente, el header.

Documentación ↗

tipoJwtGrantedAuthoritiesConverter

Convierte un claim (por defecto scope/scp) en authorities con prefijo (por defecto SCOPE_).

Documentación ↗

tipoJwtValidators

Validadores estándar de JWT (exp, nbf, iss…) para combinar con los tuyos.

Documentación ↗

tipoKDF· desde Java 25

API estándar de derivación de claves (JEP 510). KDF.getInstance("HKDF-SHA256") deriva claves independientes de un secreto maestro.

Documentación ↗

tipoKEM· desde Java 21

Mecanismo de encapsulación de claves. Con "ML-KEM" (Java 24) acuerda secretos resistentes a ordenadores cuánticos.

Documentación ↗

tipoKeyGenerator

Genera claves simétricas aleatorias (p. ej. AES de 256 bits).

Documentación ↗

tipoKeyPair

Un par de claves: la privada se protege, la pública se comparte.

Documentación ↗

tipoKeyPairGenerator

Genera pares de claves pública/privada (RSA, EC, Ed25519).

Documentación ↗

tipoLoginUrlAuthenticationEntryPoint

Entry point que redirige a la página de login (302).

Documentación ↗

tipoLogoutFilter

Atiende POST /logout: invalida la sesión, limpia el contexto y borra cookies.

Documentación ↗

tipoMac

Código de autenticación de mensajes (HMAC): prueba integridad y origen con una clave compartida.

Documentación ↗

tipoMapReactiveUserDetailsService

Usuarios en memoria para WebFlux. Para demos y tests.

Documentación ↗

tipoMediaTypeRequestMatcher

Coincide según la cabecera Accept: separa navegadores (HTML) de clientes de API (JSON).

Documentación ↗

tipoMessageDigest

Hash criptográfico (SHA-256…). MessageDigest.isEqual compara en tiempo constante.

Documentación ↗

tipoMockMvc

Ejecuta peticiones contra tu app sin servidor real, pasando por la cadena de seguridad.

Documentación ↗

tipoMultipartFile

Un fichero subido. Nunca confíes en getOriginalFilename() ni en getContentType(): vienen del cliente.

Documentación ↗

tipoNimbusJwtDecoder

Implementación de JwtDecoder basada en Nimbus. withPublicKey, withSecretKey, withIssuerLocation, withJwkSetUri.

Documentación ↗

tipoNimbusJwtEncoder

Implementación de JwtEncoder basada en Nimbus; firma con las claves de un JWKSource.

Documentación ↗

tipoOAuth2AuthorizedClientManager

Obtiene, guarda y renueva los tokens de un cliente OAuth2 (Client Credentials, refresh token…).

Documentación ↗

tipoOAuth2AuthorizedClientProviderBuilder

Construye los proveedores de tokens que usará el manager: clientCredentials(), refreshToken()…

Documentación ↗

tipoOAuth2AuthorizedClientService

Guarda los clientes autorizados (y sus tokens) para reutilizarlos.

Documentación ↗

tipoOAuth2ClientHttpRequestInterceptor· desde 6.4

Interceptor de RestClient que añade el token Bearer del cliente OAuth2 y lo renueva cuando caduca.

Documentación ↗

tipoOAuth2RestClientHttpServiceGroupConfigurer· desde 7.0

Aplica el interceptor OAuth2 a los grupos de interfaces HTTP de Spring Framework 7.

Documentación ↗

tipoObjectInputFilter

Filtra qué clases se pueden deserializar con ObjectInputStream.

Documentación ↗

tipoObjectInputStream

Deserialización nativa de Java. Nunca con datos no confiables: permite ejecutar código mediante gadget chains.

Documentación ↗

tipoOidcUser

Usuario autenticado con OpenID Connect: incluye los claims del id_token.

Documentación ↗

tipoOncePerRequestFilter

Clase base para filtros propios: garantiza una sola ejecución por petición, incluso con forwards internos.

Documentación ↗

tipoOneTimeToken· desde 6.4

Token de un solo uso con usuario y caducidad (5 minutos por defecto).

Documentación ↗

tipoOneTimeTokenGenerationSuccessHandler· desde 6.4

Tu código de "envío" del login por enlace mágico: recibe el OneTimeToken generado y lo entrega (email, SMS).

Documentación ↗

tipoPasswordEncoder

Convierte contraseñas en hashes (encode) y verifica (matches). La contraseña nunca se guarda ni se compara en claro.

Documentación ↗

tipoPasswordEncoderFactories

Fábrica del DelegatingPasswordEncoder recomendado (BCrypt por defecto, con prefijos {id}).

Documentación ↗

tipoPath

Ruta del sistema de ficheros. Usa normalize() y startsWith(base) para evitar path traversal.

Documentación ↗

tipoPathPatternRequestMatcher· desde 6.5

El matcher de rutas por defecto en la 7: usa el mismo motor de patrones que Spring MVC. Sustituye a AntPathRequestMatcher y MvcRequestMatcher.

Documentación ↗

tipoPEMDecoder· desde Java 25 (preview)

Lee claves y certificados en formato PEM. Requiere --enable-preview.

Documentación ↗

tipoPEMEncoder· desde Java 25 (preview)

Codifica claves y certificados en formato PEM. Requiere --enable-preview.

Documentación ↗

tipoPersistentTokenRepository

Almacén de tokens de remember-me persistentes (serie + token).

Documentación ↗

tipoPreparedStatement

Consulta SQL precompilada con parámetros. Los datos viajan separados del código SQL: adiós inyección.

Documentación ↗

tipoProblemDetail

Error HTTP estándar RFC 9457 (application/problem+json): type, title, status, detail.

Documentación ↗

tipoProviderManager

Implementación estándar de AuthenticationManager. No autentica nada: delega en el primer AuthenticationProvider que soporta el tipo de token.

Documentación ↗

tipoReactiveSecurityContextHolder

Lee el SecurityContext desde el contexto de Reactor. En WebFlux sustituye a SecurityContextHolder.

Documentación ↗

tipoReactiveUserDetailsService

Carga usuarios devolviendo Mono<UserDetails>. No uses dentro código bloqueante.

Documentación ↗

tipoRedirectOneTimeTokenGenerationSuccessHandler· desde 6.4

Tras generar el token de un solo uso, redirige a una página tuya ("revisa tu correo").

Documentación ↗

tipoRegisteredClient

Un cliente registrado en el Authorization Server: id, secreto, grants permitidos, redirect URIs y scopes.

Documentación ↗

tipoRegisteredClientRepository

Dónde el Authorization Server busca los clientes registrados (memoria o JDBC).

Documentación ↗

tipoRequestAttributeSecurityContextRepository

Guarda el contexto solo durante la petición actual (atributo de request). Típico en APIs stateless.

Documentación ↗

tipoRequestAuthorizationContext

Lo que recibe una regla web: la petición y las variables del patrón ({id}).

Documentación ↗

tipoResponseStatusException

Excepción que se traduce en un código HTTP concreto, p. ej. 404 para un recurso ajeno.

Documentación ↗

tipoRestClient

Cliente HTTP síncrono de Spring. Si la URL viene del usuario, valida destino para evitar SSRF.

Documentación ↗

tipoRoleHierarchy

Define que unos roles incluyen a otros (ROLE_ADMIN > ROLE_USER). Se aplica en URLs y métodos.

Documentación ↗

tipoRoleHierarchyImpl

Implementación de RoleHierarchy. fromHierarchy("A > B") la crea desde texto.

Documentación ↗

tipoScopedValue· desde Java 25

Valor inmutable ligado a un bloque de ejecución (y a sus tareas hijas). Sustituto seguro de ThreadLocal con hilos virtuales: no hay que limpiarlo ni puede filtrarse entre peticiones.

Documentación ↗

tipoSecretKey

Clave simétrica. Guárdala en un gestor de secretos, nunca en el repositorio.

Documentación ↗

tipoSecretKeySpec

Crea una clave a partir de bytes existentes (p. ej. un secreto HMAC).

Documentación ↗

tipoSecureRandom

Generador aleatorio criptográficamente seguro. Úsalo para tokens, sales y claves; nunca Random ni Math.random.

Documentación ↗

tipoSecurityContext

Contenedor de la Authentication actual durante la petición.

Documentación ↗

tipoSecurityContextHolder

Guarda el SecurityContext del hilo actual (un ThreadLocal por defecto). Desde aquí se lee quién está autenticado.

Documentación ↗

tipoSecurityContextHolderFilter

Primer filtro: carga (de forma perezosa) el contexto desde el SecurityContextRepository.

Documentación ↗

tipoSecurityContextRepository

Dónde se guarda el contexto entre peticiones: en sesión (stateful) o en ningún sitio (stateless).

Documentación ↗

tipoSecurityFilterChain

Una lista ordenada de filtros asociada a un RequestMatcher. Puedes declarar varias; FilterChainProxy ejecuta solo la primera que coincide.

Documentación ↗

tipoSecurityMockMvcRequestPostProcessors

Utilidades de test: user(), jwt(), csrf(), httpBasic(), anonymous()…

Documentación ↗

tipoSecurityMockMvcResultMatchers

Aserciones de test sobre la autenticación resultante: authenticated(), unauthenticated().

Documentación ↗

tipoServerHttpSecurity

El equivalente reactivo de HttpSecurity: construye una SecurityWebFilterChain.

Documentación ↗

tipoSessionCreationPolicy

Enum que decide si Spring Security crea o usa la HttpSession: IF_REQUIRED, ALWAYS, NEVER, STATELESS.

Documentación ↗

tipoSignature

Firma digital asimétrica: se firma con la clave privada y cualquiera verifica con la pública.

Documentación ↗

tipoSimpleGrantedAuthority

La implementación básica de GrantedAuthority: un string.

Documentación ↗

tipoSpringAuthorizationEventPublisher

Implementación que publica los eventos de autorización en el ApplicationEventPublisher de Spring.

Documentación ↗

tipoTokenExchangeOAuth2AuthorizedClientProvider· desde 6.3

Obtiene un token nuevo cambiando otro (RFC 8693): otra audiencia, menos permisos.

Documentación ↗

tipoURI

Identificador de recurso parseado. Valida esquema y host antes de usar una URL que viene del usuario.

Documentación ↗

tipoUrlBasedCorsConfigurationSource

Asocia una CorsConfiguration a patrones de URL.

Documentación ↗

tipoUser

Implementación de UserDetails con builder: User.withUsername(...).password(...).roles(...).build().

Documentación ↗

tipoUserDetails

Datos de un usuario para autenticar: username, hash de contraseña, authorities y flags (enabled, accountNonLocked…).

Documentación ↗

tipoUserDetailsPasswordService

Permite a Spring actualizar el hash de un usuario (p. ej., al migrar de bcrypt a Argon2) durante un login correcto.

Documentación ↗

tipoUserDetailsService

UserDetails loadUserByUsername(String username)

Carga un usuario por nombre. Solo lo usa DaoAuthenticationProvider; con JWT de otro emisor normalmente no lo necesitas.

Documentación ↗

tipoUsernameNotFoundException

La lanza tu UserDetailsService si el usuario no existe. Por defecto se oculta tras un BadCredentialsException.

Documentación ↗

tipoUsernamePasswordAuthenticationFilter

Filtro del form login: lee usuario y contraseña de POST /login y llama al AuthenticationManager.

Documentación ↗

tipoUsernamePasswordAuthenticationToken

La Authentication de usuario y contraseña. unauthenticated(...) crea la solicitud; authenticated(...) el resultado.

Documentación ↗

tipoWebTestClient

Cliente de test para WebFlux (y MVC). Con mutateWith(mockJwt()) simula identidades.

Documentación ↗

métodoaccess()AuthorizeHttpRequestsConfigurer

access(AuthorizationManager<RequestAuthorizationContext>)

Regla con lógica propia: recibe la autenticación y el contexto (variables de la URL incluidas).

Documentación ↗

métodoaccessDeniedHandler()ExceptionHandlingConfigurer

Registra cómo responder cuando falta permiso.

Documentación ↗

métodoaddFilterAfter()HttpSecurity

Inserta tu filtro después de uno existente de la cadena.

Documentación ↗

métodoaddFilterBefore()HttpSecurity

Inserta tu filtro antes de uno existente de la cadena.

Documentación ↗

métodoaddIKM()HKDFParameterSpec

Material de clave de entrada: el secreto maestro.

Documentación ↗

métodoaddSalt()HKDFParameterSpec

Sal de la extracción. Aleatoria y no secreta.

Documentación ↗

métodoallowedOrigins()WebAuthnConfigurer

Orígenes permitidos. En WebAuthn: desde dónde se acepta la ceremonia. En CORS (setAllowedOrigins): quién puede leer tus respuestas.

Documentación ↗

métodoandExpect()ResultActions

Afirma algo sobre la respuesta (código, cabeceras, cuerpo).

Documentación ↗

métodoanonymous()SecurityMockMvcRequestPostProcessors

En tests: fuerza un usuario anónimo.

Documentación ↗

métodoanyExchange()ServerHttpSecurity

Cualquier petición no cubierta antes. Siempre al final.

Documentación ↗

métodoanyRequest()AuthorizeHttpRequestsConfigurer

Cualquier petición que no coincidió antes. Debe ser siempre la última regla.

Documentación ↗

métodoauthenticate()AuthenticationManager

Verifica una Authentication: devuelve la autenticada o lanza AuthenticationException.

Documentación ↗

métodoauthenticated()AuthorizeHttpRequestsConfigurer

Cualquier usuario autenticado (no anónimo). En tests, authenticated() es también un matcher de resultado.

Documentación ↗

métodoauthenticationEntryPoint()ExceptionHandlingConfigurer

Registra cómo responder cuando falta autenticación.

Documentación ↗

métodoauthorize()AuthorizationManager· desde 6.4

Decide si se concede el acceso. Sustituye al antiguo check, eliminado en la 7.

Documentación ↗

métodoauthorizeExchange()ServerHttpSecurity

Reglas de autorización en WebFlux (el equivalente de authorizeHttpRequests).

Documentación ↗

métodoauthorizeHttpRequests()HttpSecurity

authorizeHttpRequests(auth -> auth…)

Declara las reglas de autorización por URL. Se evalúan de arriba abajo: gana la primera que coincide.

Documentación ↗

métodobuild()HttpSecurity

Congela la configuración y crea el objeto final (la SecurityFilterChain, un UserDetails…).

Documentación ↗

métodochangeSessionId()HttpServletRequest

Cambia el id de la sesión conservando sus datos. Es la defensa contra la fijación de sesión.

Documentación ↗

métodocheck()CompromisedPasswordChecker

Comprueba una contraseña; isCompromised() dice si aparece en filtraciones.

Documentación ↗

métodoclearContext()SecurityContextHolder

Vacía el contexto del hilo actual (p. ej., tras un fallo de autenticación).

Documentación ↗

métodoclientCredentials()OAuth2AuthorizedClientProviderBuilder

Habilita el grant Client Credentials en el manager.

Documentación ↗

métodoclientRegistrationId()RequestAttributeClientRegistrationIdResolver

Indica, en una llamada de RestClient, qué registro OAuth2 usar para el token.

Documentación ↗

métodocommence()AuthenticationEntryPoint

Inicia la autenticación: escribe el 401, redirige al login…

Documentación ↗

métodocontentSecurityPolicy()HeadersConfigurer

Añade la cabecera Content-Security-Policy, la defensa más potente contra XSS.

Documentación ↗

métodocors()HttpSecurity

Activa CORS en la cadena de seguridad usando el CorsConfigurationSource. Así el preflight pasa antes de autenticar.

Documentación ↗

métodocreateDefaultWithValidators()JwtValidators

Validadores por defecto (fechas, typ) más los tuyos.

Documentación ↗

métodocreateDelegatingPasswordEncoder()PasswordEncoderFactories

Crea el encoder recomendado: BCrypt para hashes nuevos y soporte de {argon2}, {scrypt}, {pbkdf2}…

Documentación ↗

métodocreateEmptyContext()SecurityContextHolder

Crea un contexto nuevo y vacío. Úsalo en vez de modificar el existente (evita condiciones de carrera).

Documentación ↗

métodocsrf()HttpSecurity

Configura la protección CSRF (activa por defecto). En tests, csrf() añade un token válido a la petición.

Documentación ↗

métododecode()JwtDecoder

Valida y parsea un token. Lanza JwtException si la firma o los claims fallan.

Documentación ↗

métododefaultAuthenticationEntryPointFor()ExceptionHandlingConfigurer

Entry point solo para ciertas peticiones (p. ej. HTML → redirigir a /login).

Documentación ↗

métododefaultDeniedHandlerForMissingAuthority()ExceptionHandlingConfigurer· desde 7.0

Manejador para cuando falta una authority concreta, p. ej. redirigir al segundo factor si falta FACTOR_OTT.

Documentación ↗

métododenyAll()AuthorizeHttpRequestsConfigurer

Nadie entra. Buena regla por defecto para "todo lo que no declaré".

Documentación ↗

métododisable()AbstractHttpConfigurer

Quita ese filtro de la cadena. No es lo mismo que no llamarlo: CSRF, cabeceras y sesión están activos por defecto.

Documentación ↗

métododoFilter()FilterChain

Pasa la petición al siguiente filtro. Lo que escribas después se ejecuta "a la vuelta".

Documentación ↗

métododoFilterInternal()OncePerRequestFilter

Lo que hace tu filtro. Llama a chain.doFilter para dejar continuar la petición.

Documentación ↗

métododoFinal()Cipher

Termina la operación (cifrar, descifrar o calcular un MAC) y devuelve el resultado. En AES-GCM, si el tag no cuadra lanza excepción: el dato fue manipulado.

Documentación ↗

métodoencode()PasswordEncoder

Hashea una contraseña (con sal aleatoria). Dos llamadas con la misma contraseña dan hashes distintos.

Documentación ↗

métodoexceptionHandling()HttpSecurity

Configura el AuthenticationEntryPoint (401) y el AccessDeniedHandler (403).

Documentación ↗

métodoformLogin()HttpSecurity

Activa el login con formulario (/login) y la sesión resultante.

Documentación ↗

métodoforStatusAndDetail()ProblemDetail

Crea un ProblemDetail con código y detalle.

Documentación ↗

métodoframeOptions()HeadersConfigurer

Configura X-Frame-Options (DENY por defecto) contra clickjacking.

Documentación ↗

métodofromHierarchy()RoleHierarchyImpl· desde 6.3

Crea una jerarquía desde texto: una relación A > B por línea.

Documentación ↗

métodofullyAuthenticated()AuthorizeHttpRequestsConfigurer

Autenticado en esta visita: NO basta con remember-me. Para operaciones sensibles.

Documentación ↗

métodogenerateKeyPair()KeyPairGenerator

Genera un par de claves pública/privada.

Documentación ↗

métodogetAuthentication()SecurityContext

La Authentication actual (o la anónima).

Documentación ↗

métodogetAuthorities()Authentication

Las authorities concedidas: roles, scopes, factores…

Documentación ↗

métodogetContext()SecurityContextHolder

Devuelve el SecurityContext del hilo actual.

Documentación ↗

métodogetCredentials()Authentication

La prueba de identidad (contraseña, token). Se borra tras autenticar.

Documentación ↗

métodogetEndpointsMatcher()OAuth2AuthorizationServerConfigurer

Matcher de los endpoints del protocolo (/oauth2/authorize, /oauth2/token, /oauth2/jwks…).

Documentación ↗

métodogetInstance()Cipher

Obtiene una implementación de un algoritmo por nombre (p. ej. "AES/GCM/NoPadding", "SHA-256"). En Cipher, escribe siempre el modo completo.

Documentación ↗

métodogetName()Authentication

El nombre del principal: el username, o el claim sub de un JWT. Úsalo como dueño de los recursos, nunca un valor del body.

Documentación ↗

métodogetOriginalFilename()MultipartFile

Nombre que envió el cliente: no confiable, puede contener ../.

Documentación ↗

métodogetPrincipal()Authentication

Quién es: un UserDetails, un Jwt, un OidcUser…

Documentación ↗

métodogetTokenValue()Jwt

El token original en texto (header.payload.firma).

Documentación ↗

métodogetUrlEncoder()Base64

Base64 seguro para URLs (- y _ en vez de + y /).

Documentación ↗

métodohandle()AccessDeniedHandler

Escribe la respuesta de acceso denegado (403).

Documentación ↗

métodohasAllAuthorities()AuthorizeHttpRequestsConfigurer· desde 7.0

Exige todas las authorities indicadas a la vez.

Documentación ↗

métodohasAllRoles()AuthorizeHttpRequestsConfigurer· desde 7.0

Exige todos los roles indicados a la vez.

Documentación ↗

métodohasAnyAuthority()AuthorizeHttpRequestsConfigurer

Exige al menos una de las authorities indicadas.

Documentación ↗

métodohasAnyRole()AuthorizeHttpRequestsConfigurer

Exige al menos uno de los roles indicados.

Documentación ↗

métodohasAuthority()AuthorizeHttpRequestsConfigurer

hasAuthority("SCOPE_notes:read")

Exige esa authority exacta, sin añadir prefijos.

Documentación ↗

métodohasRole()AuthorizeHttpRequestsConfigurer

hasRole("ADMIN")

Exige la authority ROLE_ADMIN: añade el prefijo ROLE_ por ti.

Documentación ↗

métodoheaders()HttpSecurity

Configura las cabeceras de seguridad (HSTS, X-Frame-Options, CSP…).

Documentación ↗

métodohttpBasic()HttpSecurity

Activa HTTP Basic: usuario y contraseña en cada petición (Authorization: Basic). En tests, httpBasic("u","p") envía esas credenciales.

Documentación ↗

métodohttpStrictTransportSecurity()HeadersConfigurer

Configura HSTS: el navegador solo hablará con tu dominio por HTTPS.

Documentación ↗

métodoignoringRequestMatchers()CsrfConfigurer

Excluye de CSRF solo ciertas rutas (p. ej. webhooks firmados) en vez de desactivarlo entero.

Documentación ↗

métodoinit()Cipher

Prepara el objeto criptográfico: modo (cifrar/descifrar), clave y parámetros (como el IV), o el tamaño de clave en un generador.

Documentación ↗

métodoinitVerify()Signature

Prepara la verificación con la clave pública.

Documentación ↗

métodoisAuthenticated()Authentication

false en una solicitud aún no verificada, true en el resultado.

Documentación ↗

métodoisBound()ScopedValue

¿Hay un valor asignado en este punto? Evita la NoSuchElementException de get().

Documentación ↗

métodoisCompromised()CompromisedPasswordChecker

true si la contraseña está filtrada.

Documentación ↗

métodoisEqual()MessageDigest

Compara dos arrays de bytes en tiempo constante: evita ataques de tiempo al comparar secretos.

Documentación ↗

métodoisLinkLocalAddress()InetAddress

¿Es 169.254.x.x? Ahí vive el servicio de metadatos de la nube: bloquéala contra SSRF.

Documentación ↗

métodoisLoopbackAddress()InetAddress

¿Es 127.0.0.1 / ::1? Bloquéala en peticiones salientes que dependan del usuario.

Documentación ↗

métodoisSiteLocalAddress()InetAddress

¿Es una IP privada (10.x, 172.16-31.x, 192.168.x)? Bloquéala contra SSRF.

Documentación ↗

métodojwt()OAuth2ResourceServerConfigurer

En configuración: valida tokens como JWT. En tests: jwt() simula un JWT ya validado, sin firma ni JwtDecoder.

Documentación ↗

métodojwtAuthenticationConverter()OAuth2ResourceServerConfigurer

Personaliza cómo un Jwt se convierte en authorities (roles en un claim propio, etc.).

Documentación ↗

métodoloadUserByUsername()UserDetailsService

Busca el usuario; si no existe, lanza UsernameNotFoundException.

Documentación ↗

métodologout()HttpSecurity

Configura el cierre de sesión (POST /logout).

Documentación ↗

métodomatches()PasswordEncoder

boolean matches(CharSequence raw, String encoded)

Comprueba una contraseña contra su hash, en tiempo constante.

Documentación ↗

métodomaximumSessions()SessionManagementConfigurer

Máximo de sesiones simultáneas por usuario. Requiere HttpSessionEventPublisher.

Documentación ↗

métodomaxSessionsPreventsLogin()SessionManagementConfigurer

true: bloquea el nuevo login; false: la nueva sesión expulsa a la vieja.

Documentación ↗

métodomockJwt()SecurityMockServerConfigurers

En tests de WebFlux, simula un JWT ya validado.

Documentación ↗

métodomultiFactor()AuthorizationManagerFactories· desde 7.0

Empieza a construir reglas que exigen factores adicionales (MFA).

Documentación ↗

métodomutateWith()WebTestClient

Aplica una configuración (como mockJwt()) a la petición de test.

Documentación ↗

métodonewInstance()ScopedValue

Crea una clave de ScopedValue. Se declara static final, como un ThreadLocal.

Documentación ↗

métodonextBytes()SecureRandom

Rellena un array con bytes aleatorios seguros.

Documentación ↗

métodonormalize()Path

Resuelve . y .. de una ruta. Hazlo antes de comprobar que sigue dentro de la carpeta base.

Documentación ↗

métodooauth2AuthorizationServer()HttpSecurity· desde 7.0

Convierte la cadena en un Authorization Server (antes un proyecto aparte, ahora dentro de Spring Security).

Documentación ↗

métodooauth2Client()HttpSecurity

Gestión de tokens para llamar a otras APIs en nombre del usuario o de la app.

Documentación ↗

métodooauth2Login()HttpSecurity

Login de usuarios con un proveedor OAuth2/OIDC (Google, Keycloak…). El principal es un OidcUser.

Documentación ↗

métodooauth2ResourceServer()HttpSecurity

Convierte la app en resource server: valida tokens Bearer (JWT u opacos) en cada petición.

Documentación ↗

métodoofExtract()HKDFParameterSpec

Empieza a construir los parámetros de HKDF (fase de extracción).

Documentación ↗

métodooidc()OAuth2AuthorizationServerConfigurer

Activa OpenID Connect en el Authorization Server: id_token, /userinfo, descubrimiento.

Documentación ↗

métodooneTimeTokenLogin()HttpSecurity· desde 6.4

Login por enlace mágico (token de un solo uso). Tú implementas el envío.

Documentación ↗

métodoopaqueToken()OAuth2ResourceServerConfigurer

Valida tokens opacos preguntando al emisor (introspección). Revocación inmediata a cambio de una llamada por petición.

Documentación ↗

métodopasswordAuthority()AuthorizationManagerFactories· desde 7.0

Atajo para el factor contraseña (FACTOR_PASSWORD).

Documentación ↗

métodopasswordManagement()HttpSecurity

Redirige /.well-known/change-password a tu página de cambio de contraseña, para los gestores de contraseñas.

Documentación ↗

métodopathMatchers()ServerHttpSecurity

Elige las rutas de la regla en WebFlux (el equivalente de requestMatchers).

Documentación ↗

métodoperform()MockMvc

Ejecuta una petición simulada y devuelve sus resultados.

Documentación ↗

métodopermitAll()AuthorizeHttpRequestsConfigurer

Permite a cualquiera, incluido el anónimo. Los filtros (cabeceras, CSRF…) se siguen ejecutando.

Documentación ↗

métodopolicyDirectives()HeadersConfigurer

El texto de la política CSP, p. ej. default-src 'self'.

Documentación ↗

métodoprepareStatement()PreparedStatement

Prepara SQL con marcadores ? para los datos.

Documentación ↗

métodoquery()JdbcTemplate

Ejecuta una consulta. Pasa los valores como argumentos, nunca concatenados.

Documentación ↗

métodoredirectToHttps()HttpSecurity· desde 6.5

Redirige HTTP a HTTPS. Sustituye a requiresChannel().

Documentación ↗

métodoreferrerPolicy()HeadersConfigurer

Controla cuánta URL se envía en la cabecera Referer.

Documentación ↗

métodoregisterCorsConfiguration()UrlBasedCorsConfigurationSource

Asocia una configuración CORS a un patrón de URL.

Documentación ↗

métodorememberMe()HttpSecurity

Mantiene la sesión entre cierres del navegador con una cookie de larga duración.

Documentación ↗

métodorequestCache()RequestCacheConfigurer

Configura el RequestCache: recordar la URL pedida para volver tras el login. Inútil en APIs stateless.

Documentación ↗

métodorequestInterceptor()RestClient

Añade un interceptor a todas las peticiones del cliente.

Documentación ↗

métodorequestMatchers()AuthorizeHttpRequestsConfigurer

requestMatchers([HttpMethod], String... patrones)

Elige a qué peticiones aplica la regla siguiente. Usa patrones de PathPattern: * un segmento, ** todo lo que cuelga (solo al final).

Documentación ↗

métodorequireFactor()AuthorizationManagerFactories· desde 7.0

Un factor exigido con opciones, como su caducidad (validDuration).

Documentación ↗

métodorequireFactors()AuthorizationManagerFactories· desde 7.0

Los factores exigidos, p. ej. FactorGrantedAuthority.PASSWORD_AUTHORITY.

Documentación ↗

métodoresolve()Path

Combina rutas. Con entrada del usuario, normaliza y valida el resultado.

Documentación ↗

métodoroles()User

Asigna roles: añade el prefijo ROLE_ automáticamente.

Documentación ↗

métodorpId()WebAuthnConfigurer

El dominio al que quedan ligadas las passkeys.

Documentación ↗

métodorpName()WebAuthnConfigurer

Nombre visible de tu app en el diálogo de passkeys.

Documentación ↗

métodosaveContext()SecurityContextRepository

Guarda el contexto para siguientes peticiones. Si autenticas a mano con sesión, debes llamarlo tú.

Documentación ↗

métodosecurityMatcher()HttpSecurity

Decide si esta cadena atiende la petición. No confundir con requestMatchers, que elige la regla dentro de la cadena.

Documentación ↗

métodosessionConcurrency()SessionManagementConfigurer

Configura el control de sesiones concurrentes por usuario.

Documentación ↗

métodosessionCreationPolicy()SessionManagementConfigurer

Elige IF_REQUIRED, ALWAYS, NEVER o STATELESS.

Documentación ↗

métodosessionFixation()SessionManagementConfigurer

Estrategia contra session fixation. Por defecto changeSessionId(): no la desactives.

Documentación ↗

métodosessionManagement()HttpSecurity

Configura cómo se usa la sesión: política de creación, fijación, sesiones concurrentes.

Documentación ↗

métodosetAllowCredentials()CorsConfiguration

Permite cookies y cabeceras de autenticación en peticiones cross-origin. Exige orígenes explícitos.

Documentación ↗

métodosetAllowedHeaders()CorsConfiguration

Cabeceras que el front puede enviar (p. ej. Authorization, Content-Type).

Documentación ↗

métodosetAllowedMethods()CorsConfiguration

Métodos HTTP permitidos en peticiones cross-origin.

Documentación ↗

métodosetAllowedOrigins()CorsConfiguration

Orígenes exactos que pueden leer tus respuestas. Nunca * junto con credenciales.

Documentación ↗

métodosetAuthentication()SecurityContext

Coloca una Authentication en el contexto.

Documentación ↗

métodosetAuthoritiesClaimName()JwtGrantedAuthoritiesConverter

Claim del que leer las authorities (por defecto scope/scp).

Documentación ↗

métodosetAuthorityPrefix()JwtGrantedAuthoritiesConverter

Prefijo de las authorities (por defecto SCOPE_).

Documentación ↗

métodosetBearerAuth()HttpHeaders

Pone la cabecera Authorization: Bearer <token>.

Documentación ↗

métodosetContext()SecurityContextHolder

Establece el contexto del hilo actual.

Documentación ↗

métodosetFeature()DocumentBuilderFactory

Activa o desactiva características del parser, como disallow-doctype-decl contra XXE.

Documentación ↗

métodosetJwtGrantedAuthoritiesConverter()JwtAuthenticationConverter

Indica cómo convertir los claims del token en authorities.

Documentación ↗

métodosetJwtValidator()NimbusJwtDecoder

Sustituye el validador de claims del decoder.

Documentación ↗

métodosign()Signature

Produce la firma de los datos añadidos con update.

Documentación ↗

métodospa()CsrfConfigurer· desde 7.0

Configuración CSRF de una línea para SPAs con sesión: token en cookie XSRF-TOKEN legible y cabecera X-XSRF-TOKEN.

Documentación ↗

métodostartsWith()Path

Comprueba que una ruta (ya normalizada) está dentro de otra.

Documentación ↗

métodosupports()AuthenticationProvider

¿Sabe este provider verificar este tipo de token?

Documentación ↗

métodothenExpand()HKDFParameterSpec

Fase de expansión: info (propósito de la clave) y longitud en bytes.

Documentación ↗

métodotokenRepository()RememberMeConfigurer

Usa remember-me persistente con el repositorio indicado.

Documentación ↗

métodotokenValiditySeconds()RememberMeConfigurer

Duración de la cookie de remember-me.

Documentación ↗

métodotransferTo()MultipartFile

Guarda el fichero subido en disco. Elige tú el nombre y la carpeta.

Documentación ↗

métodounauthenticated()UsernamePasswordAuthenticationToken

Crea la solicitud de autenticación (aún sin verificar).

Documentación ↗

métodoupdatePassword()UserDetailsPasswordService

Guarda el nuevo hash (ya codificado) del usuario.

Documentación ↗

métodoupgradeEncoding()PasswordEncoder

¿Conviene re-hashear este hash con un algoritmo o coste mejor?

Documentación ↗

métodouser()SecurityMockMvcRequestPostProcessors

En tests: ejecuta la petición como ese usuario (sin contraseña).

Documentación ↗

métodovalidDuration()AuthorizationManagerFactories· desde 7.0

Cuánto tiempo vale un factor tras obtenerlo. Sirve para exigir re-autenticación reciente.

Documentación ↗

métodoverify()Signature

true solo si la firma corresponde exactamente a los datos y a la clave pública.

Documentación ↗

métodowebAuthn()HttpSecurity· desde 6.4

Activa passkeys (WebAuthn): login sin contraseña, resistente a phishing.

Documentación ↗

métodowhere()ScopedValue

Asigna un valor que solo existirá durante el run(...) o call(...) siguiente.

Documentación ↗

métodowith()HttpSecurity

En configuración: aplica un DSL propio (http.with(dsl, withDefaults())). En tests: añade un post-procesador (with(jwt()), with(csrf())).

Documentación ↗

métodowithDefaults()Customizer

"Actívalo con su configuración por defecto".

Documentación ↗

métodowithIssuerLocation()NimbusJwtDecoder

Descubre las claves y el emisor a partir de la URL del Authorization Server.

Documentación ↗

métodowithJwkSetUri()NimbusJwtDecoder

Descarga las claves públicas desde un endpoint JWKS.

Documentación ↗

métodowithKeyPair()NimbusJwtEncoder· desde 7.0

Crea un JwtEncoder directamente a partir de un par de claves RSA o EC.

Documentación ↗

métodowithPublicKey()NimbusJwtDecoder

Decoder que verifica firmas RSA con una clave pública fija.

Documentación ↗

métodowithSecretKey()NimbusJwtDecoder

Decoder HMAC (HS256): misma clave para firmar y verificar.

Documentación ↗

anotación@AuthenticationPrincipal

Inyecta en un parámetro del controlador el principal autenticado (UserDetails, Jwt, OidcUser…), sin tocar el SecurityContextHolder.

Documentación ↗

anotación@AutoConfigureMockMvc

Configura un MockMvc dentro de un @SpringBootTest, con la cadena de seguridad real.

Documentación ↗

anotación@Bean

Registra el objeto devuelto por el método en el contenedor de Spring. Así se declaran SecurityFilterChain, PasswordEncoder, etc.

Documentación ↗

anotación@ClientRegistrationId· desde 7.0

En una interfaz HTTP, indica qué registro de cliente OAuth2 usar para añadir el token automáticamente.

Documentación ↗

anotación@Component

Registra la clase como bean. ¡Cuidado con los filtros! Un Filter con @Component lo registra Boot también en el servidor y se ejecuta dos veces.

Documentación ↗

anotación@Configuration

Marca una clase como fuente de definiciones de beans (@Bean).

Documentación ↗

anotación@ConfigurationProperties

Enlaza propiedades (application.yml, variables de entorno) a un objeto tipado. Ideal para claves y secretos externos.

Documentación ↗

anotación@CurrentSecurityContext

Inyecta el SecurityContext completo (o una expresión sobre él) en un parámetro.

Documentación ↗

anotación@EnableMethodSecurity· desde 5.6

Activa la seguridad por método: @PreAuthorize, @PostAuthorize, @PreFilter, @PostFilter. Funciona con proxies AOP: las llamadas internas (this.metodo()) no se verifican.

Documentación ↗

anotación@EnableMultiFactorAuthentication· desde 7.0

@EnableMultiFactorAuthentication(authorities = { … })

Exige globalmente las authorities de factor indicadas (por ejemplo contraseña + enlace mágico). Cada regla de autorización pasa a pedir también esos factores.

Documentación ↗

anotación@EnableReactiveMethodSecurity

Seguridad por método para métodos que devuelven Mono o Flux.

Documentación ↗

anotación@EnableWebFluxSecurity

Activa Spring Security para WebFlux y expone ServerHttpSecurity para construir tus SecurityWebFilterChain.

Documentación ↗

anotación@EnableWebSecurity

Activa la configuración web de Spring Security y expone el HttpSecurity para construir tus SecurityFilterChain. Con Spring Boot es opcional, pero deja explícita la intención.

Documentación ↗

anotación@EventListener

Método que recibe eventos de la aplicación, por ejemplo AuthenticationSuccessEvent o AuthorizationDeniedEvent para auditoría.

Documentación ↗

anotación@GetMapping

Mapea peticiones GET. Nunca cambies estado en un GET: no está protegido por CSRF.

Documentación ↗

anotación@HttpExchange

Declara una interfaz como cliente HTTP de Spring; Spring genera la implementación.

Documentación ↗

anotación@MockitoBean

Sustituye un bean del contexto de test por un mock de Mockito. Reemplaza al antiguo @MockBean.

Documentación ↗

anotación@NotBlank

El texto no puede ser nulo ni estar vacío (ni solo espacios).

Documentación ↗

anotación@Order

Define la prioridad entre beans del mismo tipo. Con varias SecurityFilterChain, el número más bajo se evalúa primero.

Documentación ↗

anotación@ParameterizedTest

Test de JUnit que se ejecuta una vez por cada fila de datos. Ideal para la matriz de autorización.

Documentación ↗

anotación@Pattern

El texto debe encajar con una expresión regular: ideal para listas blancas de formato. Cuidado con las regex catastróficas.

Documentación ↗

anotación@PostAuthorize

@PostAuthorize("returnObject.owner == authentication.name")

Evalúa la expresión después de ejecutar el método, con el resultado disponible como returnObject. Útil para verificar el dueño del objeto devuelto.

Documentación ↗

anotación@PostFilter

Filtra la colección devuelta. Cómodo en listas pequeñas; en listas grandes filtra en la consulta a la base de datos.

Documentación ↗

anotación@PostMapping

Mapea peticiones POST. Con sesión y cookies, Spring exige un token CSRF válido.

Documentación ↗

anotación@PreAuthorize

@PreAuthorize("expresión SpEL")

Evalúa una expresión SpEL antes de ejecutar el método. Si da false, lanza AccessDeniedException. Tiene acceso a authentication, a los parámetros (#id) y a beans (@nombre).

Documentación ↗

anotación@PreFilter

Filtra una colección de entrada elemento a elemento (filterObject) antes de llamar al método.

Documentación ↗

anotación@RestController

Controlador cuyas respuestas se escriben directamente en el cuerpo HTTP (JSON). Las peticiones llegan aquí solo si la cadena de filtros las dejó pasar.

Documentación ↗

anotación@Secured

Anotación legada de autorización por rol. Requiere @EnableMethodSecurity(securedEnabled = true). Prefiere @PreAuthorize.

Documentación ↗

anotación@Size

Longitud mínima y máxima. Los máximos también protegen la disponibilidad.

Documentación ↗

anotación@SpringBootTest

Arranca el contexto completo de la aplicación. Más lento, pero prueba todo integrado.

Documentación ↗

anotación@Transactional

Ejecuta el método dentro de una transacción de base de datos.

Documentación ↗

anotación@Valid

Dispara Bean Validation sobre el objeto recibido. Si falla, Spring responde 400 sin ejecutar tu código.

Documentación ↗

anotación@WebFluxTest

Test de la capa web reactiva: controladores y seguridad, con WebTestClient.

Documentación ↗

anotación@WebMvcTest

Test de la capa web: carga controladores y seguridad, no servicios ni repositorios. Rápido para probar reglas de acceso.

Documentación ↗

anotación@WithMockUser

@WithMockUser(username = "ana", roles = "USER")

En un test, coloca un usuario ficticio en el SecurityContext. No consulta tu UserDetailsService ni verifica contraseñas.

Documentación ↗

anotación@WithUserDetails

En un test, carga el usuario real desde tu UserDetailsService. Úsalo cuando el principal deba ser tu propia clase.

Documentación ↗

constanteBEARER_AUTHORITYFactorGrantedAuthority· desde 7.0

FACTOR_BEARER: la petición traía un token Bearer válido.

Documentación ↗

constanteIF_REQUIREDSessionCreationPolicy

Por defecto: crea sesión solo cuando hace falta (p. ej. tras un login de formulario).

Documentación ↗

constanteNOT_FOUNDHttpStatus

404. Para recursos ajenos, revela menos que un 403.

Documentación ↗

constanteOTT_AUTHORITYFactorGrantedAuthority· desde 7.0

FACTOR_OTT: el usuario usó un enlace mágico (one-time token).

Documentación ↗

constantePASSWORD_AUTHORITYFactorGrantedAuthority· desde 7.0

FACTOR_PASSWORD: el usuario se autenticó con contraseña.

Documentación ↗

constanteSTATELESSSessionCreationPolicy

Spring Security ni crea ni usa sesiones. Lo correcto para APIs con tokens.

Documentación ↗

constanteTOO_MANY_REQUESTSHttpStatus

429: has superado el límite de peticiones. Acompáñalo de Retry-After.

Documentación ↗

constanteUNAUTHORIZEDHttpStatus

401: "no sé quién eres". Debería llamarse Unauthenticated.

Documentación ↗

constanteWEBAUTHN_AUTHORITYFactorGrantedAuthority· desde 7.0

FACTOR_WEBAUTHN: el usuario se autenticó con una passkey.

Documentación ↗

HTTPAccess-Control-Allow-Credentials

Respuesta CORS: si el navegador puede incluir cookies y exponer la respuesta.

Documentación ↗

HTTPAccess-Control-Allow-Headers

Respuesta al preflight: cabeceras permitidas.

Documentación ↗

HTTPAccess-Control-Allow-Methods

Respuesta al preflight: métodos permitidos.

Documentación ↗

HTTPAccess-Control-Allow-Origin

Respuesta CORS: qué origen puede leer esta respuesta desde JavaScript.

Documentación ↗

HTTPAccess-Control-Request-Headers

En el preflight, el navegador pregunta: "¿puedo enviar estas cabeceras?".

Documentación ↗

HTTPAccess-Control-Request-Method

En el preflight, el navegador pregunta: "¿puedo usar este método?".

Documentación ↗

HTTPAuthorization

Lleva las credenciales: Basic base64(user:pass) o Bearer <token>. El navegador no la adjunta solo, por eso no sufre CSRF.

Documentación ↗

HTTPContent-Security-Policy

Lista blanca de orígenes de scripts, estilos, frames… La defensa más fuerte contra XSS.

Documentación ↗

HTTPCookie

El navegador reenvía las cookies del dominio en cada petición, automáticamente. Ahí nace el CSRF.

Documentación ↗

HTTPHttpOnly

Atributo de cookie: JavaScript no puede leerla. Un XSS no podrá robar la sesión.

Documentación ↗

HTTPLocation

Destino de una redirección. Si viene de la entrada del usuario sin validar: open redirect.

Documentación ↗

HTTPOrigin

El origen (esquema + host + puerto) que inició la petición. El navegador la pone y JavaScript no puede falsificarla.

Documentación ↗

HTTPReferrer-Policy

Cuánta información de la URL se envía al navegar a otro sitio.

Documentación ↗

HTTPRetry-After

Cuántos segundos esperar antes de reintentar (con 429 o 503).

Documentación ↗

HTTPSameSite

Atributo de cookie: Strict/Lax impide (o limita) enviarla en peticiones iniciadas por otros sitios. Primera línea contra CSRF.

Documentación ↗

HTTPSet-Cookie

El servidor crea una cookie. Sus atributos (HttpOnly, Secure, SameSite) deciden lo segura que es.

Documentación ↗

HTTPStrict-Transport-Security

HSTS: "háblame solo por HTTPS durante N segundos". Evita downgrades a HTTP.

Documentación ↗

HTTPWWW-Authenticate

Acompaña a un 401 y dice cómo autenticarse (Basic realm=…, Bearer error="invalid_token").

Documentación ↗

HTTPX-Content-Type-Options

nosniff: el navegador respeta el Content-Type y no adivina (un JSON no se ejecutará como script).

Documentación ↗

HTTPX-Frame-Options

Prohíbe que tu página se incruste en iframes ajenos (clickjacking).

Documentación ↗

HTTPX-XSRF-TOKEN

Cabecera donde el front reenvía el token CSRF leído de la cookie XSRF-TOKEN.

Documentación ↗

propiedadaudiences

Valores aceptados en el claim aud: el token debe ser para esta API.

Documentación ↗

propiedadforward-headers-strategy

Respeta X-Forwarded-* de tu proxy para saber que la petición original era HTTPS.

Documentación ↗

propiedadinclude-stacktrace

Si las respuestas de error incluyen la traza. En producción: never.

Documentación ↗

propiedadissuer-uri

URL del emisor de tokens. Spring descubre las claves y valida el claim iss.

Documentación ↗

propiedadjwk-set-uri

Endpoint de claves públicas (JWKS) para verificar firmas, sin validar iss.

Documentación ↗

propiedadlogging.level.org.springframework.security

Nivel de log de Spring Security. TRACE en desarrollo explica cada 401/403; en producción usa INFO o WARN.

Documentación ↗

propiedadmax-file-size

Tamaño máximo de cada fichero subido (spring.servlet.multipart.max-file-size).

Documentación ↗

propiedadmax-request-size

Tamaño máximo de toda la petición multipart.

Documentación ↗

propiedadpublic-key-location

Ruta a una clave pública fija (p. ej. classpath:certs/public.pem).

Documentación ↗

propiedadsame-site

Atributo SameSite de la cookie de sesión: lax o strict.

Documentación ↗

API webcookie

document.cookie: lee las cookies no HttpOnly. Por eso la cookie de sesión debe ser HttpOnly.

Documentación ↗

API webencodeURIComponent

Escapa un valor para meterlo en una URL sin romper su estructura.

Documentación ↗

API webfetch

Petición HTTP desde el navegador. Con credentials: "include" envía cookies cross-origin (CORS debe permitirlo).

Documentación ↗

API webgetRandomValues

Bytes aleatorios criptográficamente seguros en el navegador. Nunca uses Math.random para secretos.

Documentación ↗

API webinnerHTML

Interpreta el texto como HTML. Con datos del usuario es la puerta clásica de XSS. Usa textContent.

Documentación ↗

API weblocalStorage

Almacenamiento accesible a todo JavaScript de la página. Un XSS puede leer cualquier token guardado ahí.

Documentación ↗

API websanitize

DOMPurify.sanitize(html): limpia HTML no confiable antes de insertarlo.

Documentación ↗

API webtextContent

Inserta texto plano: el navegador nunca lo ejecuta como HTML.

Documentación ↗