modules/jooby-pac4j/src/main/java/org/jooby/pac4j/Auth.java
@SuppressWarnings({"unchecked", "rawtypes"})
  public <C extends Credentials, U extends CommonProfile> Auth client(final String pattern,
      final Function<Config, Client<C, U>> provider) {
    bindings.put(pattern, (binder, config) -> {

      Client<C, U> client = provider.apply(config);
      Multibinder.newSetBinder(binder, Client.class)
          .addBinding().toInstance(client);
      Class clientType = client.getClass();
      Class profileType = ClientType.typeOf(clientType);

      bindProfile(binder, profileType);

      return new AuthFilter(clientType, profileType);
    });
    return this;
  }
@SuppressWarnings({"unchecked", "rawtypes"})
  public <C extends Credentials, U extends CommonProfile> Auth client(final String pattern,
      final Function<Config, Client<C, U>> provider) {
    bindings.put(pattern, (binder, config) -> {

      Client<C, U> client = provider.apply(config);
      Multibinder.newSetBinder(binder, Client.class)
          .addBinding().toInstance(client);
      Class clientType = client.getClass();
      Class profileType = ClientType.typeOf(clientType);

      bindProfile(binder, profileType);

      return new AuthFilter(clientType, profileType);
    });
    return this;
  }
Add an auth client, like facebook, twitter, github, etc...Please note the require dependency
must be in the classpath.

@param pattern URL pattern to protect.
@param provider Client to add.
@param <C> Credentials.
@param <U> CommonProfile.
@return This module.