@@ -100,24 +100,37 @@ func NewServer(config Config, store storage.Storage) (*Server, error) {
100100
101101	// Configure fosite 
102102	oauthConfig  :=  & compose.Config {
103- 		AccessTokenLifespan :      config .TokenTTL ,
104- 		RefreshTokenLifespan :     config .TokenTTL  *  2 ,
105- 		AuthorizeCodeLifespan :    10  *  time .Minute ,
106- 		MinParameterEntropy :      minEntropy ,
107- 		EnforcePKCE :              true ,
108- 		ScopeStrategy :            fosite .HierarchicScopeStrategy ,
109- 		AudienceMatchingStrategy : fosite .DefaultAudienceMatchingStrategy ,
110- 		HashCost :                 12 ,
103+ 		AccessTokenLifespan :            config .TokenTTL ,
104+ 		RefreshTokenLifespan :           config .TokenTTL  *  2 ,
105+ 		AuthorizeCodeLifespan :          10  *  time .Minute ,
106+ 		TokenURL :                       config .Issuer  +  "/token" ,
107+ 		ScopeStrategy :                  fosite .HierarchicScopeStrategy ,
108+ 		AudienceMatchingStrategy :       fosite .DefaultAudienceMatchingStrategy ,
109+ 		EnforcePKCEForPublicClients :    true ,
110+ 		EnablePKCEPlainChallengeMethod : false ,
111+ 		MinParameterEntropy :            minEntropy ,
111112	}
112113
113- 	// Create provider using compose 
114- 	provider  :=  compose .ComposeAllEnabled (
114+ 	// Create provider using compose with specific factories  
115+ 	provider  :=  compose .Compose (
115116		oauthConfig ,
116117		store ,
117- 		secret ,
118- 		nil , // RSA key not needed for our use case 
118+ 		& compose.CommonStrategy {
119+ 			CoreStrategy : compose .NewOAuth2HMACStrategy (oauthConfig , secret , nil ),
120+ 		},
121+ 		nil , // hasher 
122+ 		compose .OAuth2AuthorizeExplicitFactory ,
123+ 		compose .OAuth2ClientCredentialsGrantFactory ,
124+ 		compose .OAuth2PKCEFactory ,
125+ 		compose .OAuth2RefreshTokenGrantFactory ,
126+ 		compose .OAuth2TokenIntrospectionFactory ,
119127	)
120128
129+ 	// Set default session duration if not configured 
130+ 	if  config .SessionDuration  ==  0  {
131+ 		config .SessionDuration  =  24  *  time .Hour 
132+ 	}
133+ 
121134	return  & Server {
122135		provider :         provider ,
123136		storage :          store ,
0 commit comments