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;
  }
@ 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.
Add an auth client like facebook twitter github etc ... Please note the require dependency must be in the classpath .