ClientService.java 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package com.yihu.jw.config.security;
  2. import com.yihu.base.security.rbas.ClientServiceProvider;
  3. import com.yihu.jw.base.base.SaasDO;
  4. import com.yihu.jw.fegin.base.base.SaasFeign;
  5. import com.yihu.jw.restmodel.common.Envelop;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.context.annotation.Primary;
  8. import org.springframework.security.crypto.codec.Base64;
  9. import org.springframework.security.oauth2.provider.ClientDetails;
  10. import org.springframework.security.oauth2.provider.ClientRegistrationException;
  11. import org.springframework.security.oauth2.provider.client.BaseClientDetails;
  12. import org.springframework.stereotype.Component;
  13. import java.io.UnsupportedEncodingException;
  14. import java.util.HashSet;
  15. import java.util.Map;
  16. import java.util.Set;
  17. /**
  18. * Created by chenweida on 2017/12/1.
  19. */
  20. @Component("baseClientDetailsService")
  21. @Primary
  22. public class ClientService implements ClientServiceProvider {
  23. @Autowired
  24. private SaasFeign saasFeign;
  25. @Override
  26. public ClientDetails loadClientByClientId(String clientId) throws ClientRegistrationException {
  27. Envelop envelop = saasFeign.findByCode(clientId);
  28. Map saasDO = (Map)envelop.getObj();
  29. if (saasDO.isEmpty()) {
  30. throw new ClientRegistrationException("该平台未注册");
  31. }
  32. BaseClientDetails baseClientDetails = new BaseClientDetails();
  33. baseClientDetails.setClientId(saasDO.get("id")+"");
  34. baseClientDetails.setClientSecret("");
  35. Set<String> strings = new HashSet<>();
  36. strings.add("password");
  37. strings.add("custom_password");
  38. strings.add("authorization_code");
  39. strings.add("refresh_token");
  40. baseClientDetails.setAuthorizedGrantTypes(strings);
  41. return baseClientDetails;
  42. }
  43. // public static void main(String[] args) {
  44. // byte[] a = Base64.encode("1:".getBytes());
  45. // String s = new String(a);
  46. // System.out.println(s);
  47. // }
  48. }