public RadiusAuthenticator getAuthenticator() throws IllegalStateException {

        // As we are using JRadius' own NAME constants for retrieving
        // authenticator instances, the retrieval operation should always
        // succeed except in the case of a bug within the JRadius library
        RadiusAuthenticator authenticator = RadiusClient.getAuthProtocol(JRADIUS_PROTOCOL_NAME);
        if (authenticator == null)
            throw new IllegalStateException(String.format("JRadius failed "
                    +"to locate its own support for protocol \"%s\". This is "
                    + "likely a bug in the JRadius library.",
                    JRADIUS_PROTOCOL_NAME));

        return authenticator;

    }
Returns a new instance of the JRadius {@link RadiusAuthenticator} that
implements this protocol. This function will never return null.

@return
    A new instance of the JRadius {@link RadiusAuthenticator} that
    implements this protocol.

@throws IllegalStateException
    If a bug within the JRadius library prevents retrieval of the
    authenticator for a protocol that is known to be supported.
extensions/guacamole-auth-radius/src/main/java/org/apache/guacamole/auth/radius/conf/RadiusAuthenticationProtocol.java