Package io.continual.iam.impl.s3
Class S3IamDb
- java.lang.Object
-
- io.continual.iam.impl.common.CommonJsonDb<CommonJsonIdentity,CommonJsonGroup>
-
- io.continual.iam.impl.s3.S3IamDb
-
- All Implemented Interfaces:
AccessDb<CommonJsonGroup>,AccessManager<CommonJsonGroup>,AclUpdateListener,IamDb<CommonJsonIdentity,CommonJsonGroup>,IdentityDb<CommonJsonIdentity>,IdentityManager<CommonJsonIdentity>,TagManager,io.continual.metrics.MetricsSupplier,Closeable,AutoCloseable
public class S3IamDb extends CommonJsonDb<CommonJsonIdentity,CommonJsonGroup>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classS3IamDb.Builder-
Nested classes/interfaces inherited from class io.continual.iam.impl.common.CommonJsonDb
CommonJsonDb.AclFactory
-
-
Field Summary
-
Fields inherited from class io.continual.iam.impl.common.CommonJsonDb
kAlias, kCreateTsMs, kEnabled, kExpireEpoch, kPasswordBlock, kPasswordHash, kPasswordSalt, kSecret, kTagId, kTagType, kTagType_PasswordReset, kUserId
-
Fields inherited from interface io.continual.iam.access.AccessDb
kCreateOperation, kDeleteOperation, kReadOperation, kWriteOperation
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedS3IamDb(String s3ApiKey, String s3PrivateKey, String bucket, String prefix, CommonJsonDb.AclFactory aclFactory, JwtProducer jwtIssuer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()protected org.json.JSONObjectcreateApiKeyObject(String userId, String apiKey, String apiSecret)protected org.json.JSONObjectcreateNewGroup(String id, String groupDesc)protected org.json.JSONObjectcreateNewUser(String id)protected voiddeleteAclObject(String id)protected voiddeleteAliasObject(String id)protected voiddeleteApiKeyObject(String id)protected voiddeleteGroupObject(String id)protected voiddeleteTagObject(String id, String userId, String appTagType)protected voiddeleteUserObject(String id)protected voidfindOrCreateBucket()List<String>findUsers(String startingWith)Collection<String>getAllGroups()Collection<String>getAllUsers()protected ApiKeyinstantiateApiKey(String id, org.json.JSONObject data)protected CommonJsonGroupinstantiateGroup(String id, org.json.JSONObject data)protected CommonJsonIdentityinstantiateIdentity(String id, org.json.JSONObject data)protected booleanisInvalidJwtToken(String token)protected org.json.JSONObjectloadAclObject(String id)protected Collection<String>loadAliasesForUser(String userId)protected org.json.JSONObjectloadAliasObject(String id)Map<String,CommonJsonIdentity>loadAllUsers()protected org.json.JSONObjectloadApiKeyObject(String id)protected Collection<String>loadApiKeysForUser(String userId)protected org.json.JSONObjectloadGroupObject(String id)protected org.json.JSONObjectloadTagObject(String id, boolean expiredOk)protected org.json.JSONObjectloadTagObject(String userId, String appTagType, boolean expiredOk)protected org.json.JSONObjectloadUserObject(String id)protected voidstoreAclObject(String id, org.json.JSONObject data)protected voidstoreAliasObject(String id, org.json.JSONObject aliasObject)protected voidstoreApiKeyObject(String id, org.json.JSONObject apiKeyObject)protected voidstoreGroupObject(String id, org.json.JSONObject data)protected voidstoreInvalidJwtToken(String token)protected voidstoreTagObject(String id, String userId, String appTagType, org.json.JSONObject data)protected voidstoreUserObject(String id, org.json.JSONObject data)voidsweepExpiredTags()-
Methods inherited from class io.continual.iam.impl.common.CommonJsonDb
addAlias, addJwtValidator, addUserToGroup, aliasExists, authenticate, authenticate, authenticate, canUser, completePasswordReset, createAnonymousUser, createApiKey, createGroup, createGroup, createJwtToken, createTag, createUser, deleteUser, generateKey, getAclFor, getAliasesFor, getAppNonce, getUserIdForTag, getUsersGroups, getUsersInGroup, invalidateJwtToken, loadApiKeyRecord, loadGroup, loadUser, loadUserOrAlias, onAclUpdate, populateMetrics, removeAlias, removeMatchingTag, removeUserFromGroup, restoreApiKey, userExists, userOrAliasExists
-
-
-
-
Constructor Detail
-
S3IamDb
protected S3IamDb(String s3ApiKey, String s3PrivateKey, String bucket, String prefix, CommonJsonDb.AclFactory aclFactory, JwtProducer jwtIssuer)
-
-
Method Detail
-
findOrCreateBucket
protected void findOrCreateBucket() throws IamSvcException- Throws:
IamSvcException
-
close
public void close()
-
loadAllUsers
public Map<String,CommonJsonIdentity> loadAllUsers() throws IamSvcException
- Throws:
IamSvcException
-
getAllUsers
public Collection<String> getAllUsers() throws IamSvcException
- Throws:
IamSvcException
-
getAllGroups
public Collection<String> getAllGroups() throws IamSvcException
- Throws:
IamSvcException
-
findUsers
public List<String> findUsers(String startingWith) throws IamSvcException
- Throws:
IamSvcException
-
sweepExpiredTags
public void sweepExpiredTags() throws IamSvcException- Throws:
IamSvcException
-
createNewUser
protected org.json.JSONObject createNewUser(String id)
- Specified by:
createNewUserin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>
-
loadUserObject
protected org.json.JSONObject loadUserObject(String id) throws IamSvcException
- Specified by:
loadUserObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcException
-
storeUserObject
protected void storeUserObject(String id, org.json.JSONObject data) throws IamSvcException
- Specified by:
storeUserObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcException
-
deleteUserObject
protected void deleteUserObject(String id) throws IamSvcException
- Specified by:
deleteUserObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcException
-
instantiateIdentity
protected CommonJsonIdentity instantiateIdentity(String id, org.json.JSONObject data)
- Specified by:
instantiateIdentityin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>
-
createNewGroup
protected org.json.JSONObject createNewGroup(String id, String groupDesc)
- Specified by:
createNewGroupin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>
-
loadGroupObject
protected org.json.JSONObject loadGroupObject(String id) throws IamSvcException
- Specified by:
loadGroupObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcException
-
storeGroupObject
protected void storeGroupObject(String id, org.json.JSONObject data) throws IamSvcException
- Specified by:
storeGroupObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcException
-
deleteGroupObject
protected void deleteGroupObject(String id) throws IamSvcException
- Specified by:
deleteGroupObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcException
-
instantiateGroup
protected CommonJsonGroup instantiateGroup(String id, org.json.JSONObject data)
- Specified by:
instantiateGroupin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>
-
createApiKeyObject
protected org.json.JSONObject createApiKeyObject(String userId, String apiKey, String apiSecret)
- Specified by:
createApiKeyObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>
-
loadApiKeyObject
protected org.json.JSONObject loadApiKeyObject(String id) throws IamSvcException
- Specified by:
loadApiKeyObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcException
-
storeApiKeyObject
protected void storeApiKeyObject(String id, org.json.JSONObject apiKeyObject) throws IamSvcException, IamBadRequestException
- Specified by:
storeApiKeyObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcExceptionIamBadRequestException
-
deleteApiKeyObject
protected void deleteApiKeyObject(String id) throws IamSvcException
- Specified by:
deleteApiKeyObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcException
-
instantiateApiKey
protected ApiKey instantiateApiKey(String id, org.json.JSONObject data)
- Specified by:
instantiateApiKeyin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>
-
loadApiKeysForUser
protected Collection<String> loadApiKeysForUser(String userId) throws IamSvcException, IamIdentityDoesNotExist
- Specified by:
loadApiKeysForUserin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcExceptionIamIdentityDoesNotExist
-
loadAclObject
protected org.json.JSONObject loadAclObject(String id) throws IamSvcException
- Specified by:
loadAclObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcException
-
storeAclObject
protected void storeAclObject(String id, org.json.JSONObject data) throws IamSvcException
- Specified by:
storeAclObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcException
-
deleteAclObject
protected void deleteAclObject(String id) throws IamSvcException
- Specified by:
deleteAclObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcException
-
loadTagObject
protected org.json.JSONObject loadTagObject(String id, boolean expiredOk) throws IamSvcException
- Specified by:
loadTagObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcException
-
loadTagObject
protected org.json.JSONObject loadTagObject(String userId, String appTagType, boolean expiredOk) throws IamSvcException
- Specified by:
loadTagObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcException
-
storeTagObject
protected void storeTagObject(String id, String userId, String appTagType, org.json.JSONObject data) throws IamSvcException
- Specified by:
storeTagObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcException
-
deleteTagObject
protected void deleteTagObject(String id, String userId, String appTagType) throws IamSvcException
- Specified by:
deleteTagObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcException
-
loadAliasObject
protected org.json.JSONObject loadAliasObject(String id) throws IamSvcException
- Specified by:
loadAliasObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcException
-
storeAliasObject
protected void storeAliasObject(String id, org.json.JSONObject aliasObject) throws IamSvcException, IamBadRequestException
- Specified by:
storeAliasObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcExceptionIamBadRequestException
-
deleteAliasObject
protected void deleteAliasObject(String id) throws IamSvcException
- Specified by:
deleteAliasObjectin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcException
-
loadAliasesForUser
protected Collection<String> loadAliasesForUser(String userId) throws IamSvcException, IamIdentityDoesNotExist
- Specified by:
loadAliasesForUserin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcExceptionIamIdentityDoesNotExist
-
storeInvalidJwtToken
protected void storeInvalidJwtToken(String token) throws IamSvcException
- Specified by:
storeInvalidJwtTokenin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcException
-
isInvalidJwtToken
protected boolean isInvalidJwtToken(String token) throws IamSvcException
- Specified by:
isInvalidJwtTokenin classCommonJsonDb<CommonJsonIdentity,CommonJsonGroup>- Throws:
IamSvcException
-
-