SubjectX500PrincipalExtractor could use the SAN or dNSName instead of CN

Aperta
#20,059 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
52/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
java

Direzione di ricerca

Start by reading the X.509 configuration and SubjectX500PrincipalExtractor implementation, then trace how the principal is derived from a certificate. Compare the current CN behavior with the suggested distinguished-name and SAN options, and check the related X.509 tests. Done means the principal extraction behavior and its tests address the requested SAN or dNSName support.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

status: waiting-for-triage type: enhancement
@Bean
SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) {
	return httpSecurity
		.x509(Customizer.withDefaults())
		.csrf(customizer -> customizer.disable())
		.build();
}

results in using SubjectX500PrincipalExtractor which creates the Principal based on CN property of the certificate.

Rfc2818 "Although the use of the Common Name is existing practice, it is deprecated and Certification Authorities are encouraged to use the dNSName instead, https://www.rfc-editor.org/info/rfc2818/

Alternative:

@Bean
SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) {
        return httpSecurity
                .x509(customizer -> customizer.x509PrincipalExtractor(cert -> {
                    return cert.getSubjectX500Principal().getName();
                }))
                .csrf(x -> x.disable())
                .build();
}

It uses the distinguished name. SAN could also be used.

Lingua principale
Java
Stelle
9.7k
Fork
6.4k
Merge medio
3h 11m
PR unite (30g)
19

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di spring-projects/spring-security

Tutte le issue di spring-projects/spring-security

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.