use of com.bakdata.conquery.models.auth.entities.User in project conquery by bakdata.
the class FullExportForm method createSubQueries.
@Override
public Map<String, List<ManagedQuery>> createSubQueries(DatasetRegistry datasets, User user, Dataset submittedDataset) {
// Forms are sent as an array of standard queries containing AND/OR of CQConcepts, we ignore everything and just convert the CQConcepts into CQUnfiltered for export.
final List<CQUnfilteredTable> unfilteredTables = tables.stream().flatMap(Visitable::stream).filter(CQConcept.class::isInstance).map(CQConcept.class::cast).flatMap(concept -> concept.getTables().stream()).map(table -> new CQUnfilteredTable(table.getConnector(), table.getDateColumn())).collect(Collectors.toList());
final TableExportQuery exportQuery = new TableExportQuery(queryGroup.getQuery());
exportQuery.setDateRange(getDateRange());
exportQuery.setTables(unfilteredTables);
final ManagedQuery managedQuery = new ManagedQuery(exportQuery, user, submittedDataset);
return Map.of(ConqueryConstants.SINGLE_RESULT_TABLE_NAME, List.of(managedQuery));
}
use of com.bakdata.conquery.models.auth.entities.User in project conquery by bakdata.
the class ActiveUsersFilter method filter.
@Override
public void filter(ContainerRequestContext requestContext) {
final Principal userPrincipal = requestContext.getSecurityContext().getUserPrincipal();
if (!(userPrincipal instanceof User)) {
return;
}
final User user = (User) userPrincipal;
final Optional<Group> groupOptional = AuthorizationHelper.getPrimaryGroup(user, storage);
if (groupOptional.isEmpty()) {
log.trace("{} has no primary group", user);
return;
}
final Group group = groupOptional.get();
activeUsers.put(group, user, LocalDateTime.now());
final String metricName = MetricRegistry.name(USERS, group.getName(), ACTIVE);
// This does not register multiple gauges, but reuses them under the hood.
SharedMetricRegistries.getDefault().gauge(metricName, () -> activeUsersGauge(group));
}
use of com.bakdata.conquery.models.auth.entities.User in project conquery by bakdata.
the class UserAuthenticationManagementProcessor method tryRegister.
public boolean tryRegister(ProtoUser pUser) {
final UserId id = pUser.createId();
User user = storage.getUser(id);
if (user == null) {
log.warn("Unable to add new user {}. Probably already existed.", pUser);
return false;
}
log.trace("Added the user {} to the authorization storage", id);
if (AuthorizationHelper.registerForAuthentication(realm, user, pUser.getCredentials(), false)) {
log.trace("Added the user {} to the realm {}", id, realm.getName());
return true;
}
log.trace("Failed to add added the user {} to the realm {}", id, realm.getName());
return false;
}
use of com.bakdata.conquery.models.auth.entities.User in project conquery by bakdata.
the class IntrospectionDelegatingRealm method doGetAuthenticationInfo.
@Override
@SneakyThrows
public ConqueryAuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
if (!(TOKEN_CLASS.isAssignableFrom(token.getClass()))) {
log.trace("Incompatible token. Expected {}, got {}", TOKEN_CLASS, token.getClass());
return null;
}
log.trace("Token has expected format!");
TokenIntrospectionSuccessResponse successResponse = tokenCache.get((BearerToken) token);
log.trace("Got an successful token introspection response.");
UserId userId = extractId(successResponse);
User user = getUserOrThrowUnknownAccount(storage, userId);
return new ConqueryAuthenticationInfo(user, token, this, true);
}
use of com.bakdata.conquery.models.auth.entities.User in project conquery by bakdata.
the class ConqueryTokenRealm method doGetAuthenticationInfo.
@Override
public ConqueryAuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
if (!(TOKEN_CLASS.isAssignableFrom(token.getClass()))) {
log.trace("Incompatible token. Expected {}, got {}", TOKEN_CLASS, token.getClass());
return null;
}
log.trace("Token has expected format: {}\tWas: {} ", TOKEN_CLASS, token.getClass());
DecodedJWT decodedToken = null;
try {
decodedToken = jwtConfig.getTokenVerifier(this).verify((String) token.getCredentials());
} catch (TokenExpiredException e) {
log.trace("The provided token is expired.");
throw new ExpiredCredentialsException(e);
} catch (SignatureVerificationException | InvalidClaimException e) {
log.trace("The provided token was not successfully verified against its signature or claims.");
throw new IncorrectCredentialsException(e);
} catch (JWTVerificationException e) {
log.trace("The provided token could not be verified.", e);
throw new AuthenticationException(e);
} catch (Exception e) {
log.trace("Unable to decode token", e);
throw new AuthenticationException(e);
}
log.trace("Received valid token.");
String username = decodedToken.getSubject();
UserId userId = UserId.Parser.INSTANCE.parse(username);
final User user = getUserOrThrowUnknownAccount(storage, userId);
return new ConqueryAuthenticationInfo(user, token, this, true);
}
Aggregations