Documentation
¶
Index ¶
- Constants
- Variables
- func SetAuthenticationTree(connection Connection, tree string)
- type AMInfoResponse
- type AuthenticatePayload
- type Connection
- type ConnectionBuilder
- func (b *ConnectionBuilder) ConnectTo(url *url.URL) *ConnectionBuilder
- func (b *ConnectionBuilder) Create() (Connection, error)
- func (b *ConnectionBuilder) InRealm(realm string) *ConnectionBuilder
- func (b *ConnectionBuilder) TimeoutRequestAfter(timeout time.Duration) *ConnectionBuilder
- func (b *ConnectionBuilder) WithKey(key crypto.Signer) *ConnectionBuilder
- func (b *ConnectionBuilder) WithTree(tree string) *ConnectionBuilder
- type ContentType
- type GetAccessTokenPayload
- type IntrospectPayload
- type SessionToken
- type ThingEndpointPayload
Constants ¶
const AppJOSE coap.MediaType = 11650
CoAP Content-Formats registry does not contain a JOSE value, using an unassigned value
Variables ¶
Functions ¶
func SetAuthenticationTree ¶
func SetAuthenticationTree(connection Connection, tree string)
SetAuthenticationTree changes the authentication tree that the connection was created with. This is a convenience function for functional testing.
Types ¶
type AMInfoResponse ¶
type AMInfoResponse struct {
Realm string
AccessTokenURL string
AttributesURL string
ThingsVersion string
}
AMInfoResponse contains the information required to construct valid signed JWTs
type AuthenticatePayload ¶
type AuthenticatePayload struct {
SessionToken
AuthId string `json:"authId,omitempty"`
AuthIDKey string `json:"auth_id_digest,omitempty"`
Callbacks []callback.Callback `json:"callbacks,omitempty"`
}
AuthenticatePayload represents the outbound and inbound data during an authentication request
func (AuthenticatePayload) HasSessionToken ¶
func (p AuthenticatePayload) HasSessionToken() bool
HasSessionToken returns true if the payload contains a session token Indicates that the authentication workflow has completed successfully
func (AuthenticatePayload) String ¶
func (p AuthenticatePayload) String() string
type Connection ¶
type Connection interface {
// initialise the client. Must be called before the Client is used by a Thing
Initialise() error
// authenticate sends an authenticate request to the ForgeRock platform
Authenticate(payload AuthenticatePayload) (reply AuthenticatePayload, err error)
// amInfo returns the information required to construct valid signed JWTs
AMInfo() (info AMInfoResponse, err error)
// validateSession sends a validate session request
ValidateSession(tokenID string) (ok bool, err error)
// logoutSession makes a request to logout the session
LogoutSession(tokenID string) (err error)
// accessToken makes an access token request with the given session token and payload
AccessToken(tokenID string, content ContentType, payload string) (reply []byte, err error)
// IntrospectAccessToken makes a request to introspect an access token
IntrospectAccessToken(token string) (introspection []byte, err error)
// attributes makes a thing attributes request with the given session token and payload
Attributes(tokenID string, content ContentType, payload string, names []string) (reply []byte, err error)
}
connection to the ForgeRock platform
type ConnectionBuilder ¶
type ConnectionBuilder struct {
// contains filtered or unexported fields
}
func NewConnection ¶
func NewConnection() *ConnectionBuilder
func (*ConnectionBuilder) ConnectTo ¶
func (b *ConnectionBuilder) ConnectTo(url *url.URL) *ConnectionBuilder
func (*ConnectionBuilder) Create ¶
func (b *ConnectionBuilder) Create() (Connection, error)
func (*ConnectionBuilder) InRealm ¶
func (b *ConnectionBuilder) InRealm(realm string) *ConnectionBuilder
func (*ConnectionBuilder) TimeoutRequestAfter ¶
func (b *ConnectionBuilder) TimeoutRequestAfter(timeout time.Duration) *ConnectionBuilder
func (*ConnectionBuilder) WithKey ¶
func (b *ConnectionBuilder) WithKey(key crypto.Signer) *ConnectionBuilder
func (*ConnectionBuilder) WithTree ¶
func (b *ConnectionBuilder) WithTree(tree string) *ConnectionBuilder
type ContentType ¶
type ContentType string
const ( ApplicationJSON ContentType = "application/json" ApplicationJOSE ContentType = "application/jose" )
type GetAccessTokenPayload ¶
type GetAccessTokenPayload struct {
Scope []string `json:"scope,omitempty"`
}
func (GetAccessTokenPayload) String ¶
func (p GetAccessTokenPayload) String() string
type IntrospectPayload ¶
type IntrospectPayload struct {
Token string `json:"token"`
TokenTypeHint string `json:"token_type_hint,omitempty"`
}
IntrospectPayload contains an introspection request as defined by rfc7662
type SessionToken ¶
type SessionToken struct {
TokenID string `json:"tokenId,omitempty"`
}
SessionToken holds a session token
type ThingEndpointPayload ¶
type ThingEndpointPayload struct {
Token string `json:"token"`
Payload string `json:"payload,omitempty"`
}
ThingEndpointPayload wraps the payload destined for the Thing endpoint with the session token