class HiOrgServerClient extends OAuth20Client {

    private final static String LOGOUT_URL = "https://www.hiorg-server.de/logout.php";

    /**
     * <p>Constructor for HiOrgServerClient.</p>
     */
    public HiOrgServerClient() {
        configuration = new HiOrgServerConfiguration();
    }

    /**
     * <p>Constructor for HiOrgServerClient.</p>
     *
     * @param key a {@link String} object
     * @param secret a {@link String} object
     */
    public HiOrgServerClient(final String key, final String secret) {
        configuration = new HiOrgServerConfiguration();
        setKey(key);
        setSecret(secret);
    }

    /** {@inheritDoc} */
    @Override
    protected void internalInit(final boolean forceReinit) {<FILL_FUNCTION_BODY>}

}

        configuration.setApi(HiOrgServerApi20.instance());
        configuration.setProfileDefinition(new HiOrgServerProfileDefinition());
        configuration.setHasBeenCancelledFactory(ctx -> {
            val error = ctx.getRequestParameter(OAuthCredentialsException.ERROR).orElse(null);
            val errorDescription = ctx.getRequestParameter(OAuthCredentialsException.ERROR_DESCRIPTION).orElse(null);
            // user has denied authorizations
            if ("access_denied".equals(error)) {
                logger.debug(errorDescription);
                return true;
            } else {
                return false;
            }
        });
        configuration.setWithState(true);
        setLogoutActionBuilderIfUndefined((ctx, profile, targetUrl) ->
            Optional.of(HttpActionHelper.buildRedirectUrlAction(ctx.webContext(), LOGOUT_URL)));

        super.internalInit(forceReinit);
    
<methods>public non-sealed void <init>() ,public java.lang.String getKey() ,public java.lang.String getSecret() ,public void setKey(java.lang.String) ,public void setSecret(java.lang.String) <variables>protected org.pac4j.oauth.config.OAuth20Configuration configuration