Login over proxy first succeeds and then claims not authenticated

Hi,

I have this:

  • Version: Sonarqube 25.9.0.112764
  • Deployed: As ZIP
  • OS: Linux
  • Database: PostgreSQL

I did a fresh installation of Sonarqube and configured apache to act as a proxy. While I can login when I access Sonarqube directly on the machine, I can’t over the proxy. I get the login page and when I try to login with credentials it redirects me back to the login screen.

Configuration of apache:

SSLUseStapling on
SSLStaplingCache shmcb:/var/lib/apache2/stapling_cache(512000)
H2MinWorkers 5

<VirtualHost *:443>
    SSLEngine on
    ServerAdmin andreas@theosys.at
    ServerName www.theosys.at
    Protocols h2 h2c http/1.1
    PassengerDisableSecurityUpdateCheck on
    SetEnv PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY 0
    SetEnv PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY 0
    ProxyPreserveHost On
    ProxyRequests Off

    ProxyPass /sonarqube http://127.0.0.1:9000/sonarqube nocanon
    ProxyPassReverse /sonarqube http://127.0.0.1:9000/sonarqube

    <Proxy *>
        RequestHeader set X-Forwarded-Proto "https"
        RequestHeader set X-Forwarded-Port "443"
        Order deny,allow
        Allow from all
    </Proxy>

    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/www.theosys.at/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/www.theosys.at/privkey.pem
</VirtualHost>

The above configuration is an excerpt, because I have other WEB Apps and I use Apache as a proxy for them. This means that in reality are more ProxyPass lines there, but for other Apps.

Here is a log with TRACE enabled. It shows what happens if I try to login with the credentials for the user admin:

2025.09.30 16:44:03 DEBUG web[][j.io.serialization] Builtin factory: null -> new: null
2025.09.30 16:44:03 TRACE web[][tracer] curl -iX GET 'http://localhost:9001/_cluster/health?master_timeout=30s&level=cluster&timeout=30s'\n# HTTP/1.1 200 OK\n# X-elastic-product: Elasticsearch\n# content-type: application/vnd.elasticsearch+json;compatible-with=7\n# content-length: 417\n#\n# {"cluster_name":"sonarqube","status":"green","timed_out":false,"number_of_nodes":1,"number_of_data_nodes":1,"active_primary_shards":23,"active_shards":23,"relocating_shards":0,"initializing_shards":0,"unassigned_shards":0,"unassigned_primary_shards":0,"delayed_unassigned_shards":0,"number_of_pending_tasks":0,"number_of_in_flight_fetch":0,"task_max_waiting_in_queue_millis":0,"active_shards_percent_as_number":100.0}
2025.09.30 16:44:03 TRACE web[][es] ES cluster health request | time=3ms
2025.09.30 16:44:03 DEBUG web[][j.io.serialization] Builtin factory: null -> new: null
2025.09.30 16:44:03 TRACE web[][tracer] curl -iX GET 'http://localhost:9001/_nodes/stats/fs,process,jvm,indices,breaker'\n# HTTP/1.1 200 OK\n# X-elastic-product: Elasticsearch\n# content-type: application/json\n# Transfer-Encoding: chunked\n#\n# {"_nodes":{"total":1,"successful":1,"failed":0},"cluster_name":"sonarqube","nodes":{"iI9fxM3rQFOgSk2BZ0jtSw":{"timestamp":1759243443070,"name":"sonarqube","transport_address":"127.0.0.1:33049","host":"127.0.0.1","ip":"127.0.0.1:33049","roles":["data","data_cold","data_content","data_frozen","data_hot","data_warm","ingest","master","ml","remote_cluster_client","transform"],"attributes":{"xpack.installed":"true","rack_id":"sonarqube"},"indices":{"docs":{"count":46229,"deleted":26,"total_size_in_bytes":41252619},"shard_stats":{"total_count":23},"store":{"size_in_bytes":41260907,"total_data_set_size_in_bytes":41260907,"reserved_in_bytes":0},"indexing":{"index_total":0,"index_time_in_millis":0,"index_current":0,"index_failed":0,"delete_total":0,"delete_time_in_millis":0,"delete_current":0,"noop_update_total":0,"is_throttled":false,"throttle_time_in_millis":0,"write_load":0.0},"get":{"total":16,"time_in_millis":9,"exists_total":16,"exists_time_in_millis":9,"missing_total":0,"missing_time_in_millis":0,"current":0},"search":{"open_contexts":0,"query_total":12,"query_time_in_millis":186,"query_current":0,"query_failure":0,"fetch_total":4,"fetch_time_in_millis":32,"fetch_current":0,"fetch_failure":0,"scroll_total":0,"scroll_time_in_millis":0,"scroll_current":0,"suggest_total":0,"suggest_time_in_millis":0,"suggest_current":0},"merges":{"current":0,"current_docs":0,"current_size_in_bytes":0,"total":0,"total_time_in_millis":0,"total_docs":0,"total_size_in_bytes":0,"total_stopped_time_in_millis":0,"total_throttled_time_in_millis":0,"total_auto_throttle_in_bytes":482344960},"refresh":{"total":74,"total_time_in_millis":0,"external_total":51,"external_total_time_in_millis":45,"listeners":0},"flush":{"total":23,"periodic":23,"total_time_in_millis":149,"total_time_excluding_waiting_on_lock_in_millis":146},"warmer":{"current":0,"total":28,"total_time_in_millis":44},"query_cache":{"memory_size_in_bytes":4536,"total_count":30,"hit_count":0,"miss_count":30,"cache_size":2,"cache_count":2,"evictions":0},"fielddata":{"memory_size_in_bytes":801036,"evictions":0,"global_ordinals":{"build_time_in_millis":37}},"completion":{"size_in_bytes":0},"segments":{"count":29,"memory_in_bytes":0,"terms_memory_in_bytes":0,"stored_fields_memory_in_bytes":0,"term_vectors_memory_in_bytes":0,"norms_memory_in_bytes":0,"points_memory_in_bytes":0,"doc_values_memory_in_bytes":0,"index_writer_memory_in_bytes":0,"version_map_memory_in_bytes":0,"fixed_bit_set_memory_in_bytes":6808,"max_unsafe_auto_id_timestamp":-1,"file_sizes":{}},"translog":{"operations":0,"size_in_bytes":1265,"uncommitted_operations":0,"uncommitted_size_in_bytes":1265,"earliest_last_modified_age":2456679},"request_cache":{"memory_size_in_bytes":0,"evictions":0,"hit_count":0,"miss_count":0},"recovery":{"current_as_source":0,"current_as_target":0,"throttle_time_in_millis":0},"bulk":{"total_operations":0,"total_time_in_millis":0,"total_size_in_bytes":0,"avg_time_in_millis":0,"avg_size_in_bytes":0},"mappings":{"total_count":228,"total_estimated_overhead_in_bytes":233472,"total_segments":29,"total_segment_fields":1465,"average_fields_per_segment":50},"dense_vector":{"value_count":0},"sparse_vector":{"value_count":0}},"process":{"timestamp":1759243443071,"open_file_descriptors":358,"max_file_descriptors":131072,"cpu":{"percent":0,"total_in_millis":23500},"mem":{"total_virtual_in_bytes":15210668032}},"jvm":{"timestamp":1759243443071,"uptime_in_millis":2460372,"mem":{"heap_used_in_bytes":119614848,"heap_used_percent":22,"heap_committed_in_bytes":536870912,"heap_max_in_bytes":536870912,"non_heap_used_in_bytes":151680096,"non_heap_committed_in_bytes":158662656,"pools":{"CodeHeap 'non-nmethods'":{"used_in_bytes":2804736,"max_in_bytes":8196096,"peak_used_in_bytes":5126400,"peak_max_in_bytes":8196096},"Metaspace":{"used_in_bytes":98030808,"max_in_bytes":0,"peak_used_in_bytes":98030808,"peak_max_in_bytes":0},"CodeHeap 'profiled nmethods'":{"used_in_bytes":26527488,"max_in_bytes":121729024,"peak_used_in_bytes":26527488,"peak_max_in_bytes":121729024},"Compressed Class Space":{"used_in_bytes":13496968,"max_in_bytes":1073741824,"peak_used_in_bytes":13496968,"peak_max_in_bytes":1073741824},"young":{"used_in_bytes":58720256,"max_in_bytes":0,"peak_used_in_bytes":310378496,"peak_max_in_bytes":0},"old":{"used_in_bytes":37113008,"max_in_bytes":536870912,"peak_used_in_bytes":37113008,"peak_max_in_bytes":536870912},"survivor":{"used_in_bytes":23781584,"max_in_bytes":0,"peak_used_in_bytes":38677968,"peak_max_in_bytes":0},"CodeHeap 'non-profiled nmethods'":{"used_in_bytes":10820096,"max_in_bytes":121733120,"peak_used_in_bytes":10820096,"peak_max_in_bytes":121733120}}},"threads":{"count":147,"peak_count":147},"gc":{"collectors":{"young":{"collection_count":10,"collection_time_in_millis":34},"G1 Concurrent GC":{"collection_count":6,"collection_time_in_millis":6},"old":{"collection_count":0,"collection_time_in_millis":0}}},"buffer_pools":{"mapped":{"count":31,"used_in_bytes":41215062,"total_capacity_in_bytes":41215062},"direct":{"count":22,"used_in_bytes":3244328,"total_capacity_in_bytes":3244327},"mapped - 'non-volatile memory'":{"count":0,"used_in_bytes":0,"total_capacity_in_bytes":0}},"classes":{"current_loaded_count":21899,"total_loaded_count":21917,"total_unloaded_count":18}},"fs":{"timestamp":1759243443071,"total":{"total_in_bytes":1759543771136,"free_in_bytes":1425291005952,"available_in_bytes":1335889629184},"data":[{"path":"/opt/sonarqube/data/es8","mount":"/ (/dev/mapper/theosys--vg-root)","type":"ext4","total_in_bytes":1759543771136,"free_in_bytes":1425291005952,"available_in_bytes":1335889629184,"low_watermark_free_space_in_bytes":214748364800,"high_watermark_free_space_in_bytes":161061273600,"flood_stage_free_space_in_bytes":87977188556}],"io_stats":{"devices":[{"device_name":"dm-0","operations":27633,"read_operations":185,"write_operations":27448,"read_kilobytes":3028,"write_kilobytes":776125,"io_time_in_millis":41436}],"total":{"operations":27633,"read_operations":185,"write_operations":27448,"read_kilobytes":3028,"write_kilobytes":776125,"io_time_in_millis":41436}}},"breakers":{"fielddata":{"limit_size_in_bytes":214748364,"limit_size":"204.7mb","estimated_size_in_bytes":801036,"estimated_size":"782.2kb","overhead":1.03,"tripped":0},"inflight_requests":{"limit_size_in_bytes":536870912,"limit_size":"512mb","estimated_size_in_bytes":0,"estimated_size":"0b","overhead":2.0,"tripped":0},"request":{"limit_size_in_bytes":322122547,"limit_size":"307.1mb","estimated_size_in_bytes":0,"estimated_size":"0b","overhead":1.0,"tripped":0},"parent":{"limit_size_in_bytes":510027366,"limit_size":"486.3mb","estimated_size_in_bytes":119614848,"estimated_size":"114mb","overhead":1.0,"tripped":0}}}}}
2025.09.30 16:44:03 TRACE web[][es] time=3ms
2025.09.30 16:44:06 TRACE web[4f70ac00-5531-4125-8a57-3b301fc48c6d][o.s.s.p.w.UserSessionFilter] Thread[#136,http-nio-127.0.0.1-9000-exec-6,5,main] serves /sonarqube/api/authentication/login
2025.09.30 16:44:06 TRACE web[4f70ac00-5531-4125-8a57-3b301fc48c6d][sql] time=2ms | sql=SELECT sa.scm_account as "scm_account", u.uuid as uuid, u.login as login, u.name as name, u.email as email, u.active as "active", u.salt as "salt", u.crypted_password as "cryptedPassword", u.hash_method as "hashMethod", u.external_id as "externalId", u.external_login as "externalLogin", u.external_identity_provider as "externalIdentityProvider", u.user_local as "local", u.reset_password as "resetPassword", u.homepage_type as "homepageType", u.homepage_parameter as "homepageParameter", u.last_connection_date as "lastConnectionDate", u.last_sonarlint_connection as "lastSonarlintConnectionDate", u.created_at as "createdAt", u.updated_at as "updatedAt" FROM users u left outer join scm_accounts sa on sa.user_uuid = u.uuid WHERE u.login=? AND u.active=true | params=admin
2025.09.30 16:44:06 DEBUG web[4f70ac00-5531-4125-8a57-3b301fc48c6d][auth.event] login success [method|FORM][provider|LOCAL|local][IP|127.0.0.1|10.1.2.133][login|admin]
2025.09.30 16:44:06 TRACE web[4f70ac00-5531-4125-8a57-3b301fc48c6d][sql] time=1ms | sql=insert into session_tokens ( uuid, user_uuid, expiration_date, created_at, updated_at ) values ( ?, ?, ?, ?, ? ) | params=82ba314d-4bc6-4a19-8415-253c1edefced, a65f3845-2efa-4364-80c4-5c21dc8fa270, 1759502646387, 1759243446387, 1759243446387
2025.09.30 16:44:06 TRACE web[7a81e70b-2aa8-435f-b3dc-53227a22484c][o.s.s.p.w.UserSessionFilter] Thread[#105,http-nio-127.0.0.1-9000-exec-5,5,main] serves /sonarqube/projects
2025.09.30 16:44:06 TRACE web[7a81e70b-2aa8-435f-b3dc-53227a22484c][sql] time=2ms | sql=select p.prop_key as "key", p.is_empty as empty, p.text_value as textValue, p.clob_value as clobValue, p.entity_uuid as entityUuid, p.user_uuid as userUuid from properties p where p.prop_key=? and p.entity_uuid is null and p.user_uuid is null | params=sonar.forceAuthentication
2025.09.30 16:44:06 DEBUG web[7a81e70b-2aa8-435f-b3dc-53227a22484c][auth.event] login failure [cause|User must be authenticated][method|BASIC][provider|LOCAL|local][IP|127.0.0.1|10.1.2.133][login|]
2025.09.30 16:44:06 TRACE web[7a81e70b-2aa8-435f-b3dc-53227a22484c][sql] time=2ms | sql=select p.prop_key as "key", p.is_empty as empty, p.text_value as textValue, p.clob_value as clobValue, p.entity_uuid as entityUuid, p.user_uuid as userUuid from properties p where p.prop_key=? and p.entity_uuid is null and p.user_uuid is null | params=sonar.forceRedirectOnDefaultAdminCredentials
2025.09.30 16:44:06 TRACE web[7a81e70b-2aa8-435f-b3dc-53227a22484c][sql] time=2ms | sql=select p.prop_key as "key", p.is_empty as empty, p.text_value as textValue, p.clob_value as clobValue, p.entity_uuid as entityUuid, p.user_uuid as userUuid from properties p where p.prop_key=? and p.entity_uuid is null and p.user_uuid is null | params=sonar.plugins.risk.consent
2025.09.30 16:44:06 TRACE web[bf8e4fea-1d5e-4073-b85f-1b111dc95c85][o.s.s.p.w.UserSessionFilter] Thread[#103,http-nio-127.0.0.1-9000-exec-3,5,main] serves /sonarqube/api/navigation/global
2025.09.30 16:44:06 TRACE web[bf8e4fea-1d5e-4073-b85f-1b111dc95c85][sql] time=2ms | sql=select p.prop_key as "key", p.is_empty as empty, p.text_value as textValue, p.clob_value as clobValue, p.entity_uuid as entityUuid, p.user_uuid as userUuid from properties p where p.prop_key=? and p.entity_uuid is null and p.user_uuid is null | params=sonar.forceAuthentication
2025.09.30 16:44:06 DEBUG web[bf8e4fea-1d5e-4073-b85f-1b111dc95c85][auth.event] login failure [cause|User must be authenticated][method|BASIC][provider|LOCAL|local][IP|127.0.0.1|10.1.2.133][login|]
2025.09.30 16:44:06 TRACE web[802e62c9-8e69-42e2-84cd-e53d8aa87264][o.s.s.p.w.UserSessionFilter] Thread[#101,http-nio-127.0.0.1-9000-exec-1,5,main] serves /sonarqube/api/l10n/index
2025.09.30 16:44:06 TRACE web[12bf381c-df86-42f7-bbf3-e12c20e1193c][o.s.s.p.w.UserSessionFilter] Thread[#102,http-nio-127.0.0.1-9000-exec-2,5,main] serves /sonarqube/api/users/current
2025.09.30 16:44:06 TRACE web[12bf381c-df86-42f7-bbf3-e12c20e1193c][sql] time=2ms | sql=select p.prop_key as "key", p.is_empty as empty, p.text_value as textValue, p.clob_value as clobValue, p.entity_uuid as entityUuid, p.user_uuid as userUuid from properties p where p.prop_key=? and p.entity_uuid is null and p.user_uuid is null | params=sonar.forceAuthentication
2025.09.30 16:44:06 DEBUG web[12bf381c-df86-42f7-bbf3-e12c20e1193c][auth.event] login failure [cause|User must be authenticated][method|BASIC][provider|LOCAL|local][IP|127.0.0.1|10.1.2.133][login|]
2025.09.30 16:44:06 TRACE web[698474c5-bca2-4240-96bc-b7eb2853de64][o.s.s.p.w.UserSessionFilter] Thread[#136,http-nio-127.0.0.1-9000-exec-6,5,main] serves /sonarqube/api/features/list
2025.09.30 16:44:06 TRACE web[b81b3c6d-f066-4ae2-8bee-26784a94eec5][o.s.s.p.w.UserSessionFilter] Thread[#105,http-nio-127.0.0.1-9000-exec-5,5,main] serves /sonarqube/api/settings/values
2025.09.30 16:44:06 TRACE web[698474c5-bca2-4240-96bc-b7eb2853de64][sql] time=2ms | sql=select p.prop_key as "key", p.is_empty as empty, p.text_value as textValue, p.clob_value as clobValue, p.entity_uuid as entityUuid, p.user_uuid as userUuid from properties p where p.prop_key=? and p.entity_uuid is null and p.user_uuid is null | params=sonar.forceAuthentication
2025.09.30 16:44:06 DEBUG web[698474c5-bca2-4240-96bc-b7eb2853de64][auth.event] login failure [cause|User must be authenticated][method|BASIC][provider|LOCAL|local][IP|127.0.0.1|10.1.2.133][login|]
2025.09.30 16:44:06 TRACE web[b81b3c6d-f066-4ae2-8bee-26784a94eec5][sql] time=2ms | sql=select p.prop_key as "key", p.is_empty as empty, p.text_value as textValue, p.clob_value as clobValue, p.entity_uuid as entityUuid, p.user_uuid as userUuid from properties p where p.prop_key=? and p.entity_uuid is null and p.user_uuid is null | params=sonar.forceAuthentication
2025.09.30 16:44:06 DEBUG web[b81b3c6d-f066-4ae2-8bee-26784a94eec5][auth.event] login failure [cause|User must be authenticated][method|BASIC][provider|LOCAL|local][IP|127.0.0.1|10.1.2.133][login|]
2025.09.30 16:44:06 TRACE web[1d6ce101-45be-4411-acdf-a219c251d211][o.s.s.p.w.UserSessionFilter] Thread[#103,http-nio-127.0.0.1-9000-exec-3,5,main] serves /sonarqube/sessions/new
2025.09.30 16:44:06 TRACE web[1d6ce101-45be-4411-acdf-a219c251d211][sql] time=2ms | sql=select p.prop_key as "key", p.is_empty as empty, p.text_value as textValue, p.clob_value as clobValue, p.entity_uuid as entityUuid, p.user_uuid as userUuid from properties p where p.prop_key=? and p.entity_uuid is null and p.user_uuid is null | params=sonar.forceRedirectOnDefaultAdminCredentials
2025.09.30 16:44:06 TRACE web[1d6ce101-45be-4411-acdf-a219c251d211][sql] time=2ms | sql=select p.prop_key as "key", p.is_empty as empty, p.text_value as textValue, p.clob_value as clobValue, p.entity_uuid as entityUuid, p.user_uuid as userUuid from properties p where p.prop_key=? and p.entity_uuid is null and p.user_uuid is null | params=sonar.plugins.risk.consent
2025.09.30 16:44:07 TRACE web[b372c915-f4d5-46a3-88a3-eab9af759a94][o.s.s.p.w.UserSessionFilter] Thread[#101,http-nio-127.0.0.1-9000-exec-1,5,main] serves /sonarqube/api/l10n/index
2025.09.30 16:44:07 TRACE web[16958fe7-1ecc-4489-8a9d-25601dedbc7f][o.s.s.p.w.UserSessionFilter] Thread[#102,http-nio-127.0.0.1-9000-exec-2,5,main] serves /sonarqube/api/users/identity_providers
2025.09.30 16:44:07 TRACE web[8e2a18c5-bd75-4ab6-8f87-0d056ea1b9f8][o.s.s.p.w.UserSessionFilter] Thread[#136,http-nio-127.0.0.1-9000-exec-6,5,main] serves /sonarqube/api/settings/login_message
2025.09.30 16:44:07 TRACE web[8e2a18c5-bd75-4ab6-8f87-0d056ea1b9f8][sql] time=2ms | sql=select p.prop_key as "key", p.is_empty as empty, p.text_value as textValue, p.clob_value as clobValue, p.entity_uuid as entityUuid, p.user_uuid as userUuid from properties p where p.prop_key=? and p.entity_uuid is null and p.user_uuid is null | params=sonar.login.displayMessage
2025.09.30 16:44:07 TRACE web[16958fe7-1ecc-4489-8a9d-25601dedbc7f][sql] time=2ms | sql=select p.prop_key as "key", p.is_empty as empty, p.text_value as textValue, p.clob_value as clobValue, p.entity_uuid as entityUuid, p.user_uuid as userUuid from properties p where p.prop_key=? and p.entity_uuid is null and p.user_uuid is null | params=sonar.auth.github.enabled
2025.09.30 16:44:07 TRACE web[16958fe7-1ecc-4489-8a9d-25601dedbc7f][sql] time=2ms | sql=select p.prop_key as "key", p.is_empty as empty, p.text_value as textValue, p.clob_value as clobValue, p.entity_uuid as entityUuid, p.user_uuid as userUuid from properties p where p.prop_key=? and p.entity_uuid is null and p.user_uuid is null | params=sonar.auth.github.clientId.secured
2025.09.30 16:44:07 TRACE web[16958fe7-1ecc-4489-8a9d-25601dedbc7f][sql] time=2ms | sql=select p.prop_key as "key", p.is_empty as empty, p.text_value as textValue, p.clob_value as clobValue, p.entity_uuid as entityUuid, p.user_uuid as userUuid from properties p where p.prop_key=? and p.entity_uuid is null and p.user_uuid is null | params=sonar.auth.github.clientSecret.secured
2025.09.30 16:44:07 TRACE web[16958fe7-1ecc-4489-8a9d-25601dedbc7f][sql] time=1ms | sql=select p.prop_key as "key", p.is_empty as empty, p.text_value as textValue, p.clob_value as clobValue, p.entity_uuid as entityUuid, p.user_uuid as userUuid from properties p where p.prop_key=? and p.entity_uuid is null and p.user_uuid is null | params=sonar.auth.saml.enabled
2025.09.30 16:44:07 TRACE web[16958fe7-1ecc-4489-8a9d-25601dedbc7f][sql] time=2ms | sql=select p.prop_key as "key", p.is_empty as empty, p.text_value as textValue, p.clob_value as clobValue, p.entity_uuid as entityUuid, p.user_uuid as userUuid from properties p where p.prop_key=? and p.entity_uuid is null and p.user_uuid is null | params=sonar.auth.gitlab.enabled
2025.09.30 16:44:07 DEBUG web[][c.z.h.p.HikariPool] HikariPool-1 - Before cleanup stats (total=10/60, idle=9/10, active=1, waiting=0)

Interestingly I can login if I use the internal URL http://localhost:9000/sonarqube in the browser. I’ve seen a lot of login problems but none of them helped me and most of them had different circumstances. I tried already a lot of things but nothing helped. Does someone know what’s wrong?

A.T.

In the mean time I solved the problem. I added a new domain to my base domain, dedicated for Sonarqube. Then I created a configuration file for Apache just for Sonarqube with the new domain. In the configuration for the base domain I added a permanent redirection to the new domain. This works now. I can login with credentials and even the connection to Github works now. I can also login with my Github account :slight_smile:

A.T.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.