Documentation
¶
Index ¶
- Constants
- func NewAuthzContext(api *LauthAPI, c *gin.Context) (*AuthzContext, *ErrorMessage)
- func RandomDelay()
- type AuthzContext
- func (ctx *AuthzContext) Close() error
- func (ctx *AuthzContext) ErrorRedirect(msg *ErrorMessage)
- func (ctx *AuthzContext) SendTokens(subject string, authTime time.Time)
- func (ctx *AuthzContext) ShowConfirmPage(code int, initialUser string)
- func (ctx *AuthzContext) ShowLoginPage(code int, initialUser string, errorDescription string)
- func (ctx *AuthzContext) TrySSO(authorized bool) (proceed bool)
- type AuthzRequest
- type ErrorMessage
- func (msg ErrorMessage) Error() string
- func (msg ErrorMessage) HTML(c *gin.Context)
- func (msg ErrorMessage) JSON(c *gin.Context)
- func (msg ErrorMessage) Redirect(c *gin.Context)
- func (msg ErrorMessage) Report(r metrics.ErrorReporter)
- func (msg ErrorMessage) StatusCode() int
- func (msg ErrorMessage) Unwrap() error
- type ErrorReason
- type GetUserInfoRequest
- type LauthAPI
- func (api *LauthAPI) DeleteSSOToken(c *gin.Context)
- func (api *LauthAPI) GetAuthz(c *gin.Context)
- func (api *LauthAPI) GetCerts(c *gin.Context)
- func (api *LauthAPI) GetConfiguration(c *gin.Context)
- func (api *LauthAPI) GetSSOToken(c *gin.Context) (token.IDTokenClaims, error)
- func (api *LauthAPI) GetUserInfo(c *gin.Context)
- func (api *LauthAPI) IsValidLoginSession(token, userIP, clientID string) bool
- func (api *LauthAPI) Logout(c *gin.Context)
- func (api *LauthAPI) MakeLoginSession(userIP, clientID string) (string, error)
- func (api *LauthAPI) PostAuthz(c *gin.Context)
- func (api *LauthAPI) PostToken(c *gin.Context)
- func (api *LauthAPI) PostUserInfo(c *gin.Context)
- func (api *LauthAPI) SetErrorRoutes(r *gin.Engine)
- func (api *LauthAPI) SetRoutes(r gin.IRoutes)
- func (api *LauthAPI) SetSSOToken(c *gin.Context, subject string) error
- type LogoutRequest
- type PostTokenRequest
- type PostTokenResponse
- type PostUserInfoRequest
- type StringSet
Constants ¶
View Source
const (
SSO_TOKEN_COOKIE = "lauth_token"
)
Variables ¶
This section is empty.
Functions ¶
func NewAuthzContext ¶ added in v0.3.0
func NewAuthzContext(api *LauthAPI, c *gin.Context) (*AuthzContext, *ErrorMessage)
func RandomDelay ¶
func RandomDelay()
Types ¶
type AuthzContext ¶ added in v0.3.0
type AuthzContext struct {
API *LauthAPI
Gin *gin.Context
Request *AuthzRequest
Report *metrics.Context
}
func (*AuthzContext) Close ¶ added in v0.3.0
func (ctx *AuthzContext) Close() error
func (*AuthzContext) ErrorRedirect ¶ added in v0.3.0
func (ctx *AuthzContext) ErrorRedirect(msg *ErrorMessage)
func (*AuthzContext) SendTokens ¶ added in v0.3.0
func (ctx *AuthzContext) SendTokens(subject string, authTime time.Time)
func (*AuthzContext) ShowConfirmPage ¶ added in v0.3.0
func (ctx *AuthzContext) ShowConfirmPage(code int, initialUser string)
func (*AuthzContext) ShowLoginPage ¶ added in v0.3.0
func (ctx *AuthzContext) ShowLoginPage(code int, initialUser string, errorDescription string)
func (*AuthzContext) TrySSO ¶ added in v0.3.0
func (ctx *AuthzContext) TrySSO(authorized bool) (proceed bool)
type AuthzRequest ¶ added in v0.3.0
type AuthzRequest struct {
ResponseType string `form:"response_type" json:"response_type" xml:"response_type"`
ClientID string `form:"client_id" json:"client_id" xml:"client_id"`
RedirectURI string `form:"redirect_uri" json:"redirect_uri" xml:"redirect_uri"`
Scope string `form:"scope" json:"scope" xml:"scope"`
State string `form:"state" json:"state" xml:"state"`
Nonce string `form:"nonce" json:"nonce" xml:"nonce"`
MaxAge int64 `form:"max_age" json:"max_age" xml:"max_age"`
// use only GET method
Prompt string `form:"prompt" json:"prompt" xml:"prompt"`
LoginHint string `form:"login_hint" json:"login_hint" xml:"login_hint"`
// use only POST method
User string `form:"username" json:"username" xml:"username"`
Password string `form:"password" json:"password" xml:"password"`
SessionToken string `form:"session" json:"session" xml:"session"`
// not supported
Request string `form:"request" json:"request" xml:"request"`
RequestURI string `form:"request_uri" json:"request_uri" xml:"request_uri"`
}
func (*AuthzRequest) Bind ¶ added in v0.3.0
func (req *AuthzRequest) Bind(c *gin.Context) *ErrorMessage
func (*AuthzRequest) Validate ¶ added in v0.3.0
func (req *AuthzRequest) Validate(config *config.Config) *ErrorMessage
type ErrorMessage ¶
type ErrorMessage struct {
Err error `json:"-"`
RedirectURI *url.URL `json:"-"`
ResponseType string `json:"-"`
State string `json:"state,omitempty"`
Reason ErrorReason `json:"error"`
Description string `json:"error_description,omitempty"`
ErrorURI string `json:"error_uri,omitempty"`
}
func (ErrorMessage) Error ¶
func (msg ErrorMessage) Error() string
func (ErrorMessage) HTML ¶ added in v0.1.0
func (msg ErrorMessage) HTML(c *gin.Context)
func (ErrorMessage) JSON ¶
func (msg ErrorMessage) JSON(c *gin.Context)
func (ErrorMessage) Redirect ¶
func (msg ErrorMessage) Redirect(c *gin.Context)
func (ErrorMessage) Report ¶
func (msg ErrorMessage) Report(r metrics.ErrorReporter)
func (ErrorMessage) StatusCode ¶ added in v0.1.0
func (msg ErrorMessage) StatusCode() int
func (ErrorMessage) Unwrap ¶
func (msg ErrorMessage) Unwrap() error
type ErrorReason ¶
type ErrorReason string
var ( AccessDenied ErrorReason = "access_denied" InvalidClient ErrorReason = "invalid_client" InvalidGrant ErrorReason = "invalid_grant" InvalidRequest ErrorReason = "invalid_request" InvalidScope ErrorReason = "invalid_scope" InvalidToken ErrorReason = "invalid_token" RequestNotSupported ErrorReason = "request_not_supported" RequestURINotSupported ErrorReason = "request_uri_not_supported" ServerError ErrorReason = "server_error" UnsupportedGrantType ErrorReason = "unsupported_grant_type" UnsupportedResponseType ErrorReason = "unsupported_response_type" )
func (ErrorReason) String ¶
func (e ErrorReason) String() string
type GetUserInfoRequest ¶ added in v0.2.0
type GetUserInfoRequest struct {
Authorization string `form:"-" header:"Authorization"`
}
func (*GetUserInfoRequest) Bind ¶ added in v0.2.0
func (req *GetUserInfoRequest) Bind(c *gin.Context) *ErrorMessage
func (GetUserInfoRequest) GetToken ¶ added in v0.2.0
func (req GetUserInfoRequest) GetToken() (string, *ErrorMessage)
type LauthAPI ¶
func (*LauthAPI) DeleteSSOToken ¶ added in v0.1.0
func (*LauthAPI) GetConfiguration ¶
func (*LauthAPI) GetSSOToken ¶ added in v0.1.0
func (*LauthAPI) GetUserInfo ¶
func (*LauthAPI) IsValidLoginSession ¶ added in v0.3.0
func (*LauthAPI) MakeLoginSession ¶
func (*LauthAPI) PostUserInfo ¶ added in v0.2.0
func (*LauthAPI) SetErrorRoutes ¶
type LogoutRequest ¶ added in v0.1.0
type LogoutRequest struct {
IDTokenHint string `form:"id_token_hint" json:"id_token_hint" xml:"id_token_hint"`
RedirectURI string `form:"post_logout_redirect_uri" json:"post_logout_redirect_uri" xml:"post_logout_redirect_uri"`
State string `form:"state" json:"state" xml:"state"`
}
func (*LogoutRequest) Bind ¶ added in v0.1.0
func (req *LogoutRequest) Bind(c *gin.Context) *ErrorMessage
type PostTokenRequest ¶
type PostTokenRequest struct {
GrantType string `form:"grant_type" json:"grant_type" xml:"grant_type"`
Code string `form:"code" json:"code" xml:"code"`
RefreshToken string `form:"refresh_token" json:"refresh_token" xml:"refresh_token"`
ClientID string `form:"client_id" json:"client_id" xml:"client_id"`
ClientSecret string `form:"client_secret" json:"client_secret" xml:"client_secret"`
RedirectURI string `form:"redirect_uri" json:"redirect_uri" xml:"redirect_uri"`
}
func (*PostTokenRequest) Bind ¶
func (req *PostTokenRequest) Bind(c *gin.Context) *ErrorMessage
func (*PostTokenRequest) BindAndValidate ¶
func (req *PostTokenRequest) BindAndValidate(c *gin.Context, conf *config.Config) *ErrorMessage
func (PostTokenRequest) Validate ¶
func (req PostTokenRequest) Validate(conf *config.Config) *ErrorMessage
type PostTokenResponse ¶
type PostUserInfoRequest ¶ added in v0.2.0
type PostUserInfoRequest struct {
GetUserInfoRequest
AccessToken string `form:"access_token" header:"-"`
}
func (*PostUserInfoRequest) Bind ¶ added in v0.2.0
func (req *PostUserInfoRequest) Bind(c *gin.Context) *ErrorMessage
func (PostUserInfoRequest) GetToken ¶ added in v0.2.0
func (req PostUserInfoRequest) GetToken() (string, *ErrorMessage)
Click to show internal directories.
Click to hide internal directories.