Class JPACMTCodeDataProvider
java.lang.Object
org.apache.cxf.rs.security.oauth2.provider.AbstractOAuthDataProvider
org.apache.cxf.rs.security.oauth2.provider.JPAOAuthDataProvider
org.apache.cxf.rs.security.oauth2.grants.code.JPACodeDataProvider
org.apache.cxf.rs.security.oauth2.grants.code.JPACMTCodeDataProvider
- All Implemented Interfaces:
AuthorizationCodeDataProvider,ClientRegistrationProvider,OAuthDataProvider
Same as
JPACodeDataProvider (stores Clients and tokens in a rdbms using
JPA APIs).
The transaction demarcation is handled by the container (be it Spring
or Java EE).
Sample usage with Spring XML:
<bean id="oauthProvider" class="org.apache.cxf.rs.security.oauth2.grants.code.JPACMTCodeDataProvider"
init-method="init" destroy-method="close">
<property name="entityManager" ref="entityManager"/>
<!-- List of accepted scopes -->
<property name="supportedScopes" ref="supportedScopes"/>
<!-- List of required scopes -->
<!-- commented because bug in Resource Owner Flow
<property name="requiredScopes" ref="coreScopes"/>
-->
<!--
List of scopes that the consent/authorization form should make
selected by default. For example, asking a user to do an extra click
to approve an "oidc" scope is a redundant operation because this scope
is required anyway.
-->
<property name="defaultScopes" ref="coreScopes"/>
<property name="invisibleToClientScopes" ref="invisibleToClientScopes"/>
</bean>
<bean name="entityManager" class="org.springframework.orm.jpa.support.SharedEntityManagerBean">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
...
You can also extend this class and inject your own entityManager:
public class MyJPACodeDataProvider extends JPACMTCodeDataProvider {
@PersistenceContext
@Override
public void setEntityManager(EntityManager entityManager) {
super.setEntityManager(entityManager);
}
}
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.cxf.rs.security.oauth2.provider.JPAOAuthDataProvider
JPAOAuthDataProvider.EntityManagerOperation<T> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected jakarta.persistence.EntityTransactionbeginIfNeeded(jakarta.persistence.EntityManager em) Doesn't do anything, beginning tx is handled by container.protected voidcloseIfNeeded(jakarta.persistence.EntityManager em) Doesn't do anything, em lifecycle is handled by container.protected voidcommitIfNeeded(jakarta.persistence.EntityManager em) Doesn't do anything, commit is handled by container.protected jakarta.persistence.EntityManagerReturns the entityManaged used for the current operation.protected voidlockRefreshTokenForUpdate(RefreshToken refreshToken) voidsetEntityManager(jakarta.persistence.EntityManager entityManager) voidsetPessimisticLockTimeout(int pessimisticLockTimeout) voidsetUseJpaLockForExistingRefreshToken(boolean useJpaLockForExistingRefreshToken) protected RefreshTokenMethods inherited from class org.apache.cxf.rs.security.oauth2.grants.code.JPACodeDataProvider
createCodeGrant, doCreateCodeGrant, doRemoveClient, getCodeGrants, getCodesQuery, removeClientCodeGrants, removeClientCodeGrants, removeCodeGrant, saveCodeGrant, setCodeLifetimeMethods inherited from class org.apache.cxf.rs.security.oauth2.provider.JPAOAuthDataProvider
doCreateAccessToken, doGetClient, doRevokeAccessToken, doRevokeRefreshToken, execute, executeInTransaction, flushIfNeeded, getAccessToken, getAccessTokens, getClients, getClientsQuery, getRefreshToken, getRefreshTokens, getRefreshTokensQuery, getTokensQuery, linkRefreshTokenToAccessToken, persistEntity, removeEntity, saveAccessToken, saveRefreshToken, setClient, setEntityManagerFactoryMethods 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, updateRefreshTokenMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.cxf.rs.security.oauth2.provider.OAuthDataProvider
convertScopeToPermissions, createAccessToken, getAccessToken, getAccessTokens, getClient, getPreauthorizedToken, getRefreshTokens, refreshAccessToken, revokeToken
-
Constructor Details
-
JPACMTCodeDataProvider
public JPACMTCodeDataProvider()
-
-
Method Details
-
getEntityManager
protected jakarta.persistence.EntityManager getEntityManager()Returns the entityManaged used for the current operation.- Overrides:
getEntityManagerin classJPAOAuthDataProvider
-
setEntityManager
public void setEntityManager(jakarta.persistence.EntityManager entityManager) -
beginIfNeeded
protected jakarta.persistence.EntityTransaction beginIfNeeded(jakarta.persistence.EntityManager em) Doesn't do anything, beginning tx is handled by container.- Overrides:
beginIfNeededin classJPAOAuthDataProvider
-
commitIfNeeded
protected void commitIfNeeded(jakarta.persistence.EntityManager em) Doesn't do anything, commit is handled by container.- Overrides:
commitIfNeededin classJPAOAuthDataProvider
-
closeIfNeeded
protected void closeIfNeeded(jakarta.persistence.EntityManager em) Doesn't do anything, em lifecycle is handled by container.- Overrides:
closeIfNeededin classJPAOAuthDataProvider
-
updateExistingRefreshToken
- Overrides:
updateExistingRefreshTokenin classAbstractOAuthDataProvider
-
lockRefreshTokenForUpdate
-
setPessimisticLockTimeout
public void setPessimisticLockTimeout(int pessimisticLockTimeout) -
setUseJpaLockForExistingRefreshToken
public void setUseJpaLockForExistingRefreshToken(boolean useJpaLockForExistingRefreshToken)
-