Documentation ¶
Overview ¶
Package policy offers management capabilities for access control policies. To read up on policies, go to:
- https://github.com/ory/ladon
- https://ory-am.gitbooks.io/hydra/content/policy.html
Contains source files:
- handler.go: A HTTP handler capable of managing policies.
- warden_http.go: A Go API using HTTP to validate managing policies.
- warden_test.go: Functional tests all of the above.
Index ¶
- type HTTPManager
- func (m *HTTPManager) Create(policy ladon.Policy) error
- func (m *HTTPManager) Delete(id string) error
- func (m *HTTPManager) FindPoliciesForSubject(subject string) (ladon.Policies, error)
- func (m *HTTPManager) Get(id string) (ladon.Policy, error)
- func (m *HTTPManager) List(limit, offset int64) (ladon.Policies, error)
- func (m *HTTPManager) Update(policy ladon.Policy) error
- type Handler
- func (h *Handler) Create(w http.ResponseWriter, r *http.Request, _ httprouter.Params)
- func (h *Handler) Delete(w http.ResponseWriter, r *http.Request, ps httprouter.Params)
- func (h *Handler) Get(w http.ResponseWriter, r *http.Request, ps httprouter.Params)
- func (h *Handler) List(w http.ResponseWriter, r *http.Request, _ httprouter.Params)
- func (h *Handler) SetRoutes(r *httprouter.Router)
- func (h *Handler) Update(w http.ResponseWriter, r *http.Request, ps httprouter.Params)
- type Manager
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type HTTPManager ¶
func (*HTTPManager) Create ¶
func (m *HTTPManager) Create(policy ladon.Policy) error
Create persists the policy.
func (*HTTPManager) FindPoliciesForSubject ¶
func (m *HTTPManager) FindPoliciesForSubject(subject string) (ladon.Policies, error)
Finds all policies associated with the subject.
func (*HTTPManager) Get ¶
func (m *HTTPManager) Get(id string) (ladon.Policy, error)
Get retrieves a policy.
type Handler ¶
func (*Handler) Create ¶
func (h *Handler) Create(w http.ResponseWriter, r *http.Request, _ httprouter.Params)
swagger:route POST /policies policies createPolicy
Create an access control policy ¶
Visit https://github.com/ory/ladon#usage for more information on policy usage.
The subject making the request needs to be assigned to a policy containing:
``` { "resources": ["rn:hydra:policies"], "actions": ["create"], "effect": "allow" } ``` Consumes: - application/json Produces: - application/json Schemes: http, https Security: oauth2: hydra.policies Responses: 201: policy 401: genericError 403: genericError 500: genericError
func (*Handler) Delete ¶
func (h *Handler) Delete(w http.ResponseWriter, r *http.Request, ps httprouter.Params)
swagger:route DELETE /policies/{id} policies deletePolicy
Delete an access control policy ¶
Visit https://github.com/ory/ladon#usage for more information on policy usage.
The subject making the request needs to be assigned to a policy containing:
``` { "resources": ["rn:hydra:policies:<id>"], "actions": ["delete"], "effect": "allow" } ``` Consumes: - application/json Produces: - application/json Schemes: http, https Security: oauth2: hydra.policies Responses: 204: emptyResponse 401: genericError 403: genericError 500: genericError
func (*Handler) Get ¶
func (h *Handler) Get(w http.ResponseWriter, r *http.Request, ps httprouter.Params)
swagger:route GET /policies/{id} policies getPolicy
Get an access control policy ¶
Visit https://github.com/ory/ladon#usage for more information on policy usage.
The subject making the request needs to be assigned to a policy containing:
``` { "resources": ["rn:hydra:policies:<id>"], "actions": ["get"], "effect": "allow" } ``` Consumes: - application/json Produces: - application/json Schemes: http, https Security: oauth2: hydra.policies Responses: 200: policy 401: genericError 403: genericError 500: genericError
func (*Handler) List ¶ added in v0.8.0
func (h *Handler) List(w http.ResponseWriter, r *http.Request, _ httprouter.Params)
swagger:route GET /policies policies listPolicies
List access control policies ¶
Visit https://github.com/ory/ladon#usage for more information on policy usage.
The subject making the request needs to be assigned to a policy containing:
``` { "resources": ["rn:hydra:policies"], "actions": ["list"], "effect": "allow" } ``` Consumes: - application/json Produces: - application/json Schemes: http, https Security: oauth2: hydra.policies Responses: 200: listPolicyResponse 401: genericError 403: genericError 500: genericError
func (*Handler) SetRoutes ¶
func (h *Handler) SetRoutes(r *httprouter.Router)
func (*Handler) Update ¶ added in v0.7.0
func (h *Handler) Update(w http.ResponseWriter, r *http.Request, ps httprouter.Params)
swagger:route PUT /policies/{id} policies updatePolicy
Update an access control policy ¶
Visit https://github.com/ory/ladon#usage for more information on policy usage.
The subject making the request needs to be assigned to a policy containing:
``` { "resources": ["rn:hydra:policies"], "actions": ["update"], "effect": "allow" } ``` Consumes: - application/json Produces: - application/json Schemes: http, https Security: oauth2: hydra.policies Responses: 200: policy 401: genericError 403: genericError 500: genericError
type Manager ¶ added in v0.7.0
type Manager interface { // Create persists the policy. Create(policy ladon.Policy) error // Get retrieves a policy. Get(id string) (ladon.Policy, error) // Delete removes a policy. Delete(id string) error // List policies. List(limit, offset int64) (ladon.Policies, error) // Update a policy. Update(policy ladon.Policy) error }
Manager is responsible for managing and persisting policies.