Class OAuth2IdentityProvider
- All Implemented Interfaces:
ReadOnlyIdentityProvider
,WritableIdentityProvider
,Session
DbIdentityServiceProvider
if the Spring security context doesn't contain an authenticated user.
Since the fallback DbIdentityServiceProvider
is a writeable provider
this class is also writeable but with OAuth2 authentication it works effectively as a read-only provider.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
static class
static class
-
Field Summary
Fields inherited from class org.camunda.bpm.engine.impl.identity.db.DbIdentityServiceProvider
LOG
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
checkPassword
(String userId, String password) void
close()
createGroupQuery
(CommandContext commandContext) createMembership
(String userId, String groupId) Creates a membership relation between a user and a group.Creates aNativeUserQuery
that allows to select users with native queries.createNewGroup
(String groupId) Returns a new (transient)Group
object.createNewTenant
(String tenantId) Returns a new (transient)Tenant
object.createNewUser
(String userId) Returns a new (transient)User
object.createTenantGroupMembership
(String tenantId, String groupId) Creates a membership relation between a tenant and a group.createTenantQuery
(CommandContext commandContext) createTenantUserMembership
(String tenantId, String userId) Creates a membership relation between a tenant and a user.createUserQuery
(CommandContext commandContext) deleteGroup
(String groupId) Allows deleting a persistentGroup
object.deleteMembership
(String userId, String groupId) Deletes a membership relation between a user and a group.deleteTenant
(String tenantId) Allows deleting a persistentTenant
object.deleteTenantGroupMembership
(String tenantId, String groupId) Deletes a membership relation between a tenant and a group.deleteTenantUserMembership
(String tenantId, String userId) Deletes a membership relation between a tenant and a user.deleteUser
(String userId) Allows deleting a persistentUser
object.findGroupById
(String groupId) findTenantById
(String tenantId) findUserById
(String userId) void
flush()
protected static boolean
nullOrContainsIgnoreCase
(String searchLike, String value) Allows saving aGroup
object which is not yet persistent.saveTenant
(Tenant tenant) Allows saving aTenant
object which is not yet persistent.Allows saving or updates aUser
objectprotected boolean
protected static UserEntity
unlockUser
(String userId) Allows unlocking aUser
object.protected static void
protected static void
Methods inherited from class org.camunda.bpm.engine.impl.identity.db.DbIdentityServiceProvider
createDefaultAuthorizations, createDefaultAuthorizations, createDefaultAuthorizations, createDefaultMembershipAuthorizations, createDefaultTenantMembershipAuthorizations, createDefaultTenantMembershipAuthorizations, deleteMembershipsByGroupId, deleteMembershipsByUserId, deleteTenantMembershipsOfGroup, deleteTenantMembershipsOfTenant, deleteTenantMembershipsOfUser, isUserLocked, lockUser, unlockUser
Methods inherited from class org.camunda.bpm.engine.impl.identity.db.DbReadOnlyIdentityServiceProvider
checkAuthorization, configureQuery, existsMembership, existsTenantMembership, findGroupByQueryCriteria, findGroupCountByQueryCriteria, findTenantByQueryCriteria, findTenantCountByQueryCriteria, findUserByNativeQuery, findUserByQueryCriteria, findUserCountByNativeQuery, findUserCountByQueryCriteria, matchPassword
Methods inherited from class org.camunda.bpm.engine.impl.persistence.AbstractManager
delete, deleteAuthorizations, deleteAuthorizationsForGroup, deleteAuthorizationsForUser, deleteDefaultAuthorizations, getAttachmentManager, getAuthorizationManager, getBatchManager, getByteArrayManager, getCamundaFormDefinitionManager, getCaseDefinitionManager, getCaseExecutionManager, getCaseInstanceManager, getCommandContext, getCurrentAuthentication, getDbEntityManager, getDbSqlSession, getDecisionDefinitionManager, getDecisionRequirementsDefinitionManager, getDeploymentManager, getEventSubscriptionManager, getHistoricActivityInstanceManager, getHistoricBatchManager, getHistoricCaseActivityInstanceManager, getHistoricCaseInstanceManager, getHistoricDecisionInstanceManager, getHistoricDetailManager, getHistoricExternalTaskLogManager, getHistoricIdentityLinkManager, getHistoricIncidentManager, getHistoricJobLogManager, getHistoricProcessInstanceManager, getHistoricReportManager, getHistoricTaskInstanceManager, getHistoricVariableInstanceManager, getIdentityInfoManager, getIdentityLinkManager, getJobDefinitionManager, getJobManager, getProcessDefinitionManager, getProcessInstanceManager, getResourceAuthorizationProvider, getResourceManager, getSession, getTaskManager, getTaskReportManager, getTenantManager, getUserOperationLogManager, getVariableInstanceManager, insert, isAuthorizationEnabled, saveDefaultAuthorizations
-
Constructor Details
-
OAuth2IdentityProvider
public OAuth2IdentityProvider()
-
-
Method Details
-
unsupportedOperationForOAuth2
protected static void unsupportedOperationForOAuth2() -
unsupportedFilterForOAuth2
protected static void unsupportedFilterForOAuth2() -
nullOrContainsIgnoreCase
- Parameters:
searchLike
- the like value to search forvalue
- the actual user attribute value- Returns:
- true if either values are
null
or ifvalue
containssearchLike
(case-insensitive)
-
springSecurityAuthentication
protected boolean springSecurityAuthentication()- Returns:
- true if user is authenticated in Spring security context
-
transformUser
-
transformGroups
-
findUserById
- Specified by:
findUserById
in interfaceReadOnlyIdentityProvider
- Overrides:
findUserById
in classDbReadOnlyIdentityServiceProvider
- Returns:
- a
User
object for the given user id or null if no such user exists.
-
createUserQuery
- Specified by:
createUserQuery
in interfaceReadOnlyIdentityProvider
- Overrides:
createUserQuery
in classDbReadOnlyIdentityServiceProvider
- Returns:
- a
UserQuery
object which can be used for querying for users.
-
createUserQuery
- Specified by:
createUserQuery
in interfaceReadOnlyIdentityProvider
- Overrides:
createUserQuery
in classDbReadOnlyIdentityServiceProvider
- Returns:
- a
UserQuery
object which can be used in the current command context
-
createNativeUserQuery
Description copied from interface:ReadOnlyIdentityProvider
Creates aNativeUserQuery
that allows to select users with native queries.- Specified by:
createNativeUserQuery
in interfaceReadOnlyIdentityProvider
- Overrides:
createNativeUserQuery
in classDbReadOnlyIdentityServiceProvider
- Returns:
- NativeUserQuery
-
checkPassword
- Specified by:
checkPassword
in interfaceReadOnlyIdentityProvider
- Overrides:
checkPassword
in classDbIdentityServiceProvider
- Returns:
- 'true' if the password matches the
-
findGroupById
- Specified by:
findGroupById
in interfaceReadOnlyIdentityProvider
- Overrides:
findGroupById
in classDbReadOnlyIdentityServiceProvider
- Returns:
- a
Group
object for the given group id or null if no such group exists.
-
createGroupQuery
- Specified by:
createGroupQuery
in interfaceReadOnlyIdentityProvider
- Overrides:
createGroupQuery
in classDbReadOnlyIdentityServiceProvider
- Returns:
- a
GroupQuery
object which can be used for querying for groups.
-
createGroupQuery
- Specified by:
createGroupQuery
in interfaceReadOnlyIdentityProvider
- Overrides:
createGroupQuery
in classDbReadOnlyIdentityServiceProvider
- Returns:
- a
GroupQuery
object which can be used for querying for groups and can be reused in the current command context.
-
findTenantById
- Specified by:
findTenantById
in interfaceReadOnlyIdentityProvider
- Overrides:
findTenantById
in classDbReadOnlyIdentityServiceProvider
- Returns:
- a
Tenant
object for the given id or null if no such tenant exists.
-
createTenantQuery
- Specified by:
createTenantQuery
in interfaceReadOnlyIdentityProvider
- Overrides:
createTenantQuery
in classDbReadOnlyIdentityServiceProvider
- Returns:
- a
TenantQuery
object which can be used for querying for tenants.
-
createTenantQuery
- Specified by:
createTenantQuery
in interfaceReadOnlyIdentityProvider
- Overrides:
createTenantQuery
in classDbReadOnlyIdentityServiceProvider
- Returns:
- a
TenantQuery
object which can be used for querying for tenants and can be reused in the current command context.
-
flush
public void flush()- Specified by:
flush
in interfaceSession
- Overrides:
flush
in classAbstractManager
-
close
public void close()- Specified by:
close
in interfaceSession
- Overrides:
close
in classAbstractManager
-
createNewUser
Description copied from interface:WritableIdentityProvider
Returns a new (transient)
User
object. The Object is not yet persistent and must be saved using theWritableIdentityProvider.saveUser(User)
method.NOTE: the implementation does not validate the uniqueness of the userId parameter at this time.
- Specified by:
createNewUser
in interfaceWritableIdentityProvider
- Overrides:
createNewUser
in classDbIdentityServiceProvider
- Returns:
- an non-persistent user object.
-
saveUser
Description copied from interface:WritableIdentityProvider
Allows saving or updates aUser
object- Specified by:
saveUser
in interfaceWritableIdentityProvider
- Overrides:
saveUser
in classDbIdentityServiceProvider
- Parameters:
user
- a User object.- Returns:
- the operation result object.
-
deleteUser
Description copied from interface:WritableIdentityProvider
Allows deleting a persistentUser
object.- Specified by:
deleteUser
in interfaceWritableIdentityProvider
- Overrides:
deleteUser
in classDbIdentityServiceProvider
- Returns:
- the operation result object.
-
unlockUser
Description copied from interface:WritableIdentityProvider
Allows unlocking aUser
object.- Specified by:
unlockUser
in interfaceWritableIdentityProvider
- Overrides:
unlockUser
in classDbIdentityServiceProvider
- Parameters:
userId
- the id of the User object to delete.- Returns:
- the operation result object.
-
createNewGroup
Description copied from interface:WritableIdentityProvider
Returns a new (transient)
Group
object. The Object is not yet persistent and must be saved using theWritableIdentityProvider.saveGroup(Group)
method.NOTE: the implementation does not validate the uniqueness of the groupId parameter at this time.
- Specified by:
createNewGroup
in interfaceWritableIdentityProvider
- Overrides:
createNewGroup
in classDbIdentityServiceProvider
- Returns:
- an non-persistent group object.
-
saveGroup
Description copied from interface:WritableIdentityProvider
Allows saving aGroup
object which is not yet persistent.- Specified by:
saveGroup
in interfaceWritableIdentityProvider
- Overrides:
saveGroup
in classDbIdentityServiceProvider
- Parameters:
group
- a group object.- Returns:
- the operation result object.
-
deleteGroup
Description copied from interface:WritableIdentityProvider
Allows deleting a persistentGroup
object.- Specified by:
deleteGroup
in interfaceWritableIdentityProvider
- Overrides:
deleteGroup
in classDbIdentityServiceProvider
- Parameters:
groupId
- the id of the group object to delete.- Returns:
- the operation result object.
-
createNewTenant
Description copied from interface:WritableIdentityProvider
Returns a new (transient)
Tenant
object. The Object is not yet persistent and must be saved using theWritableIdentityProvider.saveTenant(Tenant)
method.NOTE: the implementation does not validate the uniqueness of the tenantId parameter at this time.
- Specified by:
createNewTenant
in interfaceWritableIdentityProvider
- Overrides:
createNewTenant
in classDbIdentityServiceProvider
- Parameters:
tenantId
- the id of the new tenant- Returns:
- an non-persistent tenant object.
-
saveTenant
Description copied from interface:WritableIdentityProvider
Allows saving aTenant
object which is not yet persistent.- Specified by:
saveTenant
in interfaceWritableIdentityProvider
- Overrides:
saveTenant
in classDbIdentityServiceProvider
- Parameters:
tenant
- the tenant object to save.- Returns:
- the operation result object.
-
deleteTenant
Description copied from interface:WritableIdentityProvider
Allows deleting a persistentTenant
object.- Specified by:
deleteTenant
in interfaceWritableIdentityProvider
- Overrides:
deleteTenant
in classDbIdentityServiceProvider
- Parameters:
tenantId
- the id of the tenant object to delete.- Returns:
- the operation result object.
-
createMembership
Description copied from interface:WritableIdentityProvider
Creates a membership relation between a user and a group. If the user is already part of that group, IdentityProviderException is thrown.- Specified by:
createMembership
in interfaceWritableIdentityProvider
- Overrides:
createMembership
in classDbIdentityServiceProvider
- Parameters:
userId
- the id of the usergroupId
- id of the group- Returns:
- the operation result object.
-
deleteMembership
Description copied from interface:WritableIdentityProvider
Deletes a membership relation between a user and a group.- Specified by:
deleteMembership
in interfaceWritableIdentityProvider
- Overrides:
deleteMembership
in classDbIdentityServiceProvider
- Parameters:
userId
- the id of the usergroupId
- id of the group- Returns:
- the operation result object.
-
createTenantUserMembership
Description copied from interface:WritableIdentityProvider
Creates a membership relation between a tenant and a user.- Specified by:
createTenantUserMembership
in interfaceWritableIdentityProvider
- Overrides:
createTenantUserMembership
in classDbIdentityServiceProvider
- Parameters:
tenantId
- the id of the tenantuserId
- the id of the user- Returns:
- the operation result object.
-
createTenantGroupMembership
Description copied from interface:WritableIdentityProvider
Creates a membership relation between a tenant and a group.- Specified by:
createTenantGroupMembership
in interfaceWritableIdentityProvider
- Overrides:
createTenantGroupMembership
in classDbIdentityServiceProvider
- Parameters:
tenantId
- the id of the tenantgroupId
- the id of the group- Returns:
- the operation result object.
-
deleteTenantUserMembership
Description copied from interface:WritableIdentityProvider
Deletes a membership relation between a tenant and a user.- Specified by:
deleteTenantUserMembership
in interfaceWritableIdentityProvider
- Overrides:
deleteTenantUserMembership
in classDbIdentityServiceProvider
- Parameters:
tenantId
- the id of the tenantuserId
- the id of the user- Returns:
- the operation result object
-
deleteTenantGroupMembership
Description copied from interface:WritableIdentityProvider
Deletes a membership relation between a tenant and a group.- Specified by:
deleteTenantGroupMembership
in interfaceWritableIdentityProvider
- Overrides:
deleteTenantGroupMembership
in classDbIdentityServiceProvider
- Parameters:
tenantId
- the id of the tenantgroupId
- the id of the group- Returns:
- the operation result object.
-