A Microsoft Active Directory UserDetailsService and AuthenticationProvider for Spring Security