Skip to content

Commit 9cb9343

Browse files
lachlan-robertssbordet
authored andcommitted
Issue #6205 - Fix serialization issues in OpenIdAuthenticator
Signed-off-by: Lachlan Roberts <[email protected]>
1 parent 2e7f5eb commit 9cb9343

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

jetty-openid/src/main/java/org/eclipse/jetty/security/openid/OpenIdAuthenticator.java

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -526,22 +526,30 @@ private Map<String, UriRedirectInfo> ensureCsrfMap(HttpSession session)
526526
Map<String, UriRedirectInfo> csrfMap = (Map<String, UriRedirectInfo>)session.getAttribute(CSRF_MAP);
527527
if (csrfMap == null)
528528
{
529-
// Create a custom Map so we can only have a limited number of request URIs saved.
530-
csrfMap = new LinkedHashMap<String, UriRedirectInfo>()
531-
{
532-
private static final int MAX_SIZE = 64;
533-
534-
@Override
535-
protected boolean removeEldestEntry(Map.Entry<String, UriRedirectInfo> eldest)
536-
{
537-
return size() > MAX_SIZE;
538-
}
539-
};
529+
csrfMap = new MRUMap(64);
540530
session.setAttribute(CSRF_MAP, csrfMap);
541531
}
542532
return csrfMap;
543533
}
544534

535+
private static class MRUMap extends LinkedHashMap<String, UriRedirectInfo>
536+
{
537+
private static final long serialVersionUID = 5375723072014233L;
538+
539+
private final int _size;
540+
541+
private MRUMap(int size)
542+
{
543+
_size = size;
544+
}
545+
546+
@Override
547+
protected boolean removeEldestEntry(Map.Entry<String, UriRedirectInfo> eldest)
548+
{
549+
return size() > _size;
550+
}
551+
}
552+
545553
private static class UriRedirectInfo implements Serializable
546554
{
547555
private static final long serialVersionUID = 139567755844461433L;

0 commit comments

Comments
 (0)