Created
July 26, 2012 19:28
-
-
Save jsureshchandra/3184012 to your computer and use it in GitHub Desktop.
Sample token store implementation for OAuth2
This file contains hidden or 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 <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