pac4j.callbackUrl = /callback
pac4j.clients = FacebookClient, Google2Client
facebook.key = YOUR_FACEBOOK_APP_KEY
facebook.secret = YOUR_FACEBOOK_APP_SECRET
google2.key = YOUR_GOOGLE_APP_KEY
google2.secret = YOUR_GOOGLE_APP_SECRET
import org.pac4j.core.config.Config;
import org.pac4j.core.context.HttpConstants;
import org.pac4j.core.profile.CommonProfile;
import org.pac4j.j2e.filter.SecurityFilter;
import org.pac4j.j2e.filter.CallbackFilter;
import org.pac4j.j2e.filter.LogoutFilter;
import org.pac4j.j2e.filter.ApplicationLogoutFilter;
import org.pac4j.j2e.handler.CallbackHandler;
import org.pac4j.j2e.handler.LogoutHandler;
import org.pac4j.j2e.handler.ApplicationLogoutHandler;
import org.pac4j.j2e.filter.RequiresAuthenticationFilter;
public class MySecurityConfig {
public static Config buildConfig() {
Config config = new ConfigFactory(packageName + "example.properties");
SecurityFilter securityFilter = new SecurityFilter();
CallbackFilter callbackFilter = new CallbackFilter();
LogoutFilter logoutFilter = new LogoutFilter();
ApplicationLogoutFilter appLogoutFilter = new ApplicationLogoutFilter();
RequiresAuthenticationFilter requiresAuthentication = new RequiresAuthenticationFilter();
securityFilter.setConfig(config);
callbackFilter.setDefaultUrl("/index");
callbackFilter.setConfig(config);
callbackFilter.setHandler(new CallbackHandler());
logoutFilter.setDefaultUrl("/logout");
logoutFilter.setConfig(config);
logoutFilter.setLocalLogout(true);
logoutFilter.setDestroySession(true);
logoutFilter.setHandler(new LogoutHandler());
appLogoutFilter.setDefaultUrl("/");
appLogoutFilter.setConfig(config);
appLogoutFilter.setHandler(new ApplicationLogoutHandler());
requiresAuthentication.setConfig(config);
Filter[] filters = {
securityFilter,
callbackFilter,
logoutFilter,
appLogoutFilter,
requiresAuthentication
};
Chain chain = new Chain("/");
chain.setFilters(filters);
ConfigSingleton.setConfiguration(config);
ConfigSingleton.getApp().addFilterChain("/**", chain);
return config;
}
}