Upgrading from 11.0.X to 11.1.0#
SDK#
Changes to BackchannelAuthenticationRequest for CIBA plugins#
The changes in this section are relevant to authors of back-channel authenticator plugins that implement the
BackchannelAuthenticationHandler interface.
Version 11.1.0 adds support for the login_hint_token and id_token_hint parameters in CIBA requests.
For that, it introduces a type-safe BackchannelHint sealed interface to represent all three CIBA hint types.
Changed: getSubject() can now return an empty string#
BackchannelAuthenticationRequest.getSubject() now returns an empty string when the hint is a login_hint_token,
since no subject can be derived from an opaque token without further processing by the authenticator.
It returns the subject string for login_hint and id_token_hint.
New: getHint() returns BackchannelHint#
A new getHint() method returns a BackchannelHint — a sealed interface with three record types that
directly encode which hint parameter was provided:
BackchannelHint.LoginHint(String subject)— alogin_hintvalueBackchannelHint.IdTokenHint(String subject)— the subject extracted from a validatedid_token_hintBackchannelHint.LoginHintToken(String token)— an opaquelogin_hint_token, passed through as-is
Use of getHint() should be preferred to the use of getSubject().
How to update your plugin#
When possible, replace any usage of getSubject() with a pattern-matching switch on getHint().
Return failure if your plugin doesn’t support opaque tokens (login_hint_token).
Refer to the Back-Channel Authenticator Plugin documentation for full details.
Serialization filter system property#
The se.curity:identity-server:serialFilter Java system property allows additional Java types to be deserialized,
on top of the types the Curity Identity Server allows by default. In previous versions, setting this property did not
work correctly: instead of only allowing the types matched by its patterns, it effectively disabled the restriction
for every type not in the default allow-list. This was fixed in versions 11.4.3, 11.3.3, 11.2.4, 11.1.4, 11.0.6,
10.7.8, 10.6.6, 10.5.5, 10.4.7, 10.3.5, 10.2.6, 10.1.5 and 10.0.7.
From these versions, only the types matched by the property’s patterns are allowed in addition to the default ones,
and any other type is rejected. Deployments that set this property must review its value and make sure that it
matches every type that actually needs to be deserialized, as a value that is too narrow previously went unnoticed.
A type rejected by the filter is logged as a warning (Type ... not allowed to be deserialized).
Oracle Database users are affected in particular: previous versions of this documentation recommended the value
oracle.jdbc.**, which does not cover all types the Oracle driver deserializes. Change it to oracle.**, i.e.
-Dse.curity:identity-server:serialFilter=oracle.**. See
Oracle Driver and class serialization
for details.