@@ -11,7 +11,7 @@ import (
1111 "gopkg.in/oauth2.v3/models"
1212)
1313
14- // NewDefaultManager Create to default authorization management instance
14+ // NewDefaultManager create to default authorization management instance
1515func NewDefaultManager () * Manager {
1616 m := NewManager ()
1717 // default implementation
@@ -22,19 +22,21 @@ func NewDefaultManager() *Manager {
2222 return m
2323}
2424
25- // NewManager Create to authorization management instance
25+ // NewManager create to authorization management instance
2626func NewManager () * Manager {
2727 return & Manager {
28- injector : inject .New (),
29- gtcfg : make (map [oauth2.GrantType ]* Config ),
28+ injector : inject .New (),
29+ gtcfg : make (map [oauth2.GrantType ]* Config ),
30+ validateURI : DefaultValidateURI ,
3031 }
3132}
3233
33- // Manager Provide authorization management
34+ // Manager provide authorization management
3435type Manager struct {
35- injector inject.Injector
36- codeExp time.Duration
37- gtcfg map [oauth2.GrantType ]* Config
36+ injector inject.Injector
37+ codeExp time.Duration
38+ gtcfg map [oauth2.GrantType ]* Config
39+ validateURI ValidateURIHandler
3840}
3941
4042// get grant type config
@@ -66,83 +68,83 @@ func (m *Manager) newTokenInfo(ti oauth2.TokenInfo) oauth2.TokenInfo {
6668 return out .Interface ().(oauth2.TokenInfo )
6769}
6870
69- // SetAuthorizeCodeExp Set the authorization code expiration time
71+ // SetAuthorizeCodeExp set the authorization code expiration time
7072func (m * Manager ) SetAuthorizeCodeExp (exp time.Duration ) {
7173 m .codeExp = exp
7274}
7375
74- // SetAuthorizeCodeTokenCfg Set the authorization code grant token config
76+ // SetAuthorizeCodeTokenCfg set the authorization code grant token config
7577func (m * Manager ) SetAuthorizeCodeTokenCfg (cfg * Config ) {
7678 m .gtcfg [oauth2 .AuthorizationCode ] = cfg
7779}
7880
79- // SetImplicitTokenCfg Set the implicit grant token config
81+ // SetImplicitTokenCfg set the implicit grant token config
8082func (m * Manager ) SetImplicitTokenCfg (cfg * Config ) {
8183 m .gtcfg [oauth2 .Implicit ] = cfg
8284}
8385
84- // SetPasswordTokenCfg Set the password grant token config
86+ // SetPasswordTokenCfg set the password grant token config
8587func (m * Manager ) SetPasswordTokenCfg (cfg * Config ) {
8688 m .gtcfg [oauth2 .PasswordCredentials ] = cfg
8789}
8890
89- // SetClientTokenCfg Set the client grant token config
91+ // SetClientTokenCfg set the client grant token config
9092func (m * Manager ) SetClientTokenCfg (cfg * Config ) {
9193 m .gtcfg [oauth2 .ClientCredentials ] = cfg
9294}
9395
94- // SetRefreshTokenCfg Set the refreshing token config
96+ // SetRefreshTokenCfg set the refreshing token config
9597func (m * Manager ) SetRefreshTokenCfg (cfg * Config ) {
9698 m .gtcfg [oauth2 .Refreshing ] = cfg
9799}
98100
99- // MapTokenModel Mapping the token information model
101+ // SetValidateURIHandler set the validates that RedirectURI is contained in baseURI
102+ func (m * Manager ) SetValidateURIHandler (handler ValidateURIHandler ) {
103+ m .validateURI = handler
104+ }
105+
106+ // MapTokenModel mapping the token information model
100107func (m * Manager ) MapTokenModel (token oauth2.TokenInfo ) {
101108 m .injector .Map (token )
102- return
103109}
104110
105- // MapAuthorizeGenerate Mapping the authorize code generate interface
111+ // MapAuthorizeGenerate mapping the authorize code generate interface
106112func (m * Manager ) MapAuthorizeGenerate (gen oauth2.AuthorizeGenerate ) {
107113 m .injector .Map (gen )
108- return
109114}
110115
111- // MapAccessGenerate Mapping the access token generate interface
116+ // MapAccessGenerate mapping the access token generate interface
112117func (m * Manager ) MapAccessGenerate (gen oauth2.AccessGenerate ) {
113118 m .injector .Map (gen )
114- return
115119}
116120
117- // MapClientStorage Mapping the client store interface
121+ // MapClientStorage mapping the client store interface
118122func (m * Manager ) MapClientStorage (stor oauth2.ClientStore ) {
119123 m .injector .Map (stor )
120- return
121124}
122125
123- // MustClientStorage Mandatory mapping the client store interface
126+ // MustClientStorage mandatory mapping the client store interface
124127func (m * Manager ) MustClientStorage (stor oauth2.ClientStore , err error ) {
125128 if err != nil {
126129 panic (err .Error ())
127130 }
128131 m .injector .Map (stor )
129132}
130133
131- // MapTokenStorage Mapping the token store interface
134+ // MapTokenStorage mapping the token store interface
132135func (m * Manager ) MapTokenStorage (stor oauth2.TokenStore ) {
133136 m .injector .Map (stor )
134- return
135137}
136138
137- // MustTokenStorage Mandatory mapping the token store interface
139+ // MustTokenStorage mandatory mapping the token store interface
138140func (m * Manager ) MustTokenStorage (stor oauth2.TokenStore , err error ) {
139141 if err != nil {
140142 panic (err )
141143 }
142144 m .injector .Map (stor )
143145}
144146
145- // CheckInterface Check the interface implementation
147+ // CheckInterface check the interface implementation
146148func (m * Manager ) CheckInterface () error {
147149 _ , err := m .injector .Invoke (func (
148150 oauth2.TokenInfo , oauth2.AccessGenerate , oauth2.TokenStore ,
@@ -152,7 +154,7 @@ func (m *Manager) CheckInterface() error {
152154 return err
153155}
154156
155- // GetClient Get the client information
157+ // GetClient get the client information
156158func (m * Manager ) GetClient (clientID string ) (cli oauth2.ClientInfo , err error ) {
157159 _ , ierr := m .injector .Invoke (func (stor oauth2.ClientStore ) {
158160 cli , err = stor .GetByID (clientID )
@@ -168,12 +170,12 @@ func (m *Manager) GetClient(clientID string) (cli oauth2.ClientInfo, err error)
168170 return
169171}
170172
171- // GenerateAuthToken Generate the authorization token(code)
173+ // GenerateAuthToken generate the authorization token(code)
172174func (m * Manager ) GenerateAuthToken (rt oauth2.ResponseType , tgr * oauth2.TokenGenerateRequest ) (authToken oauth2.TokenInfo , err error ) {
173175 cli , err := m .GetClient (tgr .ClientID )
174176 if err != nil {
175177 return
176- } else if verr := ValidateURI (cli .GetDomain (), tgr .RedirectURI ); verr != nil {
178+ } else if verr := m . validateURI (cli .GetDomain (), tgr .RedirectURI ); verr != nil {
177179 err = verr
178180 return
179181 }
@@ -270,7 +272,7 @@ func (m *Manager) delAuthorizationCode(code string) (err error) {
270272 return
271273}
272274
273- // GenerateAccessToken Generate the access token
275+ // GenerateAccessToken generate the access token
274276func (m * Manager ) GenerateAccessToken (gt oauth2.GrantType , tgr * oauth2.TokenGenerateRequest ) (accessToken oauth2.TokenInfo , err error ) {
275277 if gt == oauth2 .AuthorizationCode {
276278 ti , terr := m .getAuthorizationCode (tgr .Code )
@@ -340,7 +342,7 @@ func (m *Manager) GenerateAccessToken(gt oauth2.GrantType, tgr *oauth2.TokenGene
340342 return
341343}
342344
343- // RefreshAccessToken Refreshing an access token
345+ // RefreshAccessToken refreshing an access token
344346func (m * Manager ) RefreshAccessToken (tgr * oauth2.TokenGenerateRequest ) (accessToken oauth2.TokenInfo , err error ) {
345347 cli , err := m .GetClient (tgr .ClientID )
346348 if err != nil {
@@ -401,7 +403,7 @@ func (m *Manager) RefreshAccessToken(tgr *oauth2.TokenGenerateRequest) (accessTo
401403 return
402404}
403405
404- // RemoveAccessToken Use the access token to delete the token information
406+ // RemoveAccessToken use the access token to delete the token information
405407func (m * Manager ) RemoveAccessToken (access string ) (err error ) {
406408 if access == "" {
407409 err = errors .ErrInvalidAccessToken
@@ -416,7 +418,7 @@ func (m *Manager) RemoveAccessToken(access string) (err error) {
416418 return
417419}
418420
419- // RemoveRefreshToken Use the refresh token to delete the token information
421+ // RemoveRefreshToken use the refresh token to delete the token information
420422func (m * Manager ) RemoveRefreshToken (refresh string ) (err error ) {
421423 if refresh == "" {
422424 err = errors .ErrInvalidAccessToken
@@ -431,7 +433,7 @@ func (m *Manager) RemoveRefreshToken(refresh string) (err error) {
431433 return
432434}
433435
434- // LoadAccessToken According to the access token for corresponding token information
436+ // LoadAccessToken according to the access token for corresponding token information
435437func (m * Manager ) LoadAccessToken (access string ) (info oauth2.TokenInfo , err error ) {
436438 if access == "" {
437439 err = errors .ErrInvalidAccessToken
@@ -460,7 +462,7 @@ func (m *Manager) LoadAccessToken(access string) (info oauth2.TokenInfo, err err
460462 return
461463}
462464
463- // LoadRefreshToken According to the refresh token for corresponding token information
465+ // LoadRefreshToken according to the refresh token for corresponding token information
464466func (m * Manager ) LoadRefreshToken (refresh string ) (info oauth2.TokenInfo , err error ) {
465467 if refresh == "" {
466468 err = errors .ErrInvalidRefreshToken
0 commit comments