I am using Spring Security OAuth2 2.0.7.RELEASE. As i am using ORM to connect to my database and default JdbcUserDetailsManager uses jdbc i wanted to implement my own UserDetail
In 2.0.7
when you do a POST/GET
request on /oauth/token
with grant type as password
, it will actually except a ClientDetailsUserDetailsService
but not UserDetailsService
.
I had similar issue and this is how I solved it :
public class AppClientDetailsUserDetailsService extends ClientDetailsUserDetailsService {
public AppClientDetailsUserDetailsService(ClientDetailsService clientDetailsService) {
super(clientDetailsService);
}
}
public class AppConsumerDetailsService implements ClientDetailsService {
public ClientDetails loadClientByClientId(String clientId)
throws OAuth2Exception {
//some logic
}
}
authenticationManager
is the bean for AppClientDetailsUserDetailsService
whose constructor argument is AppConsumerDetailsService
.