Skip to content

Instantly share code, notes, and snippets.

@jsureshchandra
Created July 26, 2012 19:28
Show Gist options
  • Select an option

  • Save jsureshchandra/3184012 to your computer and use it in GitHub Desktop.

Select an option

Save jsureshchandra/3184012 to your computer and use it in GitHub Desktop.
Sample token store implementation for OAuth2
package <your package>
import org.springframework.security.oauth2.provider.token.TokenStore
import org.springframework.security.oauth2.provider.OAuth2Authentication
import org.springframework.security.oauth2.common.OAuth2AccessToken
import org.springframework.security.oauth2.common.ExpiringOAuth2RefreshToken
import org.springframework.security.oauth2.common.util.SerializationUtils;
import <your package>.OAuthAccessToken
import <your package>.OAuthRefreshToken
class OAuthTokenStore implements TokenStore {
@Override
OAuth2Authentication readAuthentication(OAuth2AccessToken token) {
OAuthAccessToken accessToken = OAuthAccessToken.findByTokenId(token.getValue())
if (accessToken != null) {
return SerializationUtils.deserialize(accessToken.authentication)
} else {
return null
}
}
@Override
void storeAccessToken(OAuth2AccessToken token, OAuth2Authentication authentication) {
String refreshToken = null;
if (token.getRefreshToken() != null) {
refreshToken = token.getRefreshToken().getValue();
}
OAuthAccessToken accessToken = new OAuthAccessToken(
tokenId: token.getValue(),
token: SerializationUtils.serialize(token),
authentication: SerializationUtils.serialize(authentication),
refreshToken: refreshToken
).save(failOnError: true)
}
@Override
OAuth2AccessToken readAccessToken(String tokenValue) {
OAuthAccessToken token = OAuthAccessToken.findByTokenId(tokenValue)
if (token != null) {
return SerializationUtils.deserialize(token.token)
} else {
return null
}
}
@Override
void removeAccessToken(String tokenValue) {
OAuthAccessToken token = OAuthAccessToken.findByTokenId(tokenValue)
if (token != null) {
token.delete()
}
}
@Override
OAuth2Authentication readAuthentication(ExpiringOAuth2RefreshToken token) {
OAuthRefreshToken refreshToken = OAuthRefreshToken.findByTokenId(token.getValue())
if (refreshToken != null) {
return SerializationUtils.deserialize(refreshToken.authentication)
} else {
return null
}
}
@Override
void storeRefreshToken(ExpiringOAuth2RefreshToken refreshToken, OAuth2Authentication authentication) {
new OAuthRefreshToken (
tokenId: refreshToken.getValue(),
token: SerializationUtils.serialize(refreshToken),
authentication: SerializationUtils.serialize(authentication)
).save(failOnError: true)
}
@Override
ExpiringOAuth2RefreshToken readRefreshToken(String tokenValue) {
OAuthRefreshToken token = OAuthRefreshToken.findByTokenId(tokenValue)
if (token != null) {
return SerializationUtils.deserialize(token.token)
} else {
return null
}
}
@Override
void removeRefreshToken(String tokenValue) {
OAuthRefreshToken token = OAuthRefreshToken.findByTokenId(tokenValue)
if (token != null) {
token.delete()
}
}
@Override
void removeAccessTokenUsingRefreshToken(String refreshToken) {
OAuthAccessToken token = OAuthAccessToken.findByRefreshToken(refreshToken)
if (token != null) {
token.delete()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment