2017-05-09 4 views
0

Ich verwende Spring Security und habe ein Projekt mit einer modifizierten Version davon. Ich verlasse mich auf den Standard-Endpunkt von Spring '/ oauth/token', bei dem ein HTTP-POST mit korrekten Informationen (Client-ID usw.) access_token und info mit 200 OK Response zurückgibt.Spring Security und Post Aufgabe nach dem Erhalt Token

Da dies von Spring implementiert wird, habe ich keinen Zugriff zu ändern, aber ich möchte eine Post-Task basierend auf Response-Code einrichten. Wenn jemand den Endpunkt '/ oauth/token' mit den richtigen Informationen erfolgreich erreicht, möchte ich etwas unternehmen. Ich bin mir nicht sicher, was zu überschreiben und was zu tun ist beim Einrichten eines Listener auf, wenn diese 'posttask' auftreten sollte

Antwort

0

Fügen Sie Ihren eigenen benutzerdefinierten Authentifizierungsanbieter, der nach DaoAuthenticationProvider aufgerufen werden sollte.

Zum Beispiel unten Linien in Ihre WebSecurityConfigurerAdapter erweiterten Klasse hinzufügen:

@Autowired 
UserStateAuthenticationProvider userStateAuthenticationProvider; 



@Autowired 
public void globalUserDetails(AuthenticationManagerBuilder auth) throws 
Exception { 
    auth.userDetailsService(userDetailsService); 
    auth.authenticationProvider(userStateAuthenticationProvider); 
} 

wo UserStateAuthenticationProvider können eigene Klasse

wie

public class UserStateAuthenticationProvider{ 

    @Override 
    public Authentication authenticate(Authentication authentication) 
     throws AuthenticationException { 

     //....do anything you want like below 
     String name = authentication.getName(); 
     String password = authentication.getCredentials().toString(); 

     return null; 
    } 

    @Override 
    public boolean supports(Class<?> authentication) { 
     return authentication.equals(
      UsernamePasswordAuthenticationToken.class); 
    } 
} 
sein
Verwandte Themen