2016-05-26 12 views
1

Ich versuche, einen einfachen benutzerdefinierten Authentifizierungsanbieter mit Spring Security in einer Spring Boot App zu implementieren, aber es funktioniert nicht.Frühling Sicherheit benutzerdefinierte Authentifizierung Provider 403 Antwort

My Custom Auth-Provider ist:

@Component 
public class CustomAuthenticationProvider implements AuthenticationProvider{ 
    @Override 
    public Authentication authenticate(Authentication a) { 
     try{ 
     List<GrantedAuthority> roles = new ArrayList<>(); 
     roles.add(new SimpleGrantedAuthority("USER")); 
     UsernamePasswordAuthenticationToken u = new UsernamePasswordAuthenticationToken("usuario", "password", roles); 
     return u; 
     }catch(Exception e){ 
     return null; 
     } 
} 

    @Override 
    public boolean supports(Class<?> type) { 
    return true; 
    } 
} 

Und meine Sicherheit Config ist dies:

@Configuration 
@EnableWebSecurity 
@EntityScan(basePackages = "sirio.io.models") 
public class AppConfiguration { 

    @Configuration 
    @Order(1) 
    public static class ApiWebSecurity extends WebSecurityConfigurerAdapter{ 
     @Autowired 
     private CustomAuthenticationProvider customAuthenticationProvider; 

     @Override 
     public void configure(HttpSecurity http) throws Exception{ 
      http.antMatcher("/admin/**") 
       .authorizeRequests() 
       .anyRequest() 
       .hasRole("USER") 
       .and() 
       .httpBasic() 
       .and() 
       .authenticationProvider(customAuthenticationProvider); 
     } 
    } 
} 

ich mehrere Haltepunkte in der CustomAuthProvider niedergelassen haben und sie genannt wurden, aber ich bekomme immer eine 403 Antwort im Browser

[EDIT] Versuchte eine andere Art von Custom Auth Provider, aber mit dem gleichen Ergebnis.

@Component 
public class CustomAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider{ 

    @Override 
    protected void additionalAuthenticationChecks(UserDetails ud, UsernamePasswordAuthenticationToken upat) throws AuthenticationException { 

    } 

    @Override 
    protected UserDetails retrieveUser(String string, UsernamePasswordAuthenticationToken upat) throws AuthenticationException{ 
     List<GrantedAuthority> authoritys = new ArrayList<>(); 
     authoritys.add(new SimpleGrantedAuthority("USER")); 
     UserDetails ud = new User("usuario", "password", authoritys); 
     return ud; 
    } 

} 

Antwort

Verwandte Themen