tipoAbstractAuthenticationFailureEvent
Base de los eventos de login fallido: credenciales malas, cuenta bloqueada…
Documentación ↗Referencia
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).
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.
tipoAuthenticationEntryPoint
void commence(request, response, AuthenticationException)
Decide cómo pedir credenciales: redirigir a /login, responder 401 con WWW-Authenticate, o tu JSON propio.
tipoAuthenticationException
Raíz de los errores de autenticación. ExceptionTranslationFilter la convierte en un 401 mediante el AuthenticationEntryPoint.
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.
tipoAuthenticationProvider
Quien verifica de verdad un tipo concreto de credencial (supports) y devuelve la Authentication autenticada (authenticate).
tipoAuthenticationSuccessEvent
Evento publicado tras un login correcto.
Documentación ↗tipoAuthorizationDecision
Resultado de una autorización: concedida (true) o denegada (false).
tipoAuthorizationDeniedEvent
Evento publicado cuando se deniega un acceso (requiere un AuthorizationEventPublisher). Útil para auditoría.
tipoAuthorizationEventPublisher
Publica eventos de autorización (concedida/denegada). Necesario para recibir AuthorizationDeniedEvent.
tipoAuthorizationFilter
Último filtro de la cadena: aplica las reglas de authorizeHttpRequests. Si dice que no, lanza AccessDeniedException.
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.
tipoAuthorizationManagerFactories· desde 7.0
Fábricas de reglas de autorización. multiFactor() construye reglas que además exigen factores de autenticación.
tipoAuthorizationResult· desde 6.3
Interfaz del resultado de autorización; AuthorizationDecision la implementa.
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.
tipoBasicAuthenticationFilter
Filtro de HTTP Basic: decodifica la cabecera Authorization: Basic ….
tipoBCryptPasswordEncoder
Hash adaptativo BCrypt con sal incluida. El parámetro strength (por defecto 10) controla el coste.
tipoBearerTokenAuthenticationFilter
Filtro del resource server: extrae el token de Authorization: Bearer … y lo valida.
tipoCipher
Cifrado simétrico o asimétrico de la JCA. Usa AES/GCM/NoPadding: cifra y autentica a la vez.
tipoClientHttpRequestInterceptor
Intercepta las peticiones salientes de RestClient: ideal para añadir cabeceras como Authorization.
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.
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).
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.
tipoDelegatingFilterProxy
Puente entre el servidor (Tomcat) y los beans de Spring: Tomcat lo registra y él delega en el bean springSecurityFilterChain.
tipoDelegatingPasswordEncoder
Encoder que lee el prefijo {bcrypt}, {argon2}… de cada hash y delega en el algoritmo correcto. Permite migrar de algoritmo sin romper nada.
tipoDelegatingSecurityContextExecutorService
Envuelve un ExecutorService para que las tareas hereden el SecurityContext del hilo que las lanza.
tipoDisabledException
La cuenta está deshabilitada (enabled = false). Para el cliente sigue siendo un 401.
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).
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.
tipoFilterChainProxy
El punto de entrada de toda la seguridad Servlet. Elige la cadena, la recorre, aplica el HttpFirewall y limpia el contexto al terminar.
tipoFlux
Publicador reactivo de 0 a N elementos.
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…
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.
tipoHttpMethod
Métodos HTTP. En reglas: requestMatchers(HttpMethod.DELETE, "/api/**").
tipoHttpSecurity
El constructor de una SecurityFilterChain. Cada método (csrf, cors, httpBasic…) añade, configura o quita filtros de la cadena.
tipoHttpServletRequest
La petición HTTP en el mundo Servlet: cabeceras, parámetros, sesión.
Documentación ↗tipoHttpServletResponse
La respuesta HTTP: código, cabeceras y cuerpo.
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.
tipoHttpStatus
Enum de códigos HTTP: UNAUTHORIZED (401), FORBIDDEN (403), NOT_FOUND (404)…
tipoInetAddress
Dirección IP resuelta. Sirve para bloquear destinos internos (isLoopbackAddress, isSiteLocalAddress) contra SSRF.
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.
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.
tipoJdbcTokenRepositoryImpl
Guarda los tokens de remember-me en la tabla persistent_logins. Detecta el robo de cookies.
tipoJwt
Un JWT ya validado: headers, claims (sub, scope, exp…) y el valor del token. Es el principal en un resource server.
tipoJwtAudienceValidator
Valida que el claim aud incluya tu API: el token debe ser para ti.
tipoJwtAuthenticationConverter
Convierte un Jwt en una Authentication: decide el nombre del principal y las authorities.
tipoJwtAuthenticationToken
La Authentication de un resource server con JWT. getToken() da el Jwt.
tipoJwtClaimsSet
Builder de los claims de un JWT: issuer, subject, issuedAt, expiresAt, claim(...).
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).
tipoJwtEncoder
Firma un conjunto de claims y produce un JWT.
Documentación ↗tipoJwtEncoderParameters
Parámetros para JwtEncoder.encode: claims y, opcionalmente, el header.
tipoJwtGrantedAuthoritiesConverter
Convierte un claim (por defecto scope/scp) en authorities con prefijo (por defecto SCOPE_).
tipoJwtIssuerValidator
Valida que el claim iss sea el emisor esperado.
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.
tipoKEM· desde Java 21
Mecanismo de encapsulación de claves. Con "ML-KEM" (Java 24) acuerda secretos resistentes a ordenadores cuánticos.
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.
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).
tipoMessageDigest
Hash criptográfico (SHA-256…). MessageDigest.isEqual compara en tiempo constante.
tipoMockMvc
Ejecuta peticiones contra tu app sin servidor real, pasando por la cadena de seguridad.
Documentación ↗tipoMono
Publicador reactivo de 0 o 1 elemento.
Documentación ↗tipoMultipartFile
Un fichero subido. Nunca confíes en getOriginalFilename() ni en getContentType(): vienen del cliente.
tipoNimbusJwtDecoder
Implementación de JwtDecoder basada en Nimbus. withPublicKey, withSecretKey, withIssuerLocation, withJwkSetUri.
tipoNimbusJwtEncoder
Implementación de JwtEncoder basada en Nimbus; firma con las claves de un JWKSource.
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()…
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.
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.
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.
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).
tipoPasswordEncoder
Convierte contraseñas en hashes (encode) y verifica (matches). La contraseña nunca se guarda ni se compara en claro.
tipoPasswordEncoderFactories
Fábrica del DelegatingPasswordEncoder recomendado (BCrypt por defecto, con prefijos {id}).
tipoPath
Ruta del sistema de ficheros. Usa normalize() y startsWith(base) para evitar path traversal.
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.
tipoPEMDecoder· desde Java 25 (preview)
Lee claves y certificados en formato PEM. Requiere --enable-preview.
tipoPEMEncoder· desde Java 25 (preview)
Codifica claves y certificados en formato PEM. Requiere --enable-preview.
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.
tipoProviderManager
Implementación estándar de AuthenticationManager. No autentica nada: delega en el primer AuthenticationProvider que soporta el tipo de token.
tipoReactiveSecurityContextHolder
Lee el SecurityContext desde el contexto de Reactor. En WebFlux sustituye a SecurityContextHolder.
tipoReactiveUserDetailsService
Carga usuarios devolviendo Mono<UserDetails>. No uses dentro código bloqueante.
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}).
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.
tipoRoleHierarchyImpl
Implementación de RoleHierarchy. fromHierarchy("A > B") la crea desde texto.
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.
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.
tipoSecurityContext
Contenedor de la Authentication actual durante la petición.
tipoSecurityContextHolder
Guarda el SecurityContext del hilo actual (un ThreadLocal por defecto). Desde aquí se lee quién está autenticado.
tipoSecurityContextHolderFilter
Primer filtro: carga (de forma perezosa) el contexto desde el SecurityContextRepository.
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.
tipoSecurityMockMvcRequestPostProcessors
Utilidades de test: user(), jwt(), csrf(), httpBasic(), anonymous()…
tipoSecurityMockMvcResultMatchers
Aserciones de test sobre la autenticación resultante: authenticated(), unauthenticated().
tipoSecurityWebFilterChain
Cadena de filtros de seguridad de WebFlux.
Documentación ↗tipoServerHttpSecurity
El equivalente reactivo de HttpSecurity: construye una SecurityWebFilterChain.
tipoSessionCreationPolicy
Enum que decide si Spring Security crea o usa la HttpSession: IF_REQUIRED, ALWAYS, NEVER, STATELESS.
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.
tipoSpringAuthorizationEventPublisher
Implementación que publica los eventos de autorización en el ApplicationEventPublisher de Spring.
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.
tipoUser
Implementación de UserDetails con builder: User.withUsername(...).password(...).roles(...).build().
tipoUserDetails
Datos de un usuario para autenticar: username, hash de contraseña, authorities y flags (enabled, accountNonLocked…).
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.
tipoUsernameNotFoundException
La lanza tu UserDetailsService si el usuario no existe. Por defecto se oculta tras un BadCredentialsException.
tipoUsernamePasswordAuthenticationFilter
Filtro del form login: lee usuario y contraseña de POST /login y llama al AuthenticationManager.
tipoUsernamePasswordAuthenticationToken
La Authentication de usuario y contraseña. unauthenticated(...) crea la solicitud; authenticated(...) el resultado.
tipoWebTestClient
Cliente de test para WebFlux (y MVC). Con mutateWith(mockJwt()) simula identidades.
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.
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.
métodoauthenticated()AuthorizeHttpRequestsConfigurer
Cualquier usuario autenticado (no anónimo). En tests, authenticated() es también un matcher de resultado.
métodoauthenticationEntryPoint()ExceptionHandlingConfigurer
Registra cómo responder cuando falta autenticación.
Documentación ↗métodoauthorities()User
Asigna authorities exactas, sin prefijos.
Documentación ↗métodoauthorize()AuthorizationManager· desde 6.4
Decide si se concede el acceso. Sustituye al antiguo check, eliminado en la 7.
métodoauthorizeExchange()ServerHttpSecurity
Reglas de autorización en WebFlux (el equivalente de authorizeHttpRequests).
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…).
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.
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.
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.
métodocors()HttpSecurity
Activa CORS en la cadena de seguridad usando el CorsConfigurationSource. Así el preflight pasa antes de autenticar.
métodocreateDefaultWithValidators()JwtValidators
Validadores por defecto (fechas, typ) más los tuyos.
métodocreateDelegatingPasswordEncoder()PasswordEncoderFactories
Crea el encoder recomendado: BCrypt para hashes nuevos y soporte de {argon2}, {scrypt}, {pbkdf2}…
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.
métododecode()JwtDecoder
Valida y parsea un token. Lanza JwtException si la firma o los claims fallan.
métododefaultAuthenticationEntryPointFor()ExceptionHandlingConfigurer
Entry point solo para ciertas peticiones (p. ej. HTML → redirigir a /login).
métododefaultDeniedHandlerForMissingAuthority()ExceptionHandlingConfigurer· desde 7.0
Manejador para cuando falta una authority concreta, p. ej. redirigir al segundo factor si falta FACTOR_OTT.
métododenyAll()AuthorizeHttpRequestsConfigurer
Nadie entra. Buena regla por defecto para "todo lo que no declaré".
Documentación ↗métododeriveData()KDF
Deriva bytes en lugar de una clave.
Documentación ↗métododeriveKey()KDF
Deriva una SecretKey para el algoritmo indicado.
métododigest()MessageDigest
Calcula el hash de los datos.
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.
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).
métodoformLogin()HttpSecurity
Activa el login con formulario (/login) y la sesión resultante.
métodoforStatusAndDetail()ProblemDetail
Crea un ProblemDetail con código y detalle.
métodoframeOptions()HeadersConfigurer
Configura X-Frame-Options (DENY por defecto) contra clickjacking.
métodofromHierarchy()RoleHierarchyImpl· desde 6.3
Crea una jerarquía desde texto: una relación A > B por línea.
métodofullyAuthenticated()AuthorizeHttpRequestsConfigurer
Autenticado en esta visita: NO basta con remember-me. Para operaciones sensibles.
Documentación ↗métodogenerateKey()KeyGenerator
Genera una clave simétrica aleatoria.
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).
métodogetAuthorities()Authentication
Las authorities concedidas: roles, scopes, factores…
Documentación ↗métodogetClaimAsString()Jwt
Lee un claim del token como texto.
Documentación ↗métodogetContext()SecurityContextHolder
Devuelve el SecurityContext del hilo actual.
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…).
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.
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.
métodogetOriginalFilename()MultipartFile
Nombre que envió el cliente: no confiable, puede contener ../.
métodogetPrincipal()Authentication
Quién es: un UserDetails, un Jwt, un OidcUser…
métodogetSubject()Jwt
El claim sub: de quién es el token.
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 /).
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.
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.
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étodoinitSign()Signature
Prepara la firma con la clave privada.
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.
métodoisBound()ScopedValue
¿Hay un valor asignado en este punto? Evita la NoSuchElementException de get().
métodoisCompromised()CompromisedPasswordChecker
true si la contraseña está filtrada.
métodoisEqual()MessageDigest
Compara dos arrays de bytes en tiempo constante: evita ataques de tiempo al comparar secretos.
Documentación ↗métodoisForbidden()StatusResultMatchers
Espera un 403.
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étodoisNotFound()StatusResultMatchers
Espera un 404.
Documentación ↗métodoisOk()StatusResultMatchers
Espera un 200.
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étodoisUnauthorized()StatusResultMatchers
Espera un 401.
Documentación ↗métodojwt()OAuth2ResourceServerConfigurer
En configuración: valida tokens como JWT. En tests: jwt() simula un JWT ya validado, sin firma ni JwtDecoder.
métodojwtAuthenticationConverter()OAuth2ResourceServerConfigurer
Personaliza cómo un Jwt se convierte en authorities (roles en un claim propio, etc.).
métodoloadUserByUsername()UserDetailsService
Busca el usuario; si no existe, lanza UsernameNotFoundException.
métodologout()HttpSecurity
Configura el cierre de sesión (POST /logout).
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.
métodomaxSessionsPreventsLogin()SessionManagementConfigurer
true: bloquea el nuevo login; false: la nueva sesión expulsa a la vieja.
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.
métodonewInstance()ScopedValue
Crea una clave de ScopedValue. Se declara static final, como un ThreadLocal.
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.
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.
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.
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).
métodopasswordManagement()HttpSecurity
Redirige /.well-known/change-password a tu página de cambio de contraseña, para los gestores de contraseñas.
métodopathMatchers()ServerHttpSecurity
Elige las rutas de la regla en WebFlux (el equivalente de requestMatchers).
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'.
métodoprepareStatement()PreparedStatement
Prepara SQL con marcadores ? para los datos.
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().
métodoreferrerPolicy()HeadersConfigurer
Controla cuánta URL se envía en la cabecera Referer.
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.
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).
métodorequireFactor()AuthorizationManagerFactories· desde 7.0
Un factor exigido con opciones, como su caducidad (validDuration).
métodorequireFactors()AuthorizationManagerFactories· desde 7.0
Los factores exigidos, p. ej. FactorGrantedAuthority.PASSWORD_AUTHORITY.
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.
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.
métodosessionConcurrency()SessionManagementConfigurer
Configura el control de sesiones concurrentes por usuario.
Documentación ↗métodosessionCreationPolicy()SessionManagementConfigurer
Elige IF_REQUIRED, ALWAYS, NEVER o STATELESS.
métodosessionFixation()SessionManagementConfigurer
Estrategia contra session fixation. Por defecto changeSessionId(): no la desactives.
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).
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.
métodosetAuthentication()SecurityContext
Coloca una Authentication en el contexto.
métodosetAuthoritiesClaimName()JwtGrantedAuthoritiesConverter
Claim del que leer las authorities (por defecto scope/scp).
métodosetAuthorityPrefix()JwtGrantedAuthoritiesConverter
Prefijo de las authorities (por defecto SCOPE_).
métodosetBearerAuth()HttpHeaders
Pone la cabecera Authorization: Bearer <token>.
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.
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.
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.
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.
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.
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.
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())).
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.
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 ↗métodowithUsername()User
Empieza a construir un UserDetails.
anotación@AuthenticationPrincipal
Inyecta en un parámetro del controlador el principal autenticado (UserDetails, Jwt, OidcUser…), sin tocar el SecurityContextHolder.
anotación@AutoConfigureMockMvc
Configura un MockMvc dentro de un @SpringBootTest, con la cadena de seguridad real.
anotación@Bean
Registra el objeto devuelto por el método en el contenedor de Spring. Así se declaran SecurityFilterChain, PasswordEncoder, etc.
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.
anotación@Configuration
Marca una clase como fuente de definiciones de beans (@Bean).
anotación@ConfigurationProperties
Enlaza propiedades (application.yml, variables de entorno) a un objeto tipado. Ideal para claves y secretos externos.
anotación@CurrentSecurityContext
Inyecta el SecurityContext completo (o una expresión sobre él) en un parámetro.
anotación@DeleteMapping
Mapea peticiones DELETE.
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.
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.
anotación@EnableWebFluxSecurity
Activa Spring Security para WebFlux y expone ServerHttpSecurity para construir tus SecurityWebFilterChain.
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.
anotación@EventListener
Método que recibe eventos de la aplicación, por ejemplo AuthenticationSuccessEvent o AuthorizationDeniedEvent para auditoría.
anotación@GetExchange
Un método GET de una interfaz HTTP.
anotación@GetMapping
Mapea peticiones GET. Nunca cambies estado en un GET: no está protegido por CSRF.
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.
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.
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.
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.
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).
anotación@PreFilter
Filtra una colección de entrada elemento a elemento (filterObject) antes de llamar al método.
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.
anotación@Service
Estereotipo de @Component para la capa de servicio.
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.
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.
anotación@WithUserDetails
En un test, carga el usuario real desde tu UserDetailsService. Úsalo cuando el principal deba ser tu propia clase.
constanteBEARER_AUTHORITYFactorGrantedAuthority· desde 7.0
FACTOR_BEARER: la petición traía un token Bearer válido.
constanteDECRYPT_MODECipher
Modo descifrar.
Documentación ↗constanteENCRYPT_MODECipher
Modo cifrar.
Documentación ↗constanteFORBIDDENHttpStatus
403: "sé quién eres y no puedes".
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).
constantePASSWORD_AUTHORITYFactorGrantedAuthority· desde 7.0
FACTOR_PASSWORD: el usuario se autenticó con contraseña.
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.
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.
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.
HTTPCache-Control
Política de caché. Respuestas privadas: no-store.
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.
HTTPSecure
Atributo de cookie: solo viaja por HTTPS.
Documentación ↗HTTPSet-Cookie
El servidor crea una cookie. Sus atributos (HttpOnly, Secure, SameSite) deciden lo segura que es.
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").
HTTPX-Content-Type-Options
nosniff: el navegador respeta el Content-Type y no adivina (un JSON no se ejecutará como script).
HTTPX-CSRF-TOKEN
Cabecera por defecto donde Spring espera el token CSRF.
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.
propiedadaudiences
Valores aceptados en el claim aud: el token debe ser para esta API.
propiedadforward-headers-strategy
Respeta X-Forwarded-* de tu proxy para saber que la petición original era HTTPS.
propiedadhttp-only
Cookie de sesión HttpOnly (por defecto true).
propiedadinclude-stacktrace
Si las respuestas de error incluyen la traza. En producción: never.
propiedadissuer-uri
URL del emisor de tokens. Spring descubre las claves y valida el claim iss.
propiedadjwk-set-uri
Endpoint de claves públicas (JWKS) para verificar firmas, sin validar iss.
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.
propiedadmax-file-size
Tamaño máximo de cada fichero subido (spring.servlet.multipart.max-file-size).
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).
propiedadsame-site
Atributo SameSite de la cookie de sesión: lax o strict.
propiedadsecure
Cookie de sesión Secure: solo por HTTPS.
API webcookie
document.cookie: lee las cookies no HttpOnly. Por eso la cookie de sesión debe ser HttpOnly.
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).
API webgetRandomValues
Bytes aleatorios criptográficamente seguros en el navegador. Nunca uses Math.random para secretos.
API webinnerHTML
Interpreta el texto como HTML. Con datos del usuario es la puerta clásica de XSS. Usa textContent.
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.
API webtextContent
Inserta texto plano: el navegador nunca lo ejecuta como HTML.
Documentación ↗Ningún término coincide.