use of com.bakdata.conquery.models.auth.entities.User in project conquery by bakdata.
the class UserAuthenticationManagementProcessor method updateUser.
public boolean updateUser(ProtoUser pUser) {
final User user = pUser.createOrOverwriteUser(storage);
AuthorizationHelper.registerForAuthentication(realm, user, pUser.getCredentials(), false);
return true;
}
use of com.bakdata.conquery.models.auth.entities.User in project conquery by bakdata.
the class ApiTokenRealm method doGetAuthenticationInfo.
@Override
public ConqueryAuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
if (!(token instanceof ApiToken)) {
return null;
}
final ApiToken apiToken = ((ApiToken) token);
ApiTokenHash tokenHash = apiToken.hashToken();
// Clear the token
apiToken.clear();
ApiTokenData tokenData = tokenStorage.get(tokenHash);
if (tokenData == null) {
log.trace("Unknown token, cannot map token hash to token data. Aborting authentication");
throw new IncorrectCredentialsException();
}
if (LocalDate.now().isAfter(tokenData.getExpirationDate())) {
log.info("Supplied token expired on: {}", tokenData.getExpirationDate());
throw new ExpiredCredentialsException("Supplied token is expired");
}
final ApiTokenData.MetaData metaData = new ApiTokenData.MetaData(LocalDate.now());
tokenStorage.updateMetaData(tokenData.getId(), metaData);
final UserId userId = tokenData.getUserId();
final User user = storage.getUser(userId);
if (user == null) {
throw new UnknownAccountException("The UserId does not map to a user: " + userId);
}
return new ConqueryAuthenticationInfo(new TokenScopedUser(user, tokenData), token, this, false);
}
use of com.bakdata.conquery.models.auth.entities.User in project conquery by bakdata.
the class DefaultInitialUserRealm method doGetAuthenticationInfo.
@Override
public ConqueryAuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
if (!(token instanceof DevelopmentToken)) {
return null;
}
DevelopmentToken devToken = (DevelopmentToken) token;
final User user = getUserOrThrowUnknownAccount(storage, devToken.getPrincipal());
return new ConqueryAuthenticationInfo(user, devToken.getCredentials(), this, true);
}
use of com.bakdata.conquery.models.auth.entities.User in project conquery by bakdata.
the class DevAuthConfig method createRealm.
@Override
public ConqueryAuthenticationRealm createRealm(ManagerNode managerNode) {
User defaultUser = managerNode.getConfig().getAuthorizationRealms().getInitialUsers().get(0).createOrOverwriteUser(managerNode.getStorage());
managerNode.getAuthController().getAuthenticationFilter().registerTokenExtractor(new UserIdTokenExtractor(defaultUser));
return new DefaultInitialUserRealm(managerNode.getStorage());
}
use of com.bakdata.conquery.models.auth.entities.User in project conquery by bakdata.
the class SerializingStoreDumpTest method testCorruptValueDump.
/**
* Tests if entries with corrupted values are dumped.
*/
@Test
public void testCorruptValueDump() throws IOException {
// Set dump directory to this tests temp-dir
config.setUnreadableDataDumpDirectory(tmpDir);
{
// Open a store and insert a valid key-value pair (UserId & User)
SerializingStore<UserId, User> store = createSerializedStore(config, env, Validators.newValidator(), USER_STORE_ID);
store.add(user.getId(), user);
}
{
// Open that store again, with a different config to insert a corrupt entry
// (UserId & ManagedQuery)
SerializingStore<UserId, QueryDescription> store = createSerializedStore(config, env, Validators.newValidator(), new StoreInfo<>(USER_STORE_ID.getName(), UserId.class, QueryDescription.class));
store.add(new UserId("testU2"), cQuery);
}
{
// Reopen the store with the initial value and try to iterate over all entries
// (this triggers the dump or removal of invalid entries)
SerializingStore<UserId, User> store = createSerializedStore(config, env, Validators.newValidator(), USER_STORE_ID);
IterationStatistic expectedResult = new IterationStatistic();
expectedResult.setTotalProcessed(2);
expectedResult.setFailedKeys(0);
expectedResult.setFailedValues(1);
// Iterate (do nothing with the entries themselves)
IterationStatistic result = store.forEach((k, v, s) -> {
});
assertThat(result).isEqualTo(expectedResult);
}
// Test if the correct number of dumpfiles was generated
Condition<File> dumpFileCond = new Condition<>(f -> f.getName().endsWith(SerializingStore.DUMP_FILE_EXTENTION), "dump file");
assertThat(tmpDir.listFiles()).areExactly(1, dumpFileCond);
// Test if the dump is correct
File dumpFile = getDumpFile(dumpFileCond);
assertThat((QueryDescription) Jackson.MAPPER.readerFor(QueryDescription.class).readValue(dumpFile)).isEqualTo(cQuery);
}
Aggregations