server

package
v1.8.2-beta6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 28, 2024 License: MIT Imports: 36 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CtxTPPSignatureKID                     = "tpp_signature_kid"
	CtxTPPSignatureIssuer                  = "tpp_signature_issuer"
	CtxTPPSignatureTAN                     = "tpp_signature_tan"
	CtxConstClientID                       = "client_id"
	CtxConstClientSecret                   = "client_secret"
	CtxConstTokenEndpoint                  = "token_endpoint"
	CtxResponseType                        = "responseType"
	CtxConstTokenEndpointAuthMethod        = "token_endpoint_auth_method"
	CtxConstFapiFinancialID                = "x-fapi-financial-id"
	CtxConstFapiCustomerIPAddress          = "x-fapi-customer-ip-address"
	CtxConstRedirectURL                    = "redirect_url"
	CtxConstAuthorisationEndpoint          = "authorisation_endpoint"
	CtxConstBasicAuthentication            = "basic_authentication"
	CtxConstResourceBaseURL                = "resource_server"
	CtxConstIssuer                         = "issuer"
	CtxAPIVersion                          = "api-version"
	CtxConsentedAccountID                  = "consentedAccountId"
	CtxStatementID                         = "statementId"
	CtxInternationalCreditorSchema         = "internationalCreditorScheme"
	CtxInternationalCreditorIdentification = "internationalCreditorIdentification"
	CtxInternationalCreditorName           = "internationalCreditorName"
	CtxCBPIIDebtorAccountName              = "cbpiiDebtorAccountName"
	CtxCBPIIDebtorAccountSchemeName        = "cbpiiDebtorAccountSchemeName"
	CtxCBPIIDebtorAccountIdentification    = "cbpiiDebtorAccountIdentification"
	CtxCreditorSchema                      = "creditorScheme"
	CtxCreditorIdentification              = "creditorIdentification"
	CtxCreditorName                        = "creditorName"
	CtxInstructedAmountCurrency            = "instructedAmountCurrency"
	CtxInstructedAmountValue               = "instructedAmountValue"
	CtxPaymentFrequency                    = "payment_frequency" // CtxPaymentFrequency - for example `EvryDay`.
	CtxFirstPaymentDateTime                = "firstPaymentDateTime"
	CtxRequestedExecutionDateTime          = "requestedExecutionDateTime"
	CtxCurrencyOfTransfer                  = "currencyOfTransfer"
	CtxTransactionFromDate                 = "transactionFromDate"
	CtxTransactionToDate                   = "transactionToDate"
	CtxRequestObjectSigningAlg             = "requestObjectSigningAlg"
	CtxSigningPrivate                      = "signingPrivate"
	CtxSigningPublic                       = "signingPublic"
	CtxPhase                               = "phase"
	CtxDynamicResourceIDs                  = "dynamicResourceIDs"
	CtxAcrValuesSupported                  = "acrValuesSupported"
)

Context Variables

View Source
const ListenHost = "0.0.0.0"

ListenHost defines the name/address by which the service can be accessed.

View Source
const (
	MIMEApplicationZIP = "application/zip"
)

MIME types

Variables

This section is empty.

Functions

func DetermineAPIVersions

func DetermineAPIVersions(apis []discovery.ModelDiscoveryItem) []string

DetermineAPIVersions -

func EnableTLSCheck

func EnableTLSCheck(state bool)

EnableTLSCheck -

func NewWebSocketUpgrader

func NewWebSocketUpgrader() *websocket.Upgrader

NewWebSocketUpgrader creates a new websocket.Ugprader.

func PutParametersToJourneyContext

func PutParametersToJourneyContext(config JourneyConfig, context model.Context) error

PutParametersToJourneyContext populates a JourneyContext with values from the config screen

func SupportedAcrValues

func SupportedAcrValues() []string

SupportedAcrValues returns a slice of supported acr values to be used in the request object those are values that the Authorization Server is being requested to use for processing this Authentication Request https://openbanking.atlassian.net/wiki/spaces/DZ/pages/7046134/Open+Banking+Security+Profile+-+Implementer+s+Draft+v1.1.0

func SupportedRequestSignAlgValues

func SupportedRequestSignAlgValues() []interface{}

SupportedRequestSignAlgValues -

Types

type AcquiredAccessTokenWebSocketEvent

type AcquiredAccessTokenWebSocketEvent struct {
	Type  string                     `json:"type"`
	Value events.AcquiredAccessToken `json:"value"`
}

AcquiredAccessTokenWebSocketEvent -

type AcquiredAllAccessTokensWebSocketEvent

type AcquiredAllAccessTokensWebSocketEvent struct {
	Type  string                         `json:"type"`
	Value events.AcquiredAllAccessTokens `json:"value"`
}

AcquiredAllAccessTokensWebSocketEvent -

type AppJourney

type AppJourney struct {
	// contains filtered or unexported fields
}

AppJourney - application controlled by this class

func NewJourney

func NewJourney(logger *logrus.Entry, generator generation.Generator,
	validator discovery.Validator, tlsValidator discovery.TLSValidator,
	dynamicResourceIDs bool) *AppJourney

NewJourney creates an instance for a user journey

func (*AppJourney) AllTokenCollected

func (wj *AppJourney) AllTokenCollected() bool

AllTokenCollected -

func (*AppJourney) CollectToken

func (wj *AppJourney) CollectToken(code, state, scope string) error

CollectToken -

func (*AppJourney) ConditionalProperties

func (wj *AppJourney) ConditionalProperties() []discovery.ConditionalAPIProperties

ConditionalProperties retrieve conditional properties right after they have been set from the discovery model to the webJourney.ConditionalProperties

func (*AppJourney) DiscoveryModel

func (wj *AppJourney) DiscoveryModel() (discovery.Model, error)

DiscoveryModel -

func (*AppJourney) EnableDynamicResourceIDs

func (wj *AppJourney) EnableDynamicResourceIDs()

EnableDynamicResourceIDs is triggered by and environment variable dynids=true

func (*AppJourney) Events

func (wj *AppJourney) Events() events.Events

Events -

func (*AppJourney) FilteredManifests

func (wj *AppJourney) FilteredManifests() (manifest.Scripts, error)

FilteredManifests -

func (*AppJourney) NewDaemonController

func (wj *AppJourney) NewDaemonController()

NewDaemonController - calls StopTestRun and then sets new daemonController and new events on journey. This is a solution to prevent events being sent to a disconnected websocket instead of new websocket after the client reconnects.

func (*AppJourney) Results

func (wj *AppJourney) Results() executors.DaemonController

Results -

func (*AppJourney) RunTests

func (wj *AppJourney) RunTests() error

RunTests -

func (*AppJourney) SetConfig

func (wj *AppJourney) SetConfig(config JourneyConfig) error

SetConfig -

func (*AppJourney) SetDiscoveryModel

func (wj *AppJourney) SetDiscoveryModel(discoveryModel *discovery.Model) (discovery.ValidationFailures, error)

SetDiscoveryModel -

func (*AppJourney) SetFilteredManifests

func (wj *AppJourney) SetFilteredManifests(fmfs manifest.Scripts)

SetFilteredManifests -

func (*AppJourney) StopTestRun

func (wj *AppJourney) StopTestRun()

StopTestRun -

func (*AppJourney) TLSVersionResult

func (wj *AppJourney) TLSVersionResult() map[string]*discovery.TLSValidationResult

TLSVersionResult -

func (*AppJourney) TestCases

func (wj *AppJourney) TestCases() (generation.SpecRun, error)

TestCases -

type AuthClaim

type AuthClaim struct {
	jwt.RegisteredClaims
	AuditTrackingID     string `json:"auditTrackingId"`
	TokenName           string `json:"tokenName"`
	Nonce               string `json:"nonce"`
	Acr                 string `json:"acr"`
	CHash               string `json:"c_hash"`
	OpenBankingIntentID string `json:"openbanking_intent_id"`
	SHash               string `json:"s_hash"`
	Azp                 string `json:"azp"`
	AuthTime            int    `json:"auth_time"`
	Realm               string `json:"realm"`
	TokenType           string `json:"tokenType"`
}

AuthClaim represents an in coming JWT from third part ASPSP as part of authentication/consent process during `Hybrid Flow Authentication` https://openid.net/specs/openid-connect-core-1_0.html#HybridFlowAuth

type ErrorResponse

type ErrorResponse struct {
	Error interface{} `json:"error"`
}

ErrorResponse wraps `error` into a JSON object.

func NewErrorMessageResponse

func NewErrorMessageResponse(msg string) *ErrorResponse

NewErrorMessageResponse -

func NewErrorResponse

func NewErrorResponse(err error) *ErrorResponse

NewErrorResponse creates a ErrorResponse object from a go standard error

type GlobalConfiguration

type GlobalConfiguration struct {
	SigningPrivate                string                               `json:"signing_private" validate:"not_empty"`
	SigningPublic                 string                               `json:"signing_public" validate:"not_empty"`
	TransportPrivate              string                               `json:"transport_private" validate:"not_empty"`
	TransportPublic               string                               `json:"transport_public" validate:"not_empty"`
	TPPSignatureKID               string                               `json:"tpp_signature_kid,omitempty"`
	TPPSignatureIssuer            string                               `json:"tpp_signature_issuer,omitempty"`
	TPPSignatureTAN               string                               `json:"tpp_signature_tan,omitempty"`
	ClientID                      string                               `json:"client_id" validate:"not_empty"`
	ClientSecret                  string                               `json:"client_secret" validate:"not_empty"`
	TokenEndpoint                 string                               `json:"token_endpoint" validate:"valid_url"`
	ResponseType                  string                               `json:"response_type" validate:"not_empty"`
	TokenEndpointAuthMethod       string                               `json:"token_endpoint_auth_method" validate:"not_empty"`
	AuthorizationEndpoint         string                               `json:"authorization_endpoint" validate:"valid_url"`
	ResourceBaseURL               string                               `json:"resource_base_url" validate:"valid_url"`
	XFAPIFinancialID              string                               `json:"x_fapi_financial_id" validate:"not_empty"`
	XFAPICustomerIPAddress        string                               `json:"x_fapi_customer_ip_address,omitempty"`
	RedirectURL                   string                               `json:"redirect_url" validate:"valid_url"`
	ResourceIDs                   model.ResourceIDs                    `json:"resource_ids" validate:"not_empty"`
	CreditorAccount               models.Payment                       `json:"creditor_account"`
	InternationalCreditorAccount  models.Payment                       `json:"international_creditor_account"`
	TransactionFromDate           string                               `json:"transaction_from_date" validate:"not_empty"`
	TransactionToDate             string                               `json:"transaction_to_date" validate:"not_empty"`
	RequestObjectSigningAlgorithm string                               `json:"request_object_signing_alg"`
	InstructedAmount              models.InstructedAmount              `json:"instructed_amount"`
	PaymentFrequency              models.PaymentFrequency              `json:"payment_frequency"`
	FirstPaymentDateTime          string                               `json:"first_payment_date_time"`
	RequestedExecutionDateTime    string                               `json:"requested_execution_date_time"`
	CurrencyOfTransfer            string                               `json:"currency_of_transfer"`
	AcrValuesSupported            []string                             `json:"acr_values_supported,omitempty"`
	ConditionalProperties         []discovery.ConditionalAPIProperties `json:"conditional_properties,omitempty"`
	CBPIIDebtorAccount            discovery.CBPIIDebtorAccount         `json:"cbpii_debtor_account"`
	// Should be taken from the well-known endpoint:
	Issuer string `json:"issuer" validate:"valid_url"`
}

GlobalConfiguration -

func (GlobalConfiguration) Validate

func (c GlobalConfiguration) Validate() error

Validate - used by https://github.com/go-ozzo/ozzo-validation to validate struct.

type Journey

type Journey interface {
	SetDiscoveryModel(discoveryModel *discovery.Model) (discovery.ValidationFailures, error)
	DiscoveryModel() (discovery.Model, error)
	SetFilteredManifests(manifest.Scripts)
	FilteredManifests() (manifest.Scripts, error)
	TestCases() (generation.SpecRun, error)
	CollectToken(code, state, scope string) error
	AllTokenCollected() bool
	RunTests() error
	StopTestRun()
	NewDaemonController()
	Results() executors.DaemonController
	SetConfig(config JourneyConfig) error
	ConditionalProperties() []discovery.ConditionalAPIProperties
	Events() events.Events
	TLSVersionResult() map[string]*discovery.TLSValidationResult
}

Journey represents all possible steps for a user test conformance journey

Happy path journey would look like: 1. SetCertificates - sets configuration to run test cases 2. SetDiscoveryModel - this validates and if successful set this as your discovery model 3. TestCases - Generates test cases, generates permission set requirements to run tests and starts a token collector 3.1 CollectToken - collects all tokens required to RunTest 4. RunTest - Runs triggers a background run on all generated test from previous steps, needs all token to be already collected 5. Results - returns a background process control, so we can monitor on finished tests

type JourneyConfig

type JourneyConfig struct {
	ResponseType string

	AcrValuesSupported []string
	// contains filtered or unexported fields
}

JourneyConfig main configuration variables

func MakeJourneyConfig

func MakeJourneyConfig(config *GlobalConfiguration) (JourneyConfig, error)

MakeJourneyConfig -

type MockJourney

type MockJourney struct {
	mock.Mock
}

MockJourney is an autogenerated mock type for the Journey type

func (*MockJourney) AllTokenCollected

func (_m *MockJourney) AllTokenCollected() bool

AllTokenCollected provides a mock function with given fields:

func (*MockJourney) CollectToken

func (_m *MockJourney) CollectToken(code string, state string, scope string) error

CollectToken provides a mock function with given fields: code, state, scope

func (*MockJourney) ConditionalProperties

func (_m *MockJourney) ConditionalProperties() []discovery.ConditionalAPIProperties

ConditionalProperties provides a mock function with given fields:

func (*MockJourney) DiscoveryModel

func (_m *MockJourney) DiscoveryModel() (discovery.Model, error)

DiscoveryModel provides a mock function with given fields:

func (*MockJourney) Events

func (_m *MockJourney) Events() events.Events

Events provides a mock function with given fields:

func (*MockJourney) FilteredManifests

func (_m *MockJourney) FilteredManifests() (manifest.Scripts, error)

FilteredManifests provides a mock function with given fields:

func (*MockJourney) NewDaemonController

func (_m *MockJourney) NewDaemonController()

NewDaemonController provides a mock function with given fields:

func (*MockJourney) Results

func (_m *MockJourney) Results() executors.DaemonController

Results provides a mock function with given fields:

func (*MockJourney) RunTests

func (_m *MockJourney) RunTests() error

RunTests provides a mock function with given fields:

func (*MockJourney) SetConfig

func (_m *MockJourney) SetConfig(config JourneyConfig) error

SetConfig provides a mock function with given fields: config

func (*MockJourney) SetDiscoveryModel

func (_m *MockJourney) SetDiscoveryModel(discoveryModel *discovery.Model) (discovery.ValidationFailures, error)

SetDiscoveryModel provides a mock function with given fields: discoveryModel

func (*MockJourney) SetFilteredManifests

func (_m *MockJourney) SetFilteredManifests(_a0 manifest.Scripts)

SetFilteredManifests provides a mock function with given fields: _a0

func (*MockJourney) StopTestRun

func (_m *MockJourney) StopTestRun()

StopTestRun provides a mock function with given fields:

func (*MockJourney) TLSVersionResult

func (_m *MockJourney) TLSVersionResult() map[string]*discovery.TLSValidationResult

TLSVersionResult provides a mock function with given fields:

func (*MockJourney) TestCases

func (_m *MockJourney) TestCases() (generation.SpecRun, error)

TestCases provides a mock function with given fields:

type PostDiscoveryModelResponse

type PostDiscoveryModelResponse struct {
	TokenEndpoints                                map[string]string   `json:"token_endpoints"`
	TokenEndpointAuthMethods                      map[string][]string `json:"token_endpoint_auth_methods"`
	DefaultTokenEndpointAuthMethod                map[string]string   `json:"default_token_endpoint_auth_method"`
	RequestObjectSigningAlgValuesSupported        map[string][]string `json:"request_object_signing_alg_values_supported"`
	DefaultRequestObjectSigningAlgValuesSupported map[string]string   `json:"default_request_object_signing_alg_values_supported"`
	AuthorizationEndpoints                        map[string]string   `json:"authorization_endpoints"`
	Issuers                                       map[string]string   `json:"issuers"`
	DefaultTxnFromDateTime                        string              `json:"default_transaction_from_date"`
	DefaultTxnToDateTime                          string              `json:"default_transaction_to_date"`
	ResponseTypesSupported                        []string            `json:"response_types_supported"`
	AcrValuesSupported                            []string            `json:"acr_values_supported"`
}

PostDiscoveryModelResponse -

type RedirectError

type RedirectError struct {
	ErrorDescription string `json:"error_description" form:"error_description" query:"error_description"`
	Error            string `json:"error" form:"error" query:"error"`
	State            string `json:"state" form:"state" query:"state"`
}

RedirectError -

type RedirectFragment

type RedirectFragment struct {
	Code    string `json:"code" form:"code" query:"code"`
	Scope   string `json:"scope" form:"scope" query:"scope"`
	IDToken string `json:"id_token" form:"id_token" query:"id_token"`
	State   string `json:"state" form:"state" query:"state"`
}

RedirectFragment -

type RedirectQuery

type RedirectQuery struct {
	Code    string `json:"code" form:"code" query:"code"`
	Scope   string `json:"scope" form:"scope" query:"scope"`
	IDToken string `json:"id_token" form:"id_token" query:"id_token"`
	State   string `json:"state" form:"state" query:"state"`
}

RedirectQuery -

type ResponseType

type ResponseType = interface{}

ResponseType - Needs to be a interface{} slice, see the official test for an example https://github.com/go-ozzo/ozzo-validation/blob/master/in_test.go

type Server

type Server struct {
	*echo.Echo // Wrap (using composition) *echo.Echo, allows us to pretend Server is echo.Echo.
	// contains filtered or unexported fields
}

Server - wraps *echo.Echo.

func NewServer

func NewServer(journey Journey, logger *logrus.Entry, version version.Checker) *Server

NewServer returns new echo.Echo server.

type StoppedEvent

type StoppedEvent struct {
	Stopped bool `json:"stopped"`
}

StoppedEvent -

type SupportedRequestSignAlg

type SupportedRequestSignAlg interface{}

SupportedRequestSignAlg - Needs to be a interface{} slice, see the official test for an example https://github.com/go-ozzo/ozzo-validation/blob/master/in_test.go

type TestCaseResultWebSocketEvent

type TestCaseResultWebSocketEvent struct {
	Type string           `json:"type"`
	Test results.TestCase `json:"test"`
}

TestCaseResultWebSocketEvent -

type TestCasesCompletedWebSocketEvent

type TestCasesCompletedWebSocketEvent struct {
	Type  string `json:"type"`
	Value bool   `json:"value"`
}

TestCasesCompletedWebSocketEvent -

type VersionResponse

type VersionResponse struct {
	Version string `json:"version"`
	Msg     string `json:"message"`
	Update  bool   `json:"update"`
}

VersionResponse is defined as a response object for /version API calls

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL