server

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Mar 29, 2019 License: MIT Imports: 28 Imported by: 0

Documentation

Index

Constants

View Source
const ListenHost = "127.0.0.1"

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

Variables

This section is empty.

Functions

func NewJourney

func NewJourney(logger *logrus.Entry, generator generation.Generator, validator discovery.Validator) *journey

NewJourney creates an instance for a user journey

func NewWebSocketUpgrader

func NewWebSocketUpgrader() *websocket.Upgrader

NewWebSocketUpgrader creates a new websocket.Ugprader.

func PrintRoutesInfo

func PrintRoutesInfo(server *Server, logger *logrus.Entry)

Types

type AcquiredAccessTokenWebSocketEvent

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

type AcquiredAllAccessTokensWebSocketEvent

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

type AuthClaim

type AuthClaim struct {
	jwt.StandardClaims
	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

func NewErrorResponse

func NewErrorResponse(err error) *ErrorResponse

NewErrorResponse creates a ErrorResponse object from a go standard error

type ExportRequest

type ExportRequest struct {
	Implementer         string `json:"implementer"`
	AuthorisedBy        string `json:"authorised_by"`
	JobTitle            string `json:"job_title"`
	HasAgreed           bool   `json:"has_agreed"`
	AddDigitalSignature bool   `json:"add_digital_signature"`
}

ExportRequest - Request to `/api/export`.

func (ExportRequest) Validate

func (e ExportRequest) Validate() error

type ExportResponse

type ExportResponse struct {
	ExportRequest ExportRequest                `json:"export_request"`
	HasPassed     bool                         `json:"has_passed"`
	Results       []results.TestCase           `json:"results"`
	Tokens        []events.AcquiredAccessToken `json:"tokens"`
}

ExportResponse - Response to `/api/export`.

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"`
	ClientID                string            `json:"client_id" validate:"not_empty"`
	ClientSecret            string            `json:"client_secret" validate:"not_empty"`
	TokenEndpoint           string            `json:"token_endpoint" validate:"valid_url"`
	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"`
	Issuer                  string            `json:"issuer" validate:"valid_url"`
	RedirectURL             string            `json:"redirect_url" validate:"valid_url"`
	ResourceIDs             model.ResourceIDs `json:"resource_ids" validate:"not_empty"`
}

type Journey

type Journey interface {
	SetDiscoveryModel(discoveryModel *discovery.Model) (discovery.ValidationFailures, error)
	TestCases() (generation.TestCasesRun, error)
	CollectToken(code, state, scope string) error
	AllTokenCollected() bool
	RunTests() error
	StopTestRun()
	NewDaemonController()
	Results() executors.DaemonController
	SetConfig(config JourneyConfig) error
	Events() events.Events
}

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 {
	// contains filtered or unexported fields
}

func MakeJourneyConfig

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

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) Events

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

Events 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) StopTestRun

func (_m *MockJourney) StopTestRun()

StopTestRun provides a mock function with given fields:

func (*MockJourney) TestCases

func (_m *MockJourney) TestCases() (generation.TestCasesRun, 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"`
	AuthorizationEndpoints         map[string]string   `json:"authorization_endpoints"`
	Issuers                        map[string]string   `json:"issuers"`
}

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"`
}

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"`
}

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"`
}

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"`
}

type TestCaseResultWebSocketEvent

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

type TestCasesCompletedWebSocketEvent

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

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

Jump to

Keyboard shortcuts

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