Documentation
¶
Index ¶
- type Authorizer
- type Provider
- type Role
- type Roles
- type Rule
- type RuleAnd
- type RuleNot
- type RuleOr
- type RuleProvider
- type RuleSet
- type Service
- func (s *Service) AuthorizeMiddleware(rs RuleProvider, unauthorizedAction http.HandlerFunc) func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
- func (s *Service) Authorizer(rs RuleProvider) *Authorizer
- func (s *Service) RolesAuthorizeOrForbiddenMiddleware(ruleNames ...string) func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Authorizer ¶
type Authorizer struct {
Service *Service
RuleProvider RuleProvider
}
Authorizer role service authorizer
func (*Authorizer) Authorize ¶
func (a *Authorizer) Authorize(r *http.Request) (bool, error)
Authorize authorized with requestWW
func (*Authorizer) RolesFromRequest ¶
func (a *Authorizer) RolesFromRequest(r *http.Request) (*Roles, error)
RolesFromRequest get roles from request
type Provider ¶
type Provider interface {
//Roles get roles by user id.
//Return user roles and any error if raised.
Roles(uid string) (*Roles, error)
}
Provider roles provider interface
type Role ¶
Role user role main struct
type Roles ¶
type Roles []*Role
Roles type role list
func NewRoles ¶
NewRoles create new roles with given rolesnames. You can't use this method to create roles with data.
type RuleProvider ¶
type RuleProvider interface {
//Rule get rule from http request.
//Return rule and any error if raised.
Rule(*http.Request) (Rule, error)
}
RuleProvider rule provider interface
type RuleSet ¶
type RuleSet struct {
Rule Rule
}
RuleSet a set of rule
type Service ¶
type Service struct {
RoleProvider Provider
Identifier user.Identifier
}
Service role authorize service
func NewService ¶
func NewService(RoleProvider Provider, Identifier user.Identifier) *Service
NewService create new role authorize service with role provider and user Identifier.
func (*Service) AuthorizeMiddleware ¶
func (s *Service) AuthorizeMiddleware(rs RuleProvider, unauthorizedAction http.HandlerFunc) func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
AuthorizeMiddleware middleware which authorize http request. If authorize fail,unauthorizedAction will be executed.
func (*Service) Authorizer ¶
func (s *Service) Authorizer(rs RuleProvider) *Authorizer
Authorizer create authorizer with given rule provider
func (*Service) RolesAuthorizeOrForbiddenMiddleware ¶
func (s *Service) RolesAuthorizeOrForbiddenMiddleware(ruleNames ...string) func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
RolesAuthorizeOrForbiddenMiddleware middleware which authorize http request. If authorize fail,http error forbidden will be executed.