asit-asso / extract

EXTRACT makes it easy to extract and deliver of your geodata
GNU General Public License v3.0
9 stars 4 forks source link

Personnaliser le User-Agent d'extract (Connecteur easySDIv4) #289

Open yblatti opened 1 year ago

yblatti commented 1 year ago

Aujourd'hui l'UA d'Extract est celui par défaut du client HTTP Apache (org.apache.http), soit Apache-HttpClient/4.5.13 (Java/17.0.5).

Pour l'ASIT il serait intéressant de connaitre les versions distantes d'Extract, et par conséquent nous proposons de personnaliser le User-Agent du connecteur en ajoutant extract et sa version en fin de chaine, par exemple : Apache-HttpClient/4.5.13 (Java/17.0.5) Extract/2.2.0-beta.1

Pseudo code pour src/main/java/ch/asit_asso/extract/connectors/easysdiv4/Easysdiv4.java :

    /**
     * A string that contains the version of Extract, given by maven
     */
    @Value("${extract.version}")
    private String applicationVersion;

    /**
     * Obtains a client object to make authenticated HTTP requests.
     *
     * @param targetHost     the server to send the requests to
     * @param targetLogin    the user name to authenticate with the server
     * @param targetPassword the password to authenticate with the server
     * @return the HTTP client
     */
    private CloseableHttpClient getHttpClient(final HttpHost targetHost, final String targetLogin,
                                              final String targetPassword) {
        assert targetHost != null : "The target host cannot be null";

        final CredentialsProvider credentials = this.getCredentialsProvider(targetHost, targetLogin, targetPassword);

        final String defaultUserAgent = VersionInfo.getUserAgent("Apache-HttpClient", "org.apache.http.client", Main.class);

        return HttpClients.custom()
                .setDefaultCredentialsProvider(credentials)
                .setUserAgent(defaultUserAgent + " Extract/" + this.applicationVersion)
                .build();
    }