connector: Connectors without a RefreshConnector should not return a refresh token instead of erroring

This commit is contained in:
rithu john
2017-03-23 14:06:30 -07:00
parent b112aa2ecd
commit 59502850f0
3 changed files with 20 additions and 6 deletions

View File

@@ -646,6 +646,20 @@ func (s *Server) handleAuthCode(w http.ResponseWriter, r *http.Request, client s
}
reqRefresh := func() bool {
// Ensure the connector supports refresh tokens.
//
// Connectors like `samlExperimental` do not implement RefreshConnector.
conn, ok := s.connectors[authCode.ConnectorID]
if !ok {
s.logger.Errorf("connector ID not found: %q", authCode.ConnectorID)
s.tokenErrHelper(w, errServerError, "", http.StatusInternalServerError)
return false
}
_, ok = conn.Connector.(connector.RefreshConnector)
if !ok {
return false
}
for _, scope := range authCode.Scopes {
if scope == scopeOfflineAccess {
return true