Class JPAOAuthDataProvider
- java.lang.Object
-
- org.apache.cxf.rs.security.oauth2.provider.AbstractOAuthDataProvider
-
- org.apache.cxf.rs.security.oauth2.provider.JPAOAuthDataProvider
-
- All Implemented Interfaces:
ClientRegistrationProvider,OAuthDataProvider
- Direct Known Subclasses:
JPACodeDataProvider
public class JPAOAuthDataProvider extends AbstractOAuthDataProvider
Provides a Jpa BMT implementation for OAuthDataProvider. If your application runs in a container and if you want to use container managed persistence, you'll have to override the following methods :
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceJPAOAuthDataProvider.EntityManagerOperation<T>
-
Constructor Summary
Constructors Constructor Description JPAOAuthDataProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected javax.persistence.EntityTransactionbeginIfNeeded(javax.persistence.EntityManager em)Begins the current transaction.protected voidcloseIfNeeded(javax.persistence.EntityManager em)Closes the current em.protected voidcommitIfNeeded(javax.persistence.EntityManager em)Commits the current transaction.protected ServerAccessTokendoCreateAccessToken(AccessTokenRegistration atReg)ClientdoGetClient(String clientId)protected voiddoRemoveClient(Client c)protected voiddoRevokeAccessToken(ServerAccessToken at)protected voiddoRevokeRefreshToken(RefreshToken rt)protected <T> Texecute(JPAOAuthDataProvider.EntityManagerOperation<T> operation)protected <T> TexecuteInTransaction(JPAOAuthDataProvider.EntityManagerOperation<T> operation)protected voidflushIfNeeded(javax.persistence.EntityManager em)Flush the current transaction.ServerAccessTokengetAccessToken(String accessToken)Get access tokenList<ServerAccessToken>getAccessTokens(Client c, UserSubject sub)Return all access tokens associated with a given clientList<Client>getClients(UserSubject resourceOwner)Get a list of clients registered by a resource owner.protected javax.persistence.TypedQuery<Client>getClientsQuery(UserSubject resourceOwnerSubject, javax.persistence.EntityManager entityManager)protected javax.persistence.EntityManagergetEntityManager()Returns the entityManaged used for the current operation.protected RefreshTokengetRefreshToken(String refreshTokenKey)List<RefreshToken>getRefreshTokens(Client c, UserSubject sub)Return all refresh tokens associated with a given clientprotected javax.persistence.TypedQuery<RefreshToken>getRefreshTokensQuery(Client c, UserSubject resourceOwnerSubject, javax.persistence.EntityManager entityManager)protected javax.persistence.TypedQuery<BearerAccessToken>getTokensQuery(Client c, UserSubject resourceOwnerSubject, javax.persistence.EntityManager entityManager)protected voidlinkRefreshTokenToAccessToken(RefreshToken rt, ServerAccessToken at)protected voidpersistEntity(Object entity)protected voidremoveEntity(Object entity)protected voidsaveAccessToken(ServerAccessToken serverToken)protected voidsaveRefreshToken(RefreshToken refreshToken)voidsetClient(Client client)Set a ClientvoidsetEntityManagerFactory(javax.persistence.EntityManagerFactory emf)-
Methods inherited from class org.apache.cxf.rs.security.oauth2.provider.AbstractOAuthDataProvider
authenticateUnregisteredClient, checkRequestedScopes, close, convertScopeToPermissions, convertSingleScopeToPermission, convertToJWTAccessToken, createAccessToken, createClientCredentialsClient, createJwtAccessToken, createNewAccessToken, createNewRefreshToken, doCreateAccessToken, doCreateNewRefreshToken, doRefreshAccessToken, getClient, getCurrentClientSecret, getCurrentRequestedGrantType, getCurrentTokenRequestParams, getDefaultScopes, getInvisibleToClientScopes, getIssuer, getJwtAccessTokenClaimMap, getJwtAccessTokenProducer, getMessageContext, getPermissionMap, getPreauthorizedToken, getRequiredScopes, handleLinkedRefreshToken, init, isClientMatched, isPersistJwtEncoding, isRecycleRefreshTokens, isRefreshTokenSupported, isSupportPreauthorizedTokens, isTokenMatched, isUseJwtFormatForAccessTokens, linkAccessTokenToRefreshToken, processJwtAccessToken, refreshAccessToken, removeClient, removeClientTokens, revokeAccessToken, revokeAccessTokens, revokeRefreshToken, revokeToken, setAccessTokenLifetime, setAuthenticationStrategy, setClients, setDefaultScopes, setInvisibleToClientScopes, setIssuer, setJwtAccessTokenClaimMap, setJwtAccessTokenProducer, setMessageContext, setPermissionMap, setPersistJwtEncoding, setRecycleRefreshTokens, setRefreshTokenLifetime, setRequiredScopes, setSupportedScopes, setSupportPreauthorizedTokens, setUseJwtFormatForAccessTokens, unlinkRefreshAccessToken, updateExistingRefreshToken, updateRefreshToken
-
-
-
-
Method Detail
-
setEntityManagerFactory
public void setEntityManagerFactory(javax.persistence.EntityManagerFactory emf)
-
doGetClient
public Client doGetClient(String clientId) throws OAuthServiceException
- Specified by:
doGetClientin classAbstractOAuthDataProvider- Throws:
OAuthServiceException
-
execute
protected <T> T execute(JPAOAuthDataProvider.EntityManagerOperation<T> operation)
-
executeInTransaction
protected <T> T executeInTransaction(JPAOAuthDataProvider.EntityManagerOperation<T> operation)
-
setClient
public void setClient(Client client)
Description copied from interface:ClientRegistrationProviderSet a Client- Parameters:
client- the client
-
doRemoveClient
protected void doRemoveClient(Client c)
- Specified by:
doRemoveClientin classAbstractOAuthDataProvider
-
getClients
public List<Client> getClients(UserSubject resourceOwner)
Description copied from interface:ClientRegistrationProviderGet a list of clients registered by a resource owner.- Parameters:
resourceOwner- the resource owner, can be null- Returns:
- the list of clients
-
getAccessTokens
public List<ServerAccessToken> getAccessTokens(Client c, UserSubject sub)
Description copied from interface:OAuthDataProviderReturn all access tokens associated with a given client- Parameters:
c- the clientsub- the user subject, can be null- Returns:
- list of access tokens
-
getRefreshTokens
public List<RefreshToken> getRefreshTokens(Client c, UserSubject sub)
Description copied from interface:OAuthDataProviderReturn all refresh tokens associated with a given client- Parameters:
c- the clientsub- the user subject, can be null- Returns:
- list of refresh tokens
-
getAccessToken
public ServerAccessToken getAccessToken(String accessToken) throws OAuthServiceException
Description copied from interface:OAuthDataProviderGet access token- Parameters:
accessToken- the token key- Returns:
- AccessToken
- Throws:
OAuthServiceException
-
doRevokeAccessToken
protected void doRevokeAccessToken(ServerAccessToken at)
- Specified by:
doRevokeAccessTokenin classAbstractOAuthDataProvider
-
linkRefreshTokenToAccessToken
protected void linkRefreshTokenToAccessToken(RefreshToken rt, ServerAccessToken at)
- Overrides:
linkRefreshTokenToAccessTokenin classAbstractOAuthDataProvider
-
getRefreshToken
protected RefreshToken getRefreshToken(String refreshTokenKey)
- Specified by:
getRefreshTokenin classAbstractOAuthDataProvider
-
doRevokeRefreshToken
protected void doRevokeRefreshToken(RefreshToken rt)
- Specified by:
doRevokeRefreshTokenin classAbstractOAuthDataProvider
-
doCreateAccessToken
protected ServerAccessToken doCreateAccessToken(AccessTokenRegistration atReg)
- Overrides:
doCreateAccessTokenin classAbstractOAuthDataProvider
-
saveAccessToken
protected void saveAccessToken(ServerAccessToken serverToken)
- Specified by:
saveAccessTokenin classAbstractOAuthDataProvider
-
saveRefreshToken
protected void saveRefreshToken(RefreshToken refreshToken)
- Specified by:
saveRefreshTokenin classAbstractOAuthDataProvider
-
persistEntity
protected void persistEntity(Object entity)
-
removeEntity
protected void removeEntity(Object entity)
-
getClientsQuery
protected javax.persistence.TypedQuery<Client> getClientsQuery(UserSubject resourceOwnerSubject, javax.persistence.EntityManager entityManager)
-
getTokensQuery
protected javax.persistence.TypedQuery<BearerAccessToken> getTokensQuery(Client c, UserSubject resourceOwnerSubject, javax.persistence.EntityManager entityManager)
-
getRefreshTokensQuery
protected javax.persistence.TypedQuery<RefreshToken> getRefreshTokensQuery(Client c, UserSubject resourceOwnerSubject, javax.persistence.EntityManager entityManager)
-
getEntityManager
protected javax.persistence.EntityManager getEntityManager()
Returns the entityManaged used for the current operation.
-
beginIfNeeded
protected javax.persistence.EntityTransaction beginIfNeeded(javax.persistence.EntityManager em)
Begins the current transaction. This method needs to be overridden in a CMT environment.
-
flushIfNeeded
protected void flushIfNeeded(javax.persistence.EntityManager em)
Flush the current transaction.
-
commitIfNeeded
protected void commitIfNeeded(javax.persistence.EntityManager em)
Commits the current transaction. This method needs to be overridden in a CMT environment.
-
closeIfNeeded
protected void closeIfNeeded(javax.persistence.EntityManager em)
Closes the current em. This method needs to be overriden in a CMT environment.
-
-