class SessionService {

    public SessionId create(final SamlAuthnRequestContainerDto requestDto) {
        SamlResponseWithAuthnRequestInformationDto samlResponse = samlEngineProxy.translate(requestDto.getSamlRequest());
        URI assertionConsumerServiceUri = getAssertionConsumerServiceUri(samlResponse);
        boolean transactionSupportsEidas = getTransactionSupportsEidas(samlResponse.getIssuer());

        return authnRequestHandler.handleRequestFromTransaction(
            samlResponse,
            requestDto.getRelayState(),
            requestDto.getPrincipalIPAddressAsSeenByHub(),
            assertionConsumerServiceUri,
            transactionSupportsEidas
        );
    }

    @Inject public  SessionService(SamlEngineProxy samlEngineProxy,
                          TransactionsConfigProxy configProxy,
                          AuthnRequestFromTransactionHandler authnRequestHandler,
                          SessionRepository sessionRepository);

}