Graham Humphries ( 
https://osgeo-org.atlassian.net/secure/ViewProfile.jspa?accountId=5d1da2ae1f0bab0c4a28d7b8
 ) *created* an issue

GeoServer ( 
https://osgeo-org.atlassian.net/browse/GEOS?atlOrigin=eyJpIjoiY2QyZjhkZDg4Nzg3NDliZjk2YjI0M2IxNzliZGEyOTYiLCJwIjoiaiJ9
 ) / Bug ( 
https://osgeo-org.atlassian.net/browse/GEOS-10310?atlOrigin=eyJpIjoiY2QyZjhkZDg4Nzg3NDliZjk2YjI0M2IxNzliZGEyOTYiLCJwIjoiaiJ9
 ) GEOS-10310 ( 
https://osgeo-org.atlassian.net/browse/GEOS-10310?atlOrigin=eyJpIjoiY2QyZjhkZDg4Nzg3NDliZjk2YjI0M2IxNzliZGEyOTYiLCJwIjoiaiJ9
 ) Geoserver throws CloneNotSupportedException when using Basic Authentication 
( 
https://osgeo-org.atlassian.net/browse/GEOS-10310?atlOrigin=eyJpIjoiY2QyZjhkZDg4Nzg3NDliZjk2YjI0M2IxNzliZGEyOTYiLCJwIjoiaiJ9
 )

Issue Type: Bug Affects Versions: 2.19.2, 2.20.0 Assignee: Unassigned 
Components: Security Created: 18/Nov/21 10:13 PM Environment:

Solaris SunOS 5.11, Apache Tomcat/9.0.53 and Java to 11.0.12+7-LTS

Priority: Medium Reporter: Graham Humphries ( 
https://osgeo-org.atlassian.net/secure/ViewProfile.jspa?accountId=5d1da2ae1f0bab0c4a28d7b8
 )

Since upgrading Tomcat and Java to the version shown above Geoserver throws 
CloneNotSupportedException when using Basic Authentication passed in the 
request header.

The authentication header is added to the request by the web server running 
Apache HTTPD. It is different for internal and external users.
The response is as follows (including a stacktrace):

<!doctype html><html lang="en"><head><title>HTTP Status 500 – Internal Server 
Error</title><style type="text/css">body

{font-family:Tahoma,Arial,sans-serif;}

h1, h2, h3, b

color: Color value is invalid

h1

{font-size:22px;}

h2

{font-size:16px;}

h3

{font-size:14px;}

p

{font-size:12px;}

a

color: Color value is invalid

.line

{height:1px;background-color:#525D76;border:none;}

</style></head><body><h1>HTTP Status 500 – Internal Server Error</h1><hr 
class="line" /><p><b>Type</b> Exception Report</p><p><b>Message</b> 
java.lang.CloneNotSupportedException</p><p><b>Description</b> The server 
encountered an unexpected condition that prevented it from fulfilling the 
request.</p><p><b>Exception</b></p><pre>java.lang.RuntimeException: 
java.lang.CloneNotSupportedException
org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.getCacheKey(GeoServerBasicAuthenticationFilter.java:122)
org.geoserver.security.filter.GeoServerSecurityFilter.authenticateFromCache(GeoServerSecurityFilter.java:76)
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:47)
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:81)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:70)
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:52)
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:74)
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:142)
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:101)
org.geoserver.filters.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:77)
org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:47)
org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:46)
org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:42)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
</pre><p><b>Root Cause</b></p><pre>java.lang.CloneNotSupportedException
java.base/java.security.MessageDigest$Delegate.clone(MessageDigest.java:610)
org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.getCacheKey(GeoServerBasicAuthenticationFilter.java:119)
org.geoserver.security.filter.GeoServerSecurityFilter.authenticateFromCache(GeoServerSecurityFilter.java:76)
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:47)
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:81)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:70)
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:52)
org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:74)
org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:142)
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:101)
org.geoserver.filters.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:77)
org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:47)
org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:46)
org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:42)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

( 
https://osgeo-org.atlassian.net/browse/GEOS-10310#add-comment?atlOrigin=eyJpIjoiY2QyZjhkZDg4Nzg3NDliZjk2YjI0M2IxNzliZGEyOTYiLCJwIjoiaiJ9
 ) Add Comment ( 
https://osgeo-org.atlassian.net/browse/GEOS-10310#add-comment?atlOrigin=eyJpIjoiY2QyZjhkZDg4Nzg3NDliZjk2YjI0M2IxNzliZGEyOTYiLCJwIjoiaiJ9
 )

Get Jira notifications on your phone! Download the Jira Cloud app for Android ( 
https://play.google.com/store/apps/details?id=com.atlassian.android.jira.core&referrer=utm_source%3DNotificationLink%26utm_medium%3DEmail
 ) or iOS ( 
https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailNotificationLink&mt=8
 ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100183- 
sha1:ce6a64b )
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to