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
public class JPACMTCodeDataProvider extends JPACodeDataProvider
Same asJPACodeDataProvider(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:
You can also extend this class and inject your own entityManager: {@code public class MyJPACodeDataProvider extends JPACMTCodeDataProvider {<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> ...
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.cxf.rs.security.oauth2.provider.JPAOAuthDataProvider
JPAOAuthDataProvider.EntityManagerOperation<T>
-
-
Constructor Summary
Constructors Constructor Description JPACMTCodeDataProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected javax.persistence.EntityTransactionbeginIfNeeded(javax.persistence.EntityManager em)Doesn't do anything, beginning tx is handled by container.protected voidcloseIfNeeded(javax.persistence.EntityManager em)Doesn't do anything, em lifecycle is handled by container.protected voidcommitIfNeeded(javax.persistence.EntityManager em)Doesn't do anything, commit is handled by container.protected javax.persistence.EntityManagergetEntityManager()Returns the entityManaged used for the current operation.protected voidlockRefreshTokenForUpdate(RefreshToken refreshToken)voidsetEntityManager(javax.persistence.EntityManager entityManager)voidsetPessimisticLockTimeout(int pessimisticLockTimeout)voidsetUseJpaLockForExistingRefreshToken(boolean useJpaLockForExistingRefreshToken)protected RefreshTokenupdateExistingRefreshToken(RefreshToken rt, ServerAccessToken at)-
Methods inherited from class org.apache.cxf.rs.security.oauth2.grants.code.JPACodeDataProvider
createCodeGrant, doCreateCodeGrant, doRemoveClient, getCodeGrants, getCodesQuery, removeClientCodeGrants, removeClientCodeGrants, removeCodeGrant, saveCodeGrant, setCodeLifetime
-
Methods 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, setEntityManagerFactory
-
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, updateRefreshToken
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.cxf.rs.security.oauth2.provider.OAuthDataProvider
convertScopeToPermissions, createAccessToken, getAccessToken, getAccessTokens, getClient, getPreauthorizedToken, getRefreshTokens, refreshAccessToken, revokeToken
-
-
-
-
Method Detail
-
getEntityManager
protected javax.persistence.EntityManager getEntityManager()
Returns the entityManaged used for the current operation.- Overrides:
getEntityManagerin classJPAOAuthDataProvider
-
setEntityManager
public void setEntityManager(javax.persistence.EntityManager entityManager)
-
beginIfNeeded
protected javax.persistence.EntityTransaction beginIfNeeded(javax.persistence.EntityManager em)
Doesn't do anything, beginning tx is handled by container.- Overrides:
beginIfNeededin classJPAOAuthDataProvider
-
commitIfNeeded
protected void commitIfNeeded(javax.persistence.EntityManager em)
Doesn't do anything, commit is handled by container.- Overrides:
commitIfNeededin classJPAOAuthDataProvider
-
closeIfNeeded
protected void closeIfNeeded(javax.persistence.EntityManager em)
Doesn't do anything, em lifecycle is handled by container.- Overrides:
closeIfNeededin classJPAOAuthDataProvider
-
updateExistingRefreshToken
protected RefreshToken updateExistingRefreshToken(RefreshToken rt, ServerAccessToken at)
- Overrides:
updateExistingRefreshTokenin classAbstractOAuthDataProvider
-
lockRefreshTokenForUpdate
protected void lockRefreshTokenForUpdate(RefreshToken refreshToken)
-
setPessimisticLockTimeout
public void setPessimisticLockTimeout(int pessimisticLockTimeout)
-
setUseJpaLockForExistingRefreshToken
public void setUseJpaLockForExistingRefreshToken(boolean useJpaLockForExistingRefreshToken)
-
-