Configure the default OAuth2 ClientID (#209)
This commit is contained in:
@@ -168,5 +168,6 @@ func main() {
|
|||||||
| DocExpansion | string | "list" | Controls the default expansion setting for the operations and tags. It can be 'list' (expands only the tags), 'full' (expands the tags and operations) or 'none' (expands nothing). |
|
| DocExpansion | string | "list" | Controls the default expansion setting for the operations and tags. It can be 'list' (expands only the tags), 'full' (expands the tags and operations) or 'none' (expands nothing). |
|
||||||
| DeepLinking | bool | true | If set to true, enables deep linking for tags and operations. See the Deep Linking documentation for more information. |
|
| DeepLinking | bool | true | If set to true, enables deep linking for tags and operations. See the Deep Linking documentation for more information. |
|
||||||
| DefaultModelsExpandDepth | int | 1 | Default expansion depth for models (set to -1 completely hide the models). |
|
| DefaultModelsExpandDepth | int | 1 | Default expansion depth for models (set to -1 completely hide the models). |
|
||||||
| InstanceName | string | "swagger" | The instance name of the swagger document. If multiple different swagger instances should be deployed on one gin router, ensure that each instance has a unique name (use the _--instanceName_ parameter to generate swagger documents with _swag init_).
|
| InstanceName | string | "swagger" | The instance name of the swagger document. If multiple different swagger instances should be deployed on one gin router, ensure that each instance has a unique name (use the _--instanceName_ parameter to generate swagger documents with _swag init_). |
|
||||||
| PersistAuthotization | bool | false | If set to true, it persists authorization data and it would not be lost on browser close/refresh. |
|
| PersistAuthorization | bool | false | If set to true, it persists authorization data and it would not be lost on browser close/refresh. |
|
||||||
|
| Oauth2DefaultClientID | string | "" | If set, it's used to prepopulate the *client_id* field of the OAuth2 Authorization dialog. |
|
||||||
|
|||||||
+20
-2
@@ -22,6 +22,7 @@ type swaggerConfig struct {
|
|||||||
DefaultModelsExpandDepth int
|
DefaultModelsExpandDepth int
|
||||||
DeepLinking bool
|
DeepLinking bool
|
||||||
PersistAuthorization bool
|
PersistAuthorization bool
|
||||||
|
Oauth2DefaultClientID string
|
||||||
}
|
}
|
||||||
|
|
||||||
// Config stores ginSwagger configuration variables.
|
// Config stores ginSwagger configuration variables.
|
||||||
@@ -34,6 +35,7 @@ type Config struct {
|
|||||||
DefaultModelsExpandDepth int
|
DefaultModelsExpandDepth int
|
||||||
DeepLinking bool
|
DeepLinking bool
|
||||||
PersistAuthorization bool
|
PersistAuthorization bool
|
||||||
|
Oauth2DefaultClientID string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (config Config) toSwaggerConfig() swaggerConfig {
|
func (config Config) toSwaggerConfig() swaggerConfig {
|
||||||
@@ -45,8 +47,9 @@ func (config Config) toSwaggerConfig() swaggerConfig {
|
|||||||
Oauth2RedirectURL: "`${window.location.protocol}//${window.location.host}$" +
|
Oauth2RedirectURL: "`${window.location.protocol}//${window.location.host}$" +
|
||||||
"{window.location.pathname.split('/').slice(0, window.location.pathname.split('/').length - 1).join('/')}" +
|
"{window.location.pathname.split('/').slice(0, window.location.pathname.split('/').length - 1).join('/')}" +
|
||||||
"/oauth2-redirect.html`",
|
"/oauth2-redirect.html`",
|
||||||
Title: config.Title,
|
Title: config.Title,
|
||||||
PersistAuthorization: config.PersistAuthorization,
|
PersistAuthorization: config.PersistAuthorization,
|
||||||
|
Oauth2DefaultClientID: config.Oauth2DefaultClientID,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,6 +98,13 @@ func PersistAuthorization(persistAuthorization bool) func(*Config) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Oauth2DefaultClientID set the default client ID used for OAuth2
|
||||||
|
func Oauth2DefaultClientID(oauth2DefaultClientID string) func(*Config) {
|
||||||
|
return func(c *Config) {
|
||||||
|
c.Oauth2DefaultClientID = oauth2DefaultClientID
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// WrapHandler wraps `http.Handler` into `gin.HandlerFunc`.
|
// WrapHandler wraps `http.Handler` into `gin.HandlerFunc`.
|
||||||
func WrapHandler(handler *webdav.Handler, options ...func(*Config)) gin.HandlerFunc {
|
func WrapHandler(handler *webdav.Handler, options ...func(*Config)) gin.HandlerFunc {
|
||||||
var config = Config{
|
var config = Config{
|
||||||
@@ -105,6 +115,7 @@ func WrapHandler(handler *webdav.Handler, options ...func(*Config)) gin.HandlerF
|
|||||||
DefaultModelsExpandDepth: 1,
|
DefaultModelsExpandDepth: 1,
|
||||||
DeepLinking: true,
|
DeepLinking: true,
|
||||||
PersistAuthorization: false,
|
PersistAuthorization: false,
|
||||||
|
Oauth2DefaultClientID: "",
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, c := range options {
|
for _, c := range options {
|
||||||
@@ -303,6 +314,13 @@ window.onload = function() {
|
|||||||
defaultModelsExpandDepth: {{.DefaultModelsExpandDepth}}
|
defaultModelsExpandDepth: {{.DefaultModelsExpandDepth}}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const defaultClientId = "{{.Oauth2DefaultClientID}}";
|
||||||
|
if (defaultClientId) {
|
||||||
|
ui.initOAuth({
|
||||||
|
clientId: defaultClientId
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
window.ui = ui
|
window.ui = ui
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -233,3 +233,16 @@ func TestPersistAuthorization(t *testing.T) {
|
|||||||
configFunc(&cfg)
|
configFunc(&cfg)
|
||||||
assert.Equal(t, false, cfg.PersistAuthorization)
|
assert.Equal(t, false, cfg.PersistAuthorization)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestOauth2DefaultClientID(t *testing.T) {
|
||||||
|
var cfg Config
|
||||||
|
assert.Equal(t, "", cfg.Oauth2DefaultClientID)
|
||||||
|
|
||||||
|
configFunc := Oauth2DefaultClientID("default_client_id")
|
||||||
|
configFunc(&cfg)
|
||||||
|
assert.Equal(t, "default_client_id", cfg.Oauth2DefaultClientID)
|
||||||
|
|
||||||
|
configFunc = Oauth2DefaultClientID("")
|
||||||
|
configFunc(&cfg)
|
||||||
|
assert.Equal(t, "", cfg.Oauth2DefaultClientID)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user