#132 Implement cleanup for OpenID Connect tokens and userinfo
Merged 7 years ago by puiterwijk. Opened 7 years ago by puiterwijk.
puiterwijk/ipsilon oidc-cleanup  into  master

@@ -281,8 +281,13 @@ 

              'expires_in': expires_in,

          }

  

-     def invalidateToken(self, token):

-         self.del_unique_data('token', token)

+     def invalidateToken(self, token_id):

+         data = self.get_unique_data('token', token_id)

+         if data:

+             datum = data[token_id]

+             self.del_unique_data('userinfo', datum['userinfocode'])

+ 

+         self.del_unique_data('token', token_id)

  

      def storeUserInfo(self, userinfo):

          to_store = {}
@@ -360,9 +365,28 @@ 

  

          return token

  

+     def _cleanupExpiredTokens(self):

+         tokens = self.get_unique_data('token')

+         cleaned = 0

+         for iden in tokens:

+             if tokens[iden]['expires_at'] <= int(time.time()):

+                 cleaned += 1

+                 self.invalidateToken(iden)

+         return cleaned

+ 

+     def _cleanupUnreferencedTokens(self):

+         tokens = self.get_unique_data('token')

+         cleaned = 0

+         for iden in tokens:

+             if not self.getClient(tokens[iden]['client_id']):

+                 cleaned += 1

+                 self.invalidateToken(iden)

+         return cleaned

+ 

      def _cleanup(self):

-         # TODO: Clean up any tokens with expiry <= time.time()

-         return 0

+         res1 = self._cleanupExpiredTokens()

+         res2 = self._cleanupUnreferencedTokens()

+         return res1 + res2

  

      def _initialize_schema(self):

          q = self._query(self._db, 'client', UNIQUE_DATA_TABLE,

Do we need to worry about utc vs non-utc ?

rebased

7 years ago

We don't need to worry about utc vs non-utc, since we insert the info with time.time() ourselves (see issueAuthorizationCode or issueToken).
On Windows, MacOS and most unices, this is 01-01-1970T00:00+00:00.

rebased

7 years ago

:thumbsup_tone1: for me

rebased

7 years ago

Pull-Request has been merged by puiterwijk

7 years ago
Metadata