1
21
22 package compose
23
24 import (
25 "github.com/ory/fosite/handler/oauth2"
26 "github.com/ory/fosite/token/jwt"
27 )
28
29
30
31 func OAuth2AuthorizeExplicitFactory(config *Config, storage interface{}, strategy interface{}) interface{} {
32 return &oauth2.AuthorizeExplicitGrantHandler{
33 AccessTokenStrategy: strategy.(oauth2.AccessTokenStrategy),
34 RefreshTokenStrategy: strategy.(oauth2.RefreshTokenStrategy),
35 AuthorizeCodeStrategy: strategy.(oauth2.AuthorizeCodeStrategy),
36 CoreStorage: storage.(oauth2.CoreStorage),
37 AuthCodeLifespan: config.GetAuthorizeCodeLifespan(),
38 RefreshTokenLifespan: config.GetRefreshTokenLifespan(),
39 AccessTokenLifespan: config.GetAccessTokenLifespan(),
40 ScopeStrategy: config.GetScopeStrategy(),
41 AudienceMatchingStrategy: config.GetAudienceStrategy(),
42 TokenRevocationStorage: storage.(oauth2.TokenRevocationStorage),
43 IsRedirectURISecure: config.GetRedirectSecureChecker(),
44 RefreshTokenScopes: config.GetRefreshTokenScopes(),
45 }
46 }
47
48
49
50 func OAuth2ClientCredentialsGrantFactory(config *Config, storage interface{}, strategy interface{}) interface{} {
51 return &oauth2.ClientCredentialsGrantHandler{
52 HandleHelper: &oauth2.HandleHelper{
53 AccessTokenStrategy: strategy.(oauth2.AccessTokenStrategy),
54 AccessTokenStorage: storage.(oauth2.AccessTokenStorage),
55 AccessTokenLifespan: config.GetAccessTokenLifespan(),
56 },
57 ScopeStrategy: config.GetScopeStrategy(),
58 AudienceMatchingStrategy: config.GetAudienceStrategy(),
59 }
60 }
61
62
63
64 func OAuth2RefreshTokenGrantFactory(config *Config, storage interface{}, strategy interface{}) interface{} {
65 return &oauth2.RefreshTokenGrantHandler{
66 AccessTokenStrategy: strategy.(oauth2.AccessTokenStrategy),
67 RefreshTokenStrategy: strategy.(oauth2.RefreshTokenStrategy),
68 TokenRevocationStorage: storage.(oauth2.TokenRevocationStorage),
69 AccessTokenLifespan: config.GetAccessTokenLifespan(),
70 RefreshTokenLifespan: config.GetRefreshTokenLifespan(),
71 ScopeStrategy: config.GetScopeStrategy(),
72 AudienceMatchingStrategy: config.GetAudienceStrategy(),
73 RefreshTokenScopes: config.GetRefreshTokenScopes(),
74 }
75 }
76
77
78
79 func OAuth2AuthorizeImplicitFactory(config *Config, storage interface{}, strategy interface{}) interface{} {
80 return &oauth2.AuthorizeImplicitGrantTypeHandler{
81 AccessTokenStrategy: strategy.(oauth2.AccessTokenStrategy),
82 AccessTokenStorage: storage.(oauth2.AccessTokenStorage),
83 AccessTokenLifespan: config.GetAccessTokenLifespan(),
84 ScopeStrategy: config.GetScopeStrategy(),
85 AudienceMatchingStrategy: config.GetAudienceStrategy(),
86 }
87 }
88
89
90
91
92
93
94
95 func OAuth2ResourceOwnerPasswordCredentialsFactory(config *Config, storage interface{}, strategy interface{}) interface{} {
96 return &oauth2.ResourceOwnerPasswordCredentialsGrantHandler{
97 ResourceOwnerPasswordCredentialsGrantStorage: storage.(oauth2.ResourceOwnerPasswordCredentialsGrantStorage),
98 HandleHelper: &oauth2.HandleHelper{
99 AccessTokenStrategy: strategy.(oauth2.AccessTokenStrategy),
100 AccessTokenStorage: storage.(oauth2.AccessTokenStorage),
101 AccessTokenLifespan: config.GetAccessTokenLifespan(),
102 RefreshTokenLifespan: config.GetRefreshTokenLifespan(),
103 },
104 RefreshTokenStrategy: strategy.(oauth2.RefreshTokenStrategy),
105 ScopeStrategy: config.GetScopeStrategy(),
106 AudienceMatchingStrategy: config.GetAudienceStrategy(),
107 RefreshTokenScopes: config.GetRefreshTokenScopes(),
108 }
109 }
110
111
112 func OAuth2TokenRevocationFactory(config *Config, storage interface{}, strategy interface{}) interface{} {
113 return &oauth2.TokenRevocationHandler{
114 TokenRevocationStorage: storage.(oauth2.TokenRevocationStorage),
115 AccessTokenStrategy: strategy.(oauth2.AccessTokenStrategy),
116 RefreshTokenStrategy: strategy.(oauth2.RefreshTokenStrategy),
117 }
118 }
119
120
121
122 func OAuth2TokenIntrospectionFactory(config *Config, storage interface{}, strategy interface{}) interface{} {
123 return &oauth2.CoreValidator{
124 CoreStrategy: strategy.(oauth2.CoreStrategy),
125 CoreStorage: storage.(oauth2.CoreStorage),
126 ScopeStrategy: config.GetScopeStrategy(),
127 DisableRefreshTokenValidation: config.DisableRefreshTokenValidation,
128 }
129 }
130
131
132
133
134
135
136
137
138 func OAuth2StatelessJWTIntrospectionFactory(config *Config, storage interface{}, strategy interface{}) interface{} {
139 return &oauth2.StatelessJWTValidator{
140 JWTStrategy: strategy.(jwt.JWTStrategy),
141 ScopeStrategy: config.GetScopeStrategy(),
142 }
143 }
144
View as plain text