2016-09-01 2 views
1

Ich habe schon einige Tage mit dem Problem aus dem Titel kämpfen und ich bin ziemlich frustriert. Ich habe keine Ahnung, was ich falsch mache und warum meine Implementierung nicht funktioniert.Spring Sicherheit - Custom AuthenticationProvider funktioniert nicht - Java Config

Lassen Sie mich Ihnen zeigen, was ich habe:

Individuelle AuthenticationProvider:

@Component 
public class AuthProvider implements AuthenticationProvider { 

    private Logger logger = LoggerFactory.getLogger(AuthProvider.class); 

    public AuthProvider() { 
     logger.info("Building..."); 
    } 

    public Authentication authenticate(Authentication authentication) throws AuthenticationException { 
     logger.info("Authenticate..."); 
     return null; 
    } 

    public boolean supports(Class<?> authentication) { 
     logger.info("Supports..."); 
     return true; 
    } 
} 

WebSecurity config:

@Configuration 
@EnableWebSecurity 
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { 

    @Autowired 
    private AuthProvider authProvider; 

    @Override 
    protected void configure(AuthenticationManagerBuilder auth) throws Exception { 
     auth.authenticationProvider(authProvider); 
    } 

    @Override 
    public void configure(HttpSecurity http) throws Exception { 
     http 
      .authorizeRequests().anyRequest().authenticated(); 
    } 
} 

Wie Sie sehen, ich habe Logger in die AuthenticationProvider hinzugefügt aber keiner von ihnen wird gerufen.

Was ich habe versucht:

  • @Autowired zu configure Zugabe wo die AuthenticationManagerBuilder ist
  • Zugabe @EnableGlobalMethodSecurity(prePostEnabled=true) der Klasse
  • das Hinzufügen von benutzerdefinierten AuthenticationProvider direkt an HttpSecurity

Wie ich habe es getestet:

  • Debugging über IntelliJ - keine Ergebnisse, kein Breakpoint wird aufgerufen.
  • Ausführen der App und Senden einer Anfrage - auch keine Ergebnisse, keine Protokolle, nichts.

Bitte Jungs helfen mir irgendwie. Ich bin aus Energie. Ich hasse es, so viel Zeit auf Dinge verschwenden, die gerade :(

+0

@dur Ist diese Information notwendig im Falle dieses Problems? Ich habe gerade keine Authentifizierung, deshalb wollte ich meinen eigenen AuthProvider erstellen. Ich plane, JWT zu authentifizieren. – sarneeh

+0

@dur 403 verboten. – sarneeh

+0

@dur 'http.authorizeRequests(). anyRequest(). authenticated(); 'macht es nicht alle Anfragen zu authentifizieren? Ich denke, dass ich es nicht verstehe pr operly: D – sarneeh

Antwort

1

Wahrscheinlich arbeiten, sollten Sie die folgende Methode in Ihrem WebSecurityConfigurerAdapter verpasst.

@Bean 
@Override 
public AuthenticationManager authenticationManagerBean() throws Exception { 
    return super.authenticationManagerBean(); 
} 

Das gleiche mit mir passiert

Verwandte Themen