Skip to content

Logout configuration

LELEU Jérôme edited this page Oct 9, 2020 · 9 revisions

You need to define a logout endpoint using the LogoutFilter to handle logout.

>> Read the documentation to understand its behavior and the available options.

The available options can be set via setters and servlet parameters. Yet, there is no config servlet parameter, the configFactory servlet parameter may be used instead to define a configuration.

The LogoutFilter can be defined in the web.xml file:

<filter>
  <filter-name>logoutFilter</filter-name>
  <filter-class>org.pac4j.j2e.filter.LogoutFilter</filter-class>
  <init-param>
    <param-name>defaultUrl</param-name>
    <param-value>/urlAfterLogout</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>logoutFilter</filter-name>
  <url-pattern>/logout</url-pattern>
</filter-mapping>

or using CDI and the org.pac4j.jee.util.FilterHelper:

@Named
@ApplicationScoped
public class WebConfig {

    @Inject
    private Config config;

    public void build(@Observes @Initialized(ApplicationScoped.class) ServletContext servletContext) {
        final FilterHelper filterHelper = new FilterHelper(servletContext);

        ...

        final LogoutFilter logoutFilter = new LogoutFilter(config, "/?defaulturlafterlogout");
        logoutFilter.setDestroySession(true);
        filterHelper.addFilterMapping("logoutFilter", logoutFilter, "/logout");

        ...
    }
}

The default internal components of the LogoutFilter are: JEESessionStore.INSTANCE, JEEHttpActionAdapter.INSTANCE, DefaultLogoutLogic.INSTANCE and JEEContextFactory.INSTANCE.

Clone this wiki locally