Spring Authorization Server should provide native, configurable support for hashing long-lived credentials (specifically OAuth2RefreshToken)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Área
- authentication, backend, security
Línea de trabajo
Comienza con OAuth2RefreshTokenAuthenticationProvider, OAuth2TokenRevocationAuthenticationProvider y OAuth2TokenIntrospectionAuthenticationProvider, y luego rastrea su uso de OAuth2AuthorizationService y las comparaciones de tokens. Revisa cómo se persisten y verifican los códigos de autorización y los refresh tokens. Se considera terminado cuando el hashing y la verificación configurables cubren las credenciales indicadas sin requerir su almacenamiento en texto plano.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Expected Behavior
Spring Authorization Server should provide native, configurable support for hashing long-lived credentials (specifically OAuth2RefreshToken and authorization codes) at rest using a pluggable mechanism similar to PasswordEncoder. The persistence layer should store cryptographic hashes (e.g., SHA-256), and authentication providers should verify incoming tokens against these hashes without requiring plain-text storage.
Current Behavior
Authentication providers (OAuth2RefreshTokenAuthenticationProvider, OAuth2TokenRevocationAuthenticationProvider, and OAuth2TokenIntrospectionAuthenticationProvider) perform a strict plain-text .equals() comparison between the incoming token and the value retrieved from OAuth2AuthorizationService. As a result, raw tokens must be stored in plaintext within the database.
Context
How this has affected you / What you are trying to accomplish: Trying to harden the authorization server implementation against database leaks. Storing long-lived tokens in plaintext violates standard security hardening guidelines for data at rest. Additionally, indexing large plaintext token strings in relational databases creates performance bottlenecks compared to fixed-length hashes.
What other alternatives have you considered: Relying solely on short token expiration or storing tokens in an external key-value store, which increases architectural complexity.
Are you aware of any workarounds: Yes, developers currently have to implement fragile workarounds such as overriding OAuth2AuthorizationService.findByToken() to dynamically inject raw mock tokens into the domain model, or entirely unregistering and rewriting core AuthenticationProvider implementations.
- Lenguaje dominante
- Java
- Estrellas
- 9.7k
- Forks
- 6.4k
- Merge medio
- 3 h 11 min
- PR fusionados (30 d)
- 19
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de spring-projects/spring-security
-
Update spring-ldap to 4.0.7Abiertotype: dependency-upgrade
Dificultad 1/5 Menos de una hora Aptitud para principiantes 76/100
spring-projects/spring-security#20057 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Update micrometer to 1.16.9Abiertotype: dependency-upgrade
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
spring-projects/spring-security#20056 ·
Los mantenedores suelen responder en 1 día
-
Update spring-ldap to 4.1.3Abiertotype: dependency-upgrade
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
spring-projects/spring-security#20055 ·
Los mantenedores suelen responder en 1 día
-
Update micrometer to 1.17.3Abiertotype: dependency-upgrade
Dificultad 1/5 Menos de una hora Aptitud para principiantes 65/100
spring-projects/spring-security#20054 ·
Los mantenedores suelen responder en 1 día
-
Update spring-ldap to 4.2.0Abiertotype: dependency-upgrade
Dificultad 1/5 Menos de una hora Aptitud para principiantes 70/100
spring-projects/spring-security#20053 ·
Los mantenedores suelen responder en 1 día
Todos los issues de spring-projects/spring-security
Issues similares
-
Mend: dependency security vulnerability untriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
opensearch-project/k-NN#3693 ·
Los mantenedores suelen responder en 1 día
-
Disk full for windows GH actionAbiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
Los mantenedores suelen responder en 1 día
-
[Bug]: Encrypted PDF portfolios show an empty portfolio panelPosiblemente ocupada @christophmertins la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Stirling-Tools/Stirling-PDF#8864 · 1 reacción ·
Los mantenedores suelen responder en 2 días
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
CodingDocs/awesome-java#41 · 1 comentario ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día