【发布时间】:2017-01-03 22:19:02
【问题描述】:
我正在使用我自己的ClientDetailsServiceConfigurer 实现,所以我这样做:
OAuthConfig.java
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
clients.withClientDetails(this.customClientDetailsManager);
}
CustomClientDetailsManager.java
@Service
public class CustomClientDetailsManager implements ClientDetailsService {
final static Logger log = LoggerFactory.getLogger(CustomClientDetailsManager.class);
private final CustomerService customerService;
@Inject
public CustomClientDetailsManager(final CustomerService customerService) {
this.customerService = customerService;
}
@Override
public ClientDetails loadClientByClientId(String clientId) throws ClientRegistrationException {
final Customer customer = customerService.getCustomerByClientId(clientId);
log.debug("****** Customer is: " + customer.getClientId());
log.debug("****** Customer Secret is: " + customer.getClientSecret());
log.debug("****** Client ID Coming from Request is: " + clientId);
final BaseClientDetails details = new BaseClientDetails();
details.setClientId(clientId);
log.debug("*** Client id: " + clientId );
details.setAuthorizedGrantTypes(Arrays.asList(customer.getAuthorizedGrantTypes()));
log.debug("*** AuthorizedGrantTypes: " + Arrays.asList(customer.getAuthorizedGrantTypes()));
details.setScope(Arrays.asList(customer.getScope()));
log.debug("*** Scope: " + Arrays.asList(customer.getScope()));
details.setResourceIds(Arrays.asList(customer.getResourceIds()));
log.debug("*** ResourceIds: " + Arrays.asList(customer.getResourceIds()));
final Set<GrantedAuthority> authorities = new HashSet<GrantedAuthority>();
authorities.add(new SimpleGrantedAuthority(customer.getAuthorities()));
details.setAuthorities(authorities);
authorities.forEach(authority -> {
log.debug("*** Authority: " + authority);
});
log.debug("Returning details...");
return details;
}
所以基本上我是通过loadClientByClientId(String clientId) 获取我的ClientId,但我想要一种方法来获取我的客户端ID 和客户端密码。
有什么线索吗?谢谢
【问题讨论】:
标签: java spring-boot oauth-2.0 spring-security-oauth2 oauth2