servers

package
v0.0.0-...-2dc3ea6 Latest Latest
Warning

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

Go to latest
Published: Nov 7, 2014 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var CCGetOrg = http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
	json := `{
       "metadata": {
          "guid": "org-123",
          "url": "/v2/organizations/org-123",
          "created_at": "2014-08-01T17:36:17+00:00",
          "updated_at": "2014-08-01T17:36:20+00:00"
       },
       "entity": {
          "name": "notifications-service",
          "billing_enabled": false,
          "quota_definition_guid": "73530fc0-17a3-42f1-9692-838860d30ec2",
          "status": "active",
          "quota_definition_url": "/v2/quota_definitions/73530fc0-17a3-42f1-9692-838860d30ec2",
          "spaces_url": "/v2/organizations/org-123/spaces",
          "domains_url": "/v2/organizations/org-123/domains",
          "private_domains_url": "/v2/organizations/org-123/private_domains",
          "users_url": "/v2/organizations/org-123/users",
          "managers_url": "/v2/organizations/org-123/managers",
          "billing_managers_url": "/v2/organizations/org-123/billing_managers",
          "auditors_url": "/v2/organizations/org-123/auditors",
          "app_events_url": "/v2/organizations/org-123/app_events"
       }
    }`

	w.WriteHeader(http.StatusOK)
	w.Write([]byte(json))
})
View Source
var CCGetOrgUsers = http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
	json := `{
       "total_results": 2,
       "total_pages": 1,
       "prev_url": null,
       "next_url": null,
       "resources": [
          {
             "metadata": {
                "guid": "user-456",
                "url": "/v2/users/user-456",
                "created_at": "2014-07-16T21:58:29+00:00",
                "updated_at": null
             },
             "entity": {
                "admin": false,
                "active": true,
                "default_space_guid": null,
                "spaces_url": "/v2/users/user-456/spaces",
                "organizations_url": "/v2/users/user-456/organizations",
                "managed_organizations_url": "/v2/users/user-456/managed_organizations",
                "billing_managed_organizations_url": "/v2/users/user-456/billing_managed_organizations",
                "audited_organizations_url": "/v2/users/user-456/audited_organizations",
                "managed_spaces_url": "/v2/users/user-456/managed_spaces",
                "audited_spaces_url": "/v2/users/user-456/audited_spaces"
             }
          },
          {
             "metadata": {
                "guid": "user-789",
                "url": "/v2/users/user-789",
                "created_at": "2014-07-18T22:08:18+00:00",
                "updated_at": null
             },
             "entity": {
                "admin": false,
                "active": false,
                "default_space_guid": null,
                "spaces_url": "/v2/users/user-789/spaces",
                "organizations_url": "/v2/users/user-789/organizations",
                "managed_organizations_url": "/v2/users/user-789/managed_organizations",
                "billing_managed_organizations_url": "/v2/users/user-789/billing_managed_organizations",
                "audited_organizations_url": "/v2/users/user-789/audited_organizations",
                "managed_spaces_url": "/v2/users/user-789/managed_spaces",
                "audited_spaces_url": "/v2/users/user-789/audited_spaces"
             }
          },
          {
             "metadata": {
                "guid": "user-000",
                "url": "/v2/users/user-000",
                "created_at": "2014-07-16T21:58:29+00:00",
                "updated_at": null
             },
             "entity": {
                "admin": false,
                "active": true,
                "default_space_guid": null,
                "spaces_url": "/v2/users/user-000/spaces",
                "organizations_url": "/v2/users/user-000/organizations",
                "managed_organizations_url": "/v2/users/user-000/managed_organizations",
                "billing_managed_organizations_url": "/v2/users/user-000/billing_managed_organizations",
                "audited_organizations_url": "/v2/users/user-000/audited_organizations",
                "managed_spaces_url": "/v2/users/user-000/managed_spaces",
                "audited_spaces_url": "/v2/users/user-000/audited_spaces"
             }
          }
       ]
    }`

	w.WriteHeader(http.StatusOK)
	w.Write([]byte(json))
})
View Source
var CCGetSpace = http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
	json := `{
       "metadata": {
          "guid": "space-123",
          "url": "/v2/spaces/space-123",
          "created_at": "2014-08-01T17:36:18+00:00",
          "updated_at": null
       },
       "entity": {
          "name": "notifications-service",
          "organization_guid": "org-123",
          "organization_url": "/v2/organizations/org-123",
          "developers_url": "/v2/spaces/space-123/developers",
          "managers_url": "/v2/spaces/space-123/managers",
          "auditors_url": "/v2/spaces/space-123/auditors",
          "apps_url": "/v2/spaces/space-123/apps",
          "routes_url": "/v2/spaces/space-123/routes",
          "domains_url": "/v2/spaces/space-123/domains",
          "service_instances_url": "/v2/spaces/space-123/service_instances",
          "app_events_url": "/v2/spaces/space-123/app_events",
          "events_url": "/v2/spaces/space-123/events",
          "security_groups_url": "/v2/spaces/space-123/security_groups"
       }
    }`

	w.WriteHeader(http.StatusOK)
	w.Write([]byte(json))
})
View Source
var CCGetSpaceUsers = http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
	json := `{
       "total_results": 2,
       "total_pages": 1,
       "prev_url": null,
       "next_url": null,
       "resources": [
          {
             "metadata": {
                "guid": "user-456",
                "url": "/v2/users/user-456",
                "created_at": "2014-07-16T21:58:29+00:00",
                "updated_at": null
             },
             "entity": {
                "admin": false,
                "active": true,
                "default_space_guid": null,
                "spaces_url": "/v2/users/user-456/spaces",
                "organizations_url": "/v2/users/user-456/organizations",
                "managed_organizations_url": "/v2/users/user-456/managed_organizations",
                "billing_managed_organizations_url": "/v2/users/user-456/billing_managed_organizations",
                "audited_organizations_url": "/v2/users/user-456/audited_organizations",
                "managed_spaces_url": "/v2/users/user-456/managed_spaces",
                "audited_spaces_url": "/v2/users/user-456/audited_spaces"
             }
          },
          {
             "metadata": {
                "guid": "user-789",
                "url": "/v2/users/user-789",
                "created_at": "2014-07-18T22:08:18+00:00",
                "updated_at": null
             },
             "entity": {
                "admin": false,
                "active": false,
                "default_space_guid": null,
                "spaces_url": "/v2/users/user-789/spaces",
                "organizations_url": "/v2/users/user-789/organizations",
                "managed_organizations_url": "/v2/users/user-789/managed_organizations",
                "billing_managed_organizations_url": "/v2/users/user-789/billing_managed_organizations",
                "audited_organizations_url": "/v2/users/user-789/audited_organizations",
                "managed_spaces_url": "/v2/users/user-789/managed_spaces",
                "audited_spaces_url": "/v2/users/user-789/audited_spaces"
             }
          },
          {
             "metadata": {
                "guid": "user-000",
                "url": "/v2/users/user-000",
                "created_at": "2014-07-16T21:58:29+00:00",
                "updated_at": null
             },
             "entity": {
                "admin": false,
                "active": true,
                "default_space_guid": null,
                "spaces_url": "/v2/users/user-000/spaces",
                "organizations_url": "/v2/users/user-000/organizations",
                "managed_organizations_url": "/v2/users/user-000/managed_organizations",
                "billing_managed_organizations_url": "/v2/users/user-000/billing_managed_organizations",
                "audited_organizations_url": "/v2/users/user-000/audited_organizations",
                "managed_spaces_url": "/v2/users/user-000/managed_spaces",
                "audited_spaces_url": "/v2/users/user-000/audited_spaces"
             }
          }
       ]
    }`
	w.WriteHeader(http.StatusOK)
	w.Write([]byte(json))
})
View Source
var UAAGetTokenKey = http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
	response, err := json.Marshal(map[string]string{
		"alg":   "SHA256withRSA",
		"value": ReadFile("/acceptance/fixtures/public.pem"),
	})
	if err != nil {
		panic(err)
	}

	w.WriteHeader(http.StatusOK)
	w.Write(response)
})
View Source
var UAAGetUsers = http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
	err := req.ParseForm()
	if err != nil {
		panic(err)
	}
	filter := req.Form.Get("filter")
	filterParts := strings.Split(filter, " or ")
	queryRegexp := regexp.MustCompile(`Id eq "(.*)"`)
	resources := []interface{}{}
	for _, part := range filterParts {
		matches := queryRegexp.FindAllStringSubmatch(part, 1)
		match := matches[0]
		if user, ok := UAAUsers[match[1]]; ok {
			resources = append(resources, user)
		}
	}

	response, err := json.Marshal(map[string]interface{}{
		"resources":    resources,
		"startIndex":   1,
		"itemsPerPage": 100,
		"totalResults": 1,
		"schemas":      []string{"urn:scim:schemas:core:1.0"},
	})
	if err != nil {
		panic(err)
	}

	w.WriteHeader(http.StatusOK)
	w.Write(response)
})
View Source
var UAAPostOAuthToken = http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
	err := req.ParseForm()
	if err != nil {
		panic(err)
	}

	encodedCredentials := strings.TrimPrefix(req.Header.Get("Authorization"), "Basic ")
	decodedCredentials, err := base64.StdEncoding.DecodeString(encodedCredentials)
	credentialsParts := strings.Split(string(decodedCredentials), ":")
	clientID := credentialsParts[0]

	token := jwt.New(jwt.GetSigningMethod("RS256"))
	token.Claims["exp"] = time.Now().Add(time.Hour * 72).Unix()
	token.Claims["client_id"] = clientID

	switch req.Form.Get("grant_type") {
	case "client_credentials":
		token.Claims["scope"] = []string{"notifications.write", "emails.write", "notification_preferences.admin", "critical_notifications.write", "notification_templates.admin"}
	case "authorization_code":
		token.Claims["scope"] = []string{"notification_preferences.read", "notification_preferences.write"}
		token.Claims["user_id"] = strings.TrimSuffix(req.Form.Get("code"), "-code")
	}

	tokenString, err := token.SignedString([]byte(ReadFile("/acceptance/fixtures/private.pem")))
	if err != nil {
		panic(err)
	}

	response, err := json.Marshal(map[string]string{
		"access_token": tokenString,
	})
	if err != nil {
		panic(err)
	}

	w.WriteHeader(http.StatusOK)
	w.Write(response)
})
View Source
var UAAUsers = map[string]interface{}{
	"user-123": map[string]interface{}{
		"id": "user-123",
		"meta": map[string]interface{}{
			"version":      4,
			"created":      "2014-07-16T21:00:09.021Z",
			"lastModified": "2014-08-04T19:16:29.172Z",
		},
		"userName": "User123",
		"name":     map[string]string{},
		"emails": []map[string]string{
			{"value": "user-123@example.com"},
		},
		"groups": []map[string]string{
			{
				"value":   "some-group-guid",
				"display": "notifications.write",
				"type":    "DIRECT",
			},
		},
		"approvals": []interface{}{},
		"active":    true,
		"verified":  false,
		"origin":    "uaa",
		"schemas":   []string{"urn:scim:schemas:core:1.0"},
	},
	"user-456": map[string]interface{}{
		"id": "user-456",
		"meta": map[string]interface{}{
			"version":      4,
			"created":      "2014-07-16T21:00:09.021Z",
			"lastModified": "2014-08-04T19:16:29.172Z",
		},
		"userName": "User456",
		"name":     map[string]string{},
		"emails": []map[string]string{
			{"value": "user-456@example.com"},
		},
		"groups": []map[string]string{
			{
				"value":   "some-group-guid",
				"display": "notifications.write",
				"type":    "DIRECT",
			},
		},
		"approvals": []interface{}{},
		"active":    true,
		"verified":  false,
		"origin":    "uaa",
		"schemas":   []string{"urn:scim:schemas:core:1.0"},
	},
	"user-789": map[string]interface{}{
		"id": "user-789",
		"meta": map[string]interface{}{
			"version":      4,
			"created":      "2014-07-16T21:00:09.021Z",
			"lastModified": "2014-08-04T19:16:29.172Z",
		},
		"userName": "User789",
		"name":     map[string]string{},
		"emails": []map[string]string{
			{"value": "user-789"},
		},
		"groups": []map[string]string{
			{
				"value":   "some-group-guid",
				"display": "notifications.write",
				"type":    "DIRECT",
			},
		},
		"approvals": []interface{}{},
		"active":    true,
		"verified":  false,
		"origin":    "uaa",
		"schemas":   []string{"urn:scim:schemas:core:1.0"},
	},
}

Functions

func ReadFile

func ReadFile(filename string) string

Types

type CC

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

func NewCC

func NewCC() CC

func (CC) Boot

func (s CC) Boot()

func (CC) Close

func (s CC) Close()

type Notifications

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

func NewNotifications

func NewNotifications() Notifications

func (Notifications) Boot

func (s Notifications) Boot()

func (Notifications) Close

func (s Notifications) Close()

func (Notifications) EmailPath

func (s Notifications) EmailPath() string

func (Notifications) OrganizationsPath

func (s Notifications) OrganizationsPath(organization string) string

func (Notifications) Ping

func (s Notifications) Ping()

func (Notifications) RegistrationPath

func (s Notifications) RegistrationPath() string

func (Notifications) SpacesPath

func (s Notifications) SpacesPath(space string) string

func (Notifications) SpecificUserPreferencesPath

func (s Notifications) SpecificUserPreferencesPath(userGUID string) string

func (Notifications) TemplatePath

func (s Notifications) TemplatePath(templateName string) string

func (Notifications) UserPreferencesPath

func (s Notifications) UserPreferencesPath() string

func (Notifications) UsersPath

func (s Notifications) UsersPath(user string) string

type SMTP

type SMTP struct {
	Deliveries []smtpd.Envelope
	// contains filtered or unexported fields
}

func NewSMTP

func NewSMTP() *SMTP

func (*SMTP) Boot

func (s *SMTP) Boot()

func (*SMTP) Handler

func (s *SMTP) Handler(peer smtpd.Peer, env smtpd.Envelope) error

func (*SMTP) Reset

func (s *SMTP) Reset()

type UAA

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

func NewUAA

func NewUAA() UAA

func (UAA) Boot

func (s UAA) Boot()

func (UAA) Close

func (s UAA) Close()

Jump to

Keyboard shortcuts

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