Custom code - actions required when upgrading

Custom code (extensions and custom plugins) may have to be adapted when upgrading from IAM 7.7 to 8.0. This article documents the most important changes.

Moved classes

The following classes have been moved to new packages.

Source package

Target package

Classes

com.airlock.iam.domainevent.api

com.airlock.iam.base.api.domain.model.event.*

DomainEvent
DomainEventSubscriber
 
EventId
EventMetadata
EventMetadataItem
EventMetadataItemType
StandardEventMetadataItemType

com.airlock.iam.rest.api.infrastructure.exception

com.airlock.iam.base.api.infrastructure.exception

RestErrorCode

com.airlock.iam.rest.api.infrastructure.uri

com.airlock.iam.base.api.infrastructure.uri

ExternalUriInfo

com.airlock.iam.rest.api.application.configuration

com.airlock.iam.common.api.application.configuration

RestApplicationConfiguration
RestExtension

com.airlock.iam.rest.api.infrastructure.annotation

com.airlock.iam.common.api.infrastructure.annotation

DisableCsrfFilter
DisableResponseDelay
DisableSystemAvailabilityCheck

com.airlock.iam.login.api.domain.model

com.airlock.iam.authentication.api.domain.model.error

UserValidityError

com.airlock.iam.dependencyinjection.api.plugin

com.airlock.iam.base.api.domain.model.plugin

LogicForConfig

com.airlock.iam.dependencyinjection.api.plugin

com.airlock.iam.base.api.infrastructure.injection

SkipAutoRegistration

com.airlock.iam.dependencyinjection.api.plugin

com.airlock.iam.base.api.infrastructure.plugin

ModuleForConfig
PluginConfigToLogic

com.airlock.iam.flow.shared.api.domain.model.e2ee

com.airlock.iam.common.api.domain.model.e2ee

E2eEncryptionSession
PublicE2eEncryptionInformation

com.airlock.iam.login.api.application.configuration.transform

com.airlock.iam.common.api.application.configuration.location.transform

StringTransformerConfig

com.airlock.iam.login.api.domain.model.transform

com.airlock.iam.common.api.domain.model.location.transform

StringTransformer
TransformationResult
TransformationResultType
Transformer
URITransformer

com.airlock.iam.exception.api

com.airlock.iam.base.api

All classes in the source package.

Removed deprecated classes

The following deprecated classes have been removed.

Removed class

Replacement class

com.airlock.iam.flow.rest.api.infrastructure.mapper.FlowResultMapper

com.airlock.iam.flow.api.infrastructure.mapper.FlowResultMapper

com.airlock.iam.flow.rest.api.infrastructure.transfer.response.FlowResultData

com.airlock.iam.flow.api.infrastructure.transfer.response.FlowResultData

com.airlock.iam.flow.auth.rest.api.infrastructure.transfer.response.AuthenticationFlowResultData

com.airlock.iam.flow.auth.api.infrastructure.transfer.response.AuthenticationFlowResultData

com.airlock.iam.publicselfservice.rest.api.infrastructure.transfer.response.PublicSelfServiceFlowResultData

com.airlock.iam.publicselfservice.api.infrastructure.transfer.response.PublicSelfServiceFlowResultData

com.airlock.iam.selfservice.rest.api.infrastructure.transfer.response.SelfServiceFlowResultData

com.airlock.iam.selfservice.api.infrastructure.transfer.response.SelfServiceFlowResultData

com.airlock.iam.techclientreg.rest.api.infrastructure.transfer.response.OAuth2ClientRegistrationErrorResponseData

com.airlock.iam.techclientreg.api.infrastructure.transfer.response.OAuth2ClientRegistrationErrorResponseData

com.airlock.iam.techclientreg.rest.api.infrastructure.transfer.response.TechClientRegFlowResultData

com.airlock.iam.techclientreg.api.infrastructure.transfer.response.TechClientRegFlowResultData

com.airlock.iam.transactionapproval.rest.api.infrastructure.transfer.response.TransactionApprovalFlowResultData

com.airlock.iam.transactionapproval.api.infrastructure.transfer.response.TransactionApprovalFlowResultData

com.airlock.iam.userselfreg.rest.api.infrastructure.transfer.response.UserSelfRegFlowResultData

com.airlock.iam.userselfreg.api.infrastructure.transfer.response.UserSelfRegFlowResultData

Other changes

IAM Module

Affected Feature(s)
(Relevant if using ...)

Issue(s)

Required Action

Loginapp

Custom authentication steps

AI-16039

AI-13140

All implementations of AuthenticationMethodVerifyingFlowStep must now return an AuthenticationStepResult instead of a StepResult for all methods.

Removed deprecated Java APIs from StepResult and StepResultFactory.

Loginapp

Custom flow steps

AI-16025

Removed deprecated constructors in AbstractFlowStepConfig. Custom code must be adjusted.

Loginapp

Custom flow steps

AI-17139

The StringContainerFlowAttribute is now called GenericStringsSessionAttribute. Code relying on the latter must be adapted.

Loginapp

Custom flow steps

AI-16038

The OverridingFailedLoginsIncrementStep interface has been removed. Use AuthenticationStepResult.isFailedFactor instead.

Loginapp

Custom flow steps

AI-16046

Deprecated creator methods on StepResult and StepResultImpl have been removed. StepResultFactory can be used instead. Custom code must be adjusted.

Loginapp

Custom REST extensions

AI-16654

Custom REST extensions can no longer be configured in Loginapp >> REST Settings >> Custom Extensions but only in Loginapp >> Custom Extensions. Custom code may have to be adapted.

Loginapp

End-to-end encryption

AI-12495

Legacy response formatting option for end-to-end encryption has been removed.

Loginapp
Adminapp

Custom REST extensions

AI-16037

The new SPI mechanism must be used for custom REST extensions. The old way based on the extension packages is no longer supported.

Further information can be found in the IAM Custom Development Guide. You can request the latest version of the IAM Custom Development Guide by opening a support ticket. See (ergon.ch) Techzone - Airlock support process) for more information.

Adminapp

Custom REST extensions

AI-16654

Custom REST extensions can no longer be configured in Adminapp >> REST API Configuration >> Custom Extensions but only in Adminapp >> Custom Extensions. Custom code may have to be adapted.

All

Custom code operating on context data and persistent Users

AI-10329

The context data container retrieved from the PersistentUser is no longer mutable. Modifications to context data must be performed on the PersistentUser itself. PersistentUser is no longer an Authentee.

All

Custom code referencing global user persister

AI-16627

The MAIN SETTINGS no longer specify a User Persister. Custom plugin referencing the global user persister must be adjusted and the User Persister must be configured explicitly. It is recommended to change to a User Store instead (which is now part of the Main Settings).