http

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Sep 4, 2017 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Constants for values in url
	USER_ID             = "userid"
	GROUP_NAME          = "groupname"
	POLICY_NAME         = "policyname"
	PROXY_RESOURCE_NAME = "proxyresourcename"
	AUTH_PROVIDER_NAME  = "authprovidername"
	ORG_NAME            = "orgname"

	// URI Path param prefix
	URI_PATH_PREFIX = "/:"

	// API root reference
	API_ROOT      = "/api"
	API_VERSION_1 = API_ROOT + "/v1"

	// Organization API ROOT
	ORG_ROOT = "/organizations/:" + ORG_NAME

	// User API urls
	USER_ROOT_URL      = API_VERSION_1 + "/users"
	USER_ID_URL        = USER_ROOT_URL + URI_PATH_PREFIX + USER_ID
	USER_ID_GROUPS_URL = USER_ID_URL + "/groups"

	// Group organization API urls
	GROUP_ORG_ROOT_URL       = API_VERSION_1 + ORG_ROOT + "/groups"
	GROUP_ID_URL             = GROUP_ORG_ROOT_URL + URI_PATH_PREFIX + GROUP_NAME
	GROUP_ID_USERS_URL       = GROUP_ID_URL + "/users"
	GROUP_ID_USERS_ID_URL    = GROUP_ID_USERS_URL + URI_PATH_PREFIX + USER_ID
	GROUP_ID_POLICIES_URL    = GROUP_ID_URL + "/policies"
	GROUP_ID_POLICIES_ID_URL = GROUP_ID_POLICIES_URL + URI_PATH_PREFIX + POLICY_NAME

	// Policy API urls
	POLICY_ROOT_URL      = API_VERSION_1 + ORG_ROOT + "/policies"
	POLICY_ID_URL        = POLICY_ROOT_URL + URI_PATH_PREFIX + POLICY_NAME
	POLICY_ID_GROUPS_URL = POLICY_ROOT_URL + URI_PATH_PREFIX + POLICY_NAME + "/groups"

	// Proxy resource API urls
	PROXY_RESOURCE_ROOT_URL = API_VERSION_1 + ORG_ROOT + "/proxy-resources"
	PROXY_RESOURCE_ID_URL   = PROXY_RESOURCE_ROOT_URL + URI_PATH_PREFIX + PROXY_RESOURCE_NAME

	// Authorization URLs
	RESOURCE_URL = API_VERSION_1 + "/resource"

	// Admin URLs
	ADMIN_ROOT = "/admin"

	// Admin OIDC Authentication API URLs
	OIDC_AUTH_ROOT_URL = API_VERSION_1 + ADMIN_ROOT + "/auth/oidc/providers"
	OIDC_AUTH_ID_URL   = OIDC_AUTH_ROOT_URL + URI_PATH_PREFIX + AUTH_PROVIDER_NAME

	// Foulkon configuration URL
	ABOUT = "/about"
)
View Source
const (
	// Proxy error codes
	INVALID_DEST_HOST_URL = "InvalidDestinationHostURL"
	HOST_UNREACHABLE      = "HostUnreachableError"
	INTERNAL_SERVER_ERROR = "InternalServerError"
	BAD_REQUEST           = "BadRequest"
	FORBIDDEN_ERROR       = "ForbiddenError"
)

Variables

This section is empty.

Functions

func WorkerHandlerRouter

func WorkerHandlerRouter(worker *foulkon.Worker) http.Handler

WorkerHandlerRouter returns http.Handler for the APIs.

func WriteHttpResponse added in v0.3.0

func WriteHttpResponse(r *http.Request, w http.ResponseWriter, requestId string, userId string, statusCode int, value interface{})

WriteHttpResponse fill a http response with data, controlling marshalling errors

Types

type AuthConnectorConfig added in v0.3.0

type AuthConnectorConfig struct {
	Type          string             `json:"type,omitempty"`
	OidcProviders []api.OidcProvider `json:"oidcProviders,omitempty"`
}

type AuthorizeResourcesRequest

type AuthorizeResourcesRequest struct {
	Action    string   `json:"action,omitempty"`
	Resources []string `json:"resources,omitempty"`
}

type AuthorizeResourcesResponse

type AuthorizeResourcesResponse struct {
	ResourcesAllowed []string `json:"resourcesAllowed,omitempty"`
}

type Config added in v0.3.0

type Config struct {
	Logger        LoggerConfig        `json:"logger,omitempty"`
	Database      DatabaseConfig      `json:"database,omitempty"`
	AuthConnector AuthConnectorConfig `json:"authenticator,omitempty"`
	Version       string              `json:"version,omitempty"`
}

type CreateGroupRequest

type CreateGroupRequest struct {
	Name string `json:"name,omitempty"`
	Path string `json:"path,omitempty"`
}

type CreateOidcProviderRequest added in v0.4.0

type CreateOidcProviderRequest struct {
	Name        string   `json:"name,omitempty"`
	Path        string   `json:"path,omitempty"`
	IssuerURL   string   `json:"issuerUrl,omitempty"`
	OidcClients []string `json:"clients,omitempty"`
}

type CreatePolicyRequest

type CreatePolicyRequest struct {
	Name       string          `json:"name,omitempty"`
	Path       string          `json:"path,omitempty"`
	Statements []api.Statement `json:"statements,omitempty"`
}

type CreateProxyResourceRequest added in v0.3.0

type CreateProxyResourceRequest struct {
	Name     string             `json:"name,omitempty"`
	Path     string             `json:"path,omitempty"`
	Resource api.ResourceEntity `json:"resource,omitempty"`
}

type CreateUserRequest

type CreateUserRequest struct {
	ExternalID string `json:"externalId,omitempty"`
	Path       string `json:"path,omitempty"`
}

type DatabaseConfig added in v0.3.0

type DatabaseConfig struct {
	Type         string `json:"type,omitempty"`
	IdleConns    int    `json:"idleconns,omitempty"`
	MaxOpenConns int    `json:"maxopenconns,omitempty"`
	ConnTtl      int    `json:"connttl,omitempty"`
}

type GetGroupsByUserIdResponse

type GetGroupsByUserIdResponse struct {
	Groups []api.UserGroups `json:"groups,omitempty"`
	Limit  int              `json:"limit"`
	Offset int              `json:"offset"`
	Total  int              `json:"total"`
}

type GetUserExternalIDsResponse

type GetUserExternalIDsResponse struct {
	ExternalIDs []string `json:"users,omitempty"`
	Limit       int      `json:"limit"`
	Offset      int      `json:"offset"`
	Total       int      `json:"total"`
}

type ListAllGroupsResponse

type ListAllGroupsResponse struct {
	Groups []api.GroupIdentity `json:"groups,omitempty"`
	Limit  int                 `json:"limit"`
	Offset int                 `json:"offset"`
	Total  int                 `json:"total"`
}

type ListAllPoliciesResponse

type ListAllPoliciesResponse struct {
	Policies []api.PolicyIdentity `json:"policies,omitempty"`
	Limit    int                  `json:"limit"`
	Offset   int                  `json:"offset"`
	Total    int                  `json:"total"`
}

type ListAttachedGroupPoliciesResponse

type ListAttachedGroupPoliciesResponse struct {
	AttachedPolicies []api.GroupPolicies `json:"policies,omitempty"`
	Limit            int                 `json:"limit"`
	Offset           int                 `json:"offset"`
	Total            int                 `json:"total"`
}

type ListAttachedGroupsResponse

type ListAttachedGroupsResponse struct {
	Groups []api.PolicyGroups `json:"groups,omitempty"`
	Limit  int                `json:"limit"`
	Offset int                `json:"offset"`
	Total  int                `json:"total"`
}

type ListGroupsResponse

type ListGroupsResponse struct {
	Groups []string `json:"groups,omitempty"`
	Limit  int      `json:"limit"`
	Offset int      `json:"offset"`
	Total  int      `json:"total"`
}

type ListMembersResponse

type ListMembersResponse struct {
	Members []api.GroupMembers `json:"members,omitempty"`
	Limit   int                `json:"limit"`
	Offset  int                `json:"offset"`
	Total   int                `json:"total"`
}

type ListOidcProvidersResponse added in v0.4.0

type ListOidcProvidersResponse struct {
	Providers []string `json:"providers,omitempty"`
	Limit     int      `json:"limit"`
	Offset    int      `json:"offset"`
	Total     int      `json:"total"`
}

type ListPoliciesResponse

type ListPoliciesResponse struct {
	Policies []string `json:"policies,omitempty"`
	Limit    int      `json:"limit"`
	Offset   int      `json:"offset"`
	Total    int      `json:"total"`
}

type ListProxyResourcesResponse added in v0.3.0

type ListProxyResourcesResponse struct {
	Resources []string `json:"resources,omitempty"`
	Limit     int      `json:"limit"`
	Offset    int      `json:"offset"`
	Total     int      `json:"total"`
}

type LoggerConfig added in v0.3.0

type LoggerConfig struct {
	Type          string `json:"type,omitempty"`
	Level         string `json:"level,omitempty"`
	FileDirectory string `json:"directory,omitempty"`
}

type ProxyHandler

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

func (*ProxyHandler) HandleRequest

func (ph *ProxyHandler) HandleRequest(proxyResource api.ProxyResource) httprouter.Handle

type ProxyResources added in v0.3.0

type ProxyResources struct {
	Resources []api.ProxyResource `json:"resources,omitempty"`
}

type ProxyServer added in v0.3.0

type ProxyServer struct {
	http.Server
	// contains filtered or unexported fields
}

ProxyServer struct with reload Handler extension

func (*ProxyServer) Configuration added in v0.3.0

func (ps *ProxyServer) Configuration() error

Configuration an HTTP ProxyServer with a given address

func (*ProxyServer) RefreshResources added in v0.3.0

func (ps *ProxyServer) RefreshResources(proxy *foulkon.Proxy) func(s *ProxyServer) bool

RefreshResources implements reloadFunc

func (*ProxyServer) Run added in v0.3.0

func (ps *ProxyServer) Run() error

Run starts an HTTP ProxyServer

type ReloadHandlerFunc added in v0.3.0

type ReloadHandlerFunc func(watch *ProxyServer) bool

type Server added in v0.3.0

type Server interface {
	Run() error
	Configuration() error
}

Server interface that WorkerServer and ProxyServer have to implement

func NewProxy added in v0.3.0

func NewProxy(proxy *foulkon.Proxy) Server

NewProxy returns a new ProxyServer

func NewWorker added in v0.3.0

func NewWorker(worker *foulkon.Worker, h http.Handler) Server

NewWorker returns a new WorkerServer

type UpdateGroupRequest

type UpdateGroupRequest struct {
	Name string `json:"name,omitempty"`
	Path string `json:"path,omitempty"`
}

type UpdateOidcProviderRequest added in v0.4.0

type UpdateOidcProviderRequest struct {
	Name        string   `json:"name,omitempty"`
	Path        string   `json:"path,omitempty"`
	IssuerURL   string   `json:"issuerUrl,omitempty"`
	OidcClients []string `json:"clients,omitempty"`
}

type UpdatePolicyRequest

type UpdatePolicyRequest struct {
	Name       string          `json:"name,omitempty"`
	Path       string          `json:"path,omitempty"`
	Statements []api.Statement `json:"statements,omitempty"`
}

type UpdateProxyResourceRequest added in v0.3.0

type UpdateProxyResourceRequest struct {
	Name     string             `json:"name,omitempty"`
	Path     string             `json:"path,omitempty"`
	Resource api.ResourceEntity `json:"resource,omitempty"`
}

type UpdateUserRequest

type UpdateUserRequest struct {
	Path string `json:"path,omitempty"`
}

type WorkerHandler

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

func (*WorkerHandler) HandleAddGroup

func (wh *WorkerHandler) HandleAddGroup(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleAddMember

func (wh *WorkerHandler) HandleAddMember(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleAddOidcProvider added in v0.4.0

func (wh *WorkerHandler) HandleAddOidcProvider(w http.ResponseWriter, r *http.Request, _ httprouter.Params)

func (*WorkerHandler) HandleAddPolicy

func (wh *WorkerHandler) HandleAddPolicy(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleAddProxyResource added in v0.3.0

func (wh *WorkerHandler) HandleAddProxyResource(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleAddUser

func (wh *WorkerHandler) HandleAddUser(w http.ResponseWriter, r *http.Request, _ httprouter.Params)

func (*WorkerHandler) HandleAttachPolicyToGroup

func (wh *WorkerHandler) HandleAttachPolicyToGroup(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleDetachPolicyToGroup

func (wh *WorkerHandler) HandleDetachPolicyToGroup(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleGetAuthorizedExternalResources

func (wh *WorkerHandler) HandleGetAuthorizedExternalResources(w http.ResponseWriter, r *http.Request, _ httprouter.Params)

func (*WorkerHandler) HandleGetCurrentConfig added in v0.3.0

func (wh *WorkerHandler) HandleGetCurrentConfig(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleGetGroupByName

func (wh *WorkerHandler) HandleGetGroupByName(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleGetOidcProviderByName added in v0.4.0

func (wh *WorkerHandler) HandleGetOidcProviderByName(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleGetPolicyByName

func (wh *WorkerHandler) HandleGetPolicyByName(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleGetProxyResourceByName added in v0.3.0

func (wh *WorkerHandler) HandleGetProxyResourceByName(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleGetUserByExternalID

func (wh *WorkerHandler) HandleGetUserByExternalID(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleListAllGroups

func (wh *WorkerHandler) HandleListAllGroups(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleListAllPolicies

func (wh *WorkerHandler) HandleListAllPolicies(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleListAttachedGroupPolicies

func (wh *WorkerHandler) HandleListAttachedGroupPolicies(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleListAttachedGroups

func (wh *WorkerHandler) HandleListAttachedGroups(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleListGroups

func (wh *WorkerHandler) HandleListGroups(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleListGroupsByUser

func (wh *WorkerHandler) HandleListGroupsByUser(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleListMembers

func (wh *WorkerHandler) HandleListMembers(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleListOidcProviders added in v0.4.0

func (wh *WorkerHandler) HandleListOidcProviders(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleListPolicies

func (wh *WorkerHandler) HandleListPolicies(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleListProxyResource added in v0.3.0

func (wh *WorkerHandler) HandleListProxyResource(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleListUsers

func (wh *WorkerHandler) HandleListUsers(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleRemoveGroup

func (wh *WorkerHandler) HandleRemoveGroup(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleRemoveMember

func (wh *WorkerHandler) HandleRemoveMember(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleRemoveOidcProvider added in v0.4.0

func (wh *WorkerHandler) HandleRemoveOidcProvider(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleRemovePolicy

func (wh *WorkerHandler) HandleRemovePolicy(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleRemoveProxyResource added in v0.3.0

func (wh *WorkerHandler) HandleRemoveProxyResource(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleRemoveUser

func (wh *WorkerHandler) HandleRemoveUser(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleUpdateGroup

func (wh *WorkerHandler) HandleUpdateGroup(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleUpdateOidcProvider added in v0.4.0

func (wh *WorkerHandler) HandleUpdateOidcProvider(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleUpdatePolicy

func (wh *WorkerHandler) HandleUpdatePolicy(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleUpdateProxyResource added in v0.3.0

func (wh *WorkerHandler) HandleUpdateProxyResource(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

func (*WorkerHandler) HandleUpdateUser

func (wh *WorkerHandler) HandleUpdateUser(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

type WorkerServer added in v0.3.0

type WorkerServer struct {
	http.Server
	// contains filtered or unexported fields
}

WorkerServer struct

func (*WorkerServer) Configuration added in v0.3.0

func (ws *WorkerServer) Configuration() error

Configuration an HTTP WorkerServer

func (*WorkerServer) Run added in v0.3.0

func (ws *WorkerServer) Run() error

Run starts an HTTP WorkerServer

Jump to

Keyboard shortcuts

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