03ea72595d
* Initial Commit for OAuth API This builds and run and return the right error. Need to test it and then adding all users as possible client * Added mising dependency * just compile already... * Fixing template test * Imrpovements Moved db stuff in models Added some tests Added form in modpanel to add/update a client Added controllers for add/update of client * Added Forms + speed improvements Controller oauth client listing + html Controller oauth client delete + messages Messages on comment delete New ES config that disable ES if set to false. Improve load speed on local development Fix a load config bug Fix index admin & translation string sign_out broken by @ewhal * Sanitize empty strig in form array + css Multiple empty array of strings are sanitized for the oauth client create form Added some css for the form display * Upload and Create form works * Fix splitting response types * Removing required on secret when updating * fix travis error * Fix travis template test * Update dependency * Moved to jinzhu instead of azhao * randomizen secret on creation * Final touch on oath api improved display name fix grant form csrf fix login csrf on oauth * Fix gorm test * fix template test * Fixing deleted dependency issue * Make travis faster * Fix typo * Fix csrf for api calls * This shouldn't be exempt * Removing hard coded hash @ewhal Don't forget to replace the hash in tokens.go with another one * Added an example on how to use OAuth middleware * Renamed fosite utils to oauth2 utils
71 lignes
3,1 Kio
Go
71 lignes
3,1 Kio
Go
package compose
|
|
|
|
import (
|
|
"github.com/ory/fosite/handler/oauth2"
|
|
"github.com/ory/fosite/handler/openid"
|
|
)
|
|
|
|
// OpenIDConnectExplicitFactory creates an OpenID Connect explicit ("authorize code flow") grant handler.
|
|
//
|
|
// **Important note:** You must add this handler *after* you have added an OAuth2 authorize code handler!
|
|
func OpenIDConnectExplicitFactory(config *Config, storage interface{}, strategy interface{}) interface{} {
|
|
return &openid.OpenIDConnectExplicitHandler{
|
|
OpenIDConnectRequestStorage: storage.(openid.OpenIDConnectRequestStorage),
|
|
IDTokenHandleHelper: &openid.IDTokenHandleHelper{
|
|
IDTokenStrategy: strategy.(openid.OpenIDConnectTokenStrategy),
|
|
},
|
|
}
|
|
}
|
|
|
|
// OpenIDConnectRefreshFactory creates a handler for refreshing openid connect tokens.
|
|
//
|
|
// **Important note:** You must add this handler *after* you have added an OAuth2 authorize code handler!
|
|
func OpenIDConnectRefreshFactory(config *Config, storage interface{}, strategy interface{}) interface{} {
|
|
return &openid.OpenIDConnectRefreshHandler{
|
|
IDTokenHandleHelper: &openid.IDTokenHandleHelper{
|
|
IDTokenStrategy: strategy.(openid.OpenIDConnectTokenStrategy),
|
|
},
|
|
}
|
|
}
|
|
|
|
// OpenIDConnectImplicitFactory creates an OpenID Connect implicit ("implicit flow") grant handler.
|
|
//
|
|
// **Important note:** You must add this handler *after* you have added an OAuth2 authorize code handler!
|
|
func OpenIDConnectImplicitFactory(config *Config, storage interface{}, strategy interface{}) interface{} {
|
|
return &openid.OpenIDConnectImplicitHandler{
|
|
AuthorizeImplicitGrantTypeHandler: &oauth2.AuthorizeImplicitGrantTypeHandler{
|
|
AccessTokenStrategy: strategy.(oauth2.AccessTokenStrategy),
|
|
AccessTokenStorage: storage.(oauth2.AccessTokenStorage),
|
|
AccessTokenLifespan: config.GetAccessTokenLifespan(),
|
|
},
|
|
ScopeStrategy: config.GetScopeStrategy(),
|
|
IDTokenHandleHelper: &openid.IDTokenHandleHelper{
|
|
IDTokenStrategy: strategy.(openid.OpenIDConnectTokenStrategy),
|
|
},
|
|
}
|
|
}
|
|
|
|
// OpenIDConnectHybridFactory creates an OpenID Connect hybrid grant handler.
|
|
//
|
|
// **Important note:** You must add this handler *after* you have added an OAuth2 authorize code handler!
|
|
func OpenIDConnectHybridFactory(config *Config, storage interface{}, strategy interface{}) interface{} {
|
|
return &openid.OpenIDConnectHybridHandler{
|
|
AuthorizeExplicitGrantHandler: &oauth2.AuthorizeExplicitGrantHandler{
|
|
AccessTokenStrategy: strategy.(oauth2.AccessTokenStrategy),
|
|
RefreshTokenStrategy: strategy.(oauth2.RefreshTokenStrategy),
|
|
AuthorizeCodeStrategy: strategy.(oauth2.AuthorizeCodeStrategy),
|
|
CoreStorage: storage.(oauth2.CoreStorage),
|
|
AuthCodeLifespan: config.GetAuthorizeCodeLifespan(),
|
|
AccessTokenLifespan: config.GetAccessTokenLifespan(),
|
|
},
|
|
ScopeStrategy: config.GetScopeStrategy(),
|
|
AuthorizeImplicitGrantTypeHandler: &oauth2.AuthorizeImplicitGrantTypeHandler{
|
|
AccessTokenStrategy: strategy.(oauth2.AccessTokenStrategy),
|
|
AccessTokenStorage: storage.(oauth2.AccessTokenStorage),
|
|
AccessTokenLifespan: config.GetAccessTokenLifespan(),
|
|
},
|
|
IDTokenHandleHelper: &openid.IDTokenHandleHelper{
|
|
IDTokenStrategy: strategy.(openid.OpenIDConnectTokenStrategy),
|
|
},
|
|
}
|
|
}
|