Last active
August 29, 2015 14:07
-
-
Save aeischeid/a290876c2e0c2918401b to your computer and use it in GitHub Desktop.
SpringSecurity Rest Plugin Gorm Setup
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package org.some.place | |
class AuthToken { | |
String tokenValue | |
String username | |
Date refreshed = new Date() | |
static constraints = { | |
} | |
static mapping = { | |
version false | |
} | |
def beforeInsert() { | |
// lets limit to 25 tokens per user. | |
def userTokens = AuthToken.countByUsername(username) | |
// delete oldest one if there are more than desired number of tokens | |
if (userTokens > 24) { | |
// default sort should be by pkey id which is sequence based and should be defalt ORDER BY | |
// TODO: use more efficient query for deleting surplus tokens. | |
//AuthToken.executeUpdate('delete from AuthToken where username = ? limit 1', [username]) | |
AuthToken at = AuthToken.findByUsername(username) | |
at.delete() | |
} | |
} | |
def afterLoad() { | |
// if being accessed and it is more than a day since last marked as refreshed | |
// and it hasn't been wiped out by Quartz job (it exists, duh) | |
// then refresh it | |
if (refreshed < new Date() -1) { | |
refreshed = new Date() | |
it.save() | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package org.some.place | |
class RemoveStaleTokensJob { | |
static triggers = { | |
cron name: 'everyDay2AM', cronExpression: '0 0 2 ? * *' | |
} | |
void execute() { | |
log.debug("Starting job ${this.class.simpleName}") | |
AuthToken.executeUpdate('delete AuthToken a where a.refreshed < ?' [new Date()-1]) | |
log.debug("Finished job ${this.class.simpleName}") | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment