class OidcLogoutProcessor implements LogoutProcessor {

    protected final OidcConfiguration configuration;

    protected final SessionLogoutHandler sessionLogoutHandler;

    /**
     * <p>Constructor for OidcLogoutProcessor.</p>
     *
     * @param configuration a {@link OidcConfiguration} object
     */
    public OidcLogoutProcessor(final OidcConfiguration configuration, final SessionLogoutHandler sessionLogoutHandler) {
        CommonHelper.assertNotNull("configuration", configuration);
        this.configuration = configuration;
        this.sessionLogoutHandler = sessionLogoutHandler;
    }

    /** {@inheritDoc} */
    @Override
    public HttpAction processLogout(final CallContext ctx, final Credentials logoutCredentials) {<FILL_FUNCTION_BODY>}
}

        assertTrue(logoutCredentials instanceof SessionKeyCredentials, "credentials must be of type SessionKeyCredentials");
        val credentials = (SessionKeyCredentials) logoutCredentials;
        val sessionKey = credentials.getSessionKey();

        if (sessionLogoutHandler != null) {
            sessionLogoutHandler.destroySession(ctx, sessionKey);
        }

        val webContext = ctx.webContext();
        webContext.setResponseHeader("Cache-Control", "no-cache, no-store");
        webContext.setResponseHeader("Pragma", "no-cache");
        return new OkAction(Pac4jConstants.EMPTY_STRING);
    
<no_super_class>