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.