Fix Sonar cloud flagged issues (#4987)

This commit is contained in:
Suresh Srinivas 2022-05-16 17:32:15 -07:00 committed by GitHub
parent 0ba22c1d2f
commit 9cab223a6f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 15 additions and 40 deletions

View File

@ -763,7 +763,7 @@ public abstract class EntityRepository<T extends EntityInterface> {
from = toId; from = toId;
to = fromId; to = fromId;
} }
return daoCollection.relationshipDAO().insert(fromId, toId, fromEntity, toEntity, relationship.ordinal(), json); return daoCollection.relationshipDAO().insert(from, to, fromEntity, toEntity, relationship.ordinal(), json);
} }
public List<String> findBoth(UUID entity1, String entityType1, Relationship relationship, String entity2) { public List<String> findBoth(UUID entity1, String entityType1, Relationship relationship, String entity2) {

View File

@ -31,7 +31,6 @@ import java.util.UUID;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.openmetadata.catalog.Entity; import org.openmetadata.catalog.Entity;
import org.openmetadata.catalog.entity.data.MlModel; import org.openmetadata.catalog.entity.data.MlModel;
import org.openmetadata.catalog.jdbi3.EntityRepository.EntityUpdater;
import org.openmetadata.catalog.resources.mlmodels.MlModelResource; import org.openmetadata.catalog.resources.mlmodels.MlModelResource;
import org.openmetadata.catalog.type.EntityReference; import org.openmetadata.catalog.type.EntityReference;
import org.openmetadata.catalog.type.Include; import org.openmetadata.catalog.type.Include;

View File

@ -215,7 +215,7 @@ public class UserRepository extends EntityRepository<User> {
List<String> teamIds = findFrom(user.getId(), Entity.USER, Relationship.HAS, Entity.TEAM); List<String> teamIds = findFrom(user.getId(), Entity.USER, Relationship.HAS, Entity.TEAM);
List<EntityReference> teams = EntityUtil.populateEntityReferences(teamIds, Entity.TEAM); List<EntityReference> teams = EntityUtil.populateEntityReferences(teamIds, Entity.TEAM);
// return only the non-deleted teams // return only the non-deleted teams
return teams.stream().filter((team) -> !team.getDeleted()).collect(Collectors.toList()); return teams.stream().filter(team -> !team.getDeleted()).collect(Collectors.toList());
} }
private void assignRoles(User user, List<EntityReference> roles) { private void assignRoles(User user, List<EntityReference> roles) {

View File

@ -34,7 +34,7 @@ public abstract class EntityResource<T extends EntityInterface, K extends Entity
protected final Authorizer authorizer; protected final Authorizer authorizer;
private final boolean supportsOwner; private final boolean supportsOwner;
public EntityResource(Class<T> entityClass, K repository, Authorizer authorizer) { protected EntityResource(Class<T> entityClass, K repository, Authorizer authorizer) {
this.entityClass = entityClass; this.entityClass = entityClass;
allowedFields = Entity.getAllowedFields(entityClass); allowedFields = Entity.getAllowedFields(entityClass);
supportsOwner = allowedFields.contains(FIELD_OWNER); supportsOwner = allowedFields.contains(FIELD_OWNER);

View File

@ -17,7 +17,6 @@ import static org.openmetadata.catalog.security.SecurityUtil.ADMIN;
import static org.openmetadata.catalog.security.SecurityUtil.BOT; import static org.openmetadata.catalog.security.SecurityUtil.BOT;
import static org.openmetadata.catalog.security.SecurityUtil.OWNER; import static org.openmetadata.catalog.security.SecurityUtil.OWNER;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.ExternalDocumentation; import io.swagger.v3.oas.annotations.ExternalDocumentation;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
@ -28,8 +27,6 @@ import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.parameters.RequestBody; import io.swagger.v3.oas.annotations.parameters.RequestBody;
import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponse;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.UUID; import java.util.UUID;
@ -79,11 +76,6 @@ public class FeedResource {
private final FeedRepository dao; private final FeedRepository dao;
private final Authorizer authorizer; private final Authorizer authorizer;
private static List<String> getAllowedFields() {
JsonPropertyOrder propertyOrder = Thread.class.getAnnotation(JsonPropertyOrder.class);
return new ArrayList<>(Arrays.asList(propertyOrder.value()));
}
public static List<Thread> addHref(UriInfo uriInfo, List<Thread> threads) { public static List<Thread> addHref(UriInfo uriInfo, List<Thread> threads) {
threads.forEach(t -> addHref(uriInfo, t)); threads.forEach(t -> addHref(uriInfo, t));
return threads; return threads;

View File

@ -15,6 +15,7 @@ package org.openmetadata.catalog.resources.metrics;
import static org.openmetadata.catalog.security.SecurityUtil.ADMIN; import static org.openmetadata.catalog.security.SecurityUtil.ADMIN;
import static org.openmetadata.catalog.security.SecurityUtil.BOT; import static org.openmetadata.catalog.security.SecurityUtil.BOT;
import static org.openmetadata.catalog.security.SecurityUtil.OWNER;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
@ -173,7 +174,7 @@ public class MetricsResource extends EntityResource<Metrics, MetricsRepository>
public Response createOrUpdate( public Response createOrUpdate(
@Context UriInfo uriInfo, @Context SecurityContext securityContext, @Valid Metrics metrics) throws IOException { @Context UriInfo uriInfo, @Context SecurityContext securityContext, @Valid Metrics metrics) throws IOException {
addToMetrics(securityContext, metrics); addToMetrics(securityContext, metrics);
return createOrUpdate(uriInfo, securityContext, metrics); return createOrUpdate(uriInfo, securityContext, metrics, ADMIN | BOT | OWNER);
} }
private void addToMetrics(SecurityContext securityContext, Metrics metrics) { private void addToMetrics(SecurityContext securityContext, Metrics metrics) {

View File

@ -15,6 +15,7 @@ package org.openmetadata.catalog.resources.reports;
import static org.openmetadata.catalog.security.SecurityUtil.ADMIN; import static org.openmetadata.catalog.security.SecurityUtil.ADMIN;
import static org.openmetadata.catalog.security.SecurityUtil.BOT; import static org.openmetadata.catalog.security.SecurityUtil.BOT;
import static org.openmetadata.catalog.security.SecurityUtil.OWNER;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
@ -165,7 +166,7 @@ public class ReportResource extends EntityResource<Report, ReportRepository> {
public Response createOrUpdate( public Response createOrUpdate(
@Context UriInfo uriInfo, @Context SecurityContext securityContext, @Valid Report report) throws IOException { @Context UriInfo uriInfo, @Context SecurityContext securityContext, @Valid Report report) throws IOException {
addToReport(securityContext, report); addToReport(securityContext, report);
return createOrUpdate(uriInfo, securityContext, report); return createOrUpdate(uriInfo, securityContext, report, ADMIN | BOT | OWNER);
} }
private void addToReport(SecurityContext securityContext, Report report) { private void addToReport(SecurityContext securityContext, Report report) {

View File

@ -47,9 +47,7 @@ import javax.ws.rs.core.SecurityContext;
import javax.ws.rs.core.UriInfo; import javax.ws.rs.core.UriInfo;
import org.openmetadata.catalog.Entity; import org.openmetadata.catalog.Entity;
import org.openmetadata.catalog.api.services.CreateDatabaseService; import org.openmetadata.catalog.api.services.CreateDatabaseService;
import org.openmetadata.catalog.api.services.DatabaseConnection;
import org.openmetadata.catalog.entity.services.DatabaseService; import org.openmetadata.catalog.entity.services.DatabaseService;
import org.openmetadata.catalog.fernet.Fernet;
import org.openmetadata.catalog.jdbi3.CollectionDAO; import org.openmetadata.catalog.jdbi3.CollectionDAO;
import org.openmetadata.catalog.jdbi3.DatabaseServiceRepository; import org.openmetadata.catalog.jdbi3.DatabaseServiceRepository;
import org.openmetadata.catalog.jdbi3.ListFilter; import org.openmetadata.catalog.jdbi3.ListFilter;
@ -72,7 +70,6 @@ public class DatabaseServiceResource extends EntityResource<DatabaseService, Dat
public static final String COLLECTION_PATH = "v1/services/databaseServices/"; public static final String COLLECTION_PATH = "v1/services/databaseServices/";
static final String FIELDS = "pipelines,owner"; static final String FIELDS = "pipelines,owner";
private final Fernet fernet;
@Override @Override
public DatabaseService addHref(UriInfo uriInfo, DatabaseService service) { public DatabaseService addHref(UriInfo uriInfo, DatabaseService service) {
@ -84,7 +81,6 @@ public class DatabaseServiceResource extends EntityResource<DatabaseService, Dat
public DatabaseServiceResource(CollectionDAO dao, Authorizer authorizer) { public DatabaseServiceResource(CollectionDAO dao, Authorizer authorizer) {
super(DatabaseService.class, new DatabaseServiceRepository(dao), authorizer); super(DatabaseService.class, new DatabaseServiceRepository(dao), authorizer);
this.fernet = Fernet.getInstance();
} }
public static class DatabaseServiceList extends ResultList<DatabaseService> { public static class DatabaseServiceList extends ResultList<DatabaseService> {
@ -357,18 +353,4 @@ public class DatabaseServiceResource extends EntityResource<DatabaseService, Dat
.withUpdatedBy(securityContext.getUserPrincipal().getName()) .withUpdatedBy(securityContext.getUserPrincipal().getName())
.withUpdatedAt(System.currentTimeMillis()); .withUpdatedAt(System.currentTimeMillis());
} }
private void validateDatabaseConnection(
DatabaseConnection databaseConnection, CreateDatabaseService.DatabaseServiceType databaseServiceType) {
try {
Object connectionConfig = databaseConnection.getConfig();
String clazzName =
"org.openmetadata.catalog.services.connections.database." + databaseServiceType.value() + "Connection";
Class<?> clazz = Class.forName(clazzName);
JsonUtils.convertValue(connectionConfig, clazz);
} catch (Exception e) {
throw new RuntimeException(
String.format("Failed to construct connection instance of %s", databaseServiceType.value()));
}
}
} }

View File

@ -79,11 +79,11 @@ class ConfigResourceTest extends CatalogApplicationTest {
WebTarget target = getConfigResource("jwks"); WebTarget target = getConfigResource("jwks");
JWKSResponse auth = TestUtils.get(target, JWKSResponse.class, TEST_AUTH_HEADERS); JWKSResponse auth = TestUtils.get(target, JWKSResponse.class, TEST_AUTH_HEADERS);
assertNotNull(auth); assertNotNull(auth);
assertEquals(auth.getJwsKeys().size(), 1); assertEquals(1, auth.getJwsKeys().size());
JWKSKey jwksKey = auth.getJwsKeys().get(0); JWKSKey jwksKey = auth.getJwsKeys().get(0);
assertEquals(jwksKey.getAlg(), "RS256"); assertEquals("RS256", jwksKey.getAlg());
assertEquals(jwksKey.getUse(), "sig"); assertEquals("sig", jwksKey.getUse());
assertEquals(jwksKey.getKty(), "RSA"); assertEquals("RSA", jwksKey.getKty());
assertNotNull(jwksKey.getN()); assertNotNull(jwksKey.getN());
assertNotNull(jwksKey.getE()); assertNotNull(jwksKey.getE());
} }

View File

@ -694,13 +694,13 @@ public class UserResourceTest extends EntityResourceTest<User, CreateUser> {
Date date = jwt.getExpiresAt(); Date date = jwt.getExpiresAt();
long daysBetween = ((date.getTime() - jwt.getIssuedAt().getTime()) / (1000 * 60 * 60 * 24)); long daysBetween = ((date.getTime() - jwt.getIssuedAt().getTime()) / (1000 * 60 * 60 * 24));
assertTrue(daysBetween >= 6); assertTrue(daysBetween >= 6);
assertEquals(jwt.getClaims().get("sub").asString(), "ingestion-bot-jwt"); assertEquals("ingestion-bot-jwt", jwt.getClaims().get("sub").asString());
assertEquals(jwt.getClaims().get("isBot").asBoolean(), true); assertEquals(true, jwt.getClaims().get("isBot").asBoolean());
TestUtils.put(getResource(String.format("users/revokeToken/%s", user.getId())), User.class, OK, ADMIN_AUTH_HEADERS); TestUtils.put(getResource(String.format("users/revokeToken/%s", user.getId())), User.class, OK, ADMIN_AUTH_HEADERS);
jwtAuthMechanism = jwtAuthMechanism =
TestUtils.get( TestUtils.get(
getResource(String.format("users/token/%s", user.getId())), JWTAuthMechanism.class, ADMIN_AUTH_HEADERS); getResource(String.format("users/token/%s", user.getId())), JWTAuthMechanism.class, ADMIN_AUTH_HEADERS);
assertEquals(jwtAuthMechanism.getJWTToken(), StringUtils.EMPTY); assertEquals(StringUtils.EMPTY, jwtAuthMechanism.getJWTToken());
} }
private DecodedJWT decodedJWT(String token) throws MalformedURLException, JwkException, HttpResponseException { private DecodedJWT decodedJWT(String token) throws MalformedURLException, JwkException, HttpResponseException {

View File

@ -53,7 +53,7 @@ public class JWTTokenGeneratorTest {
.withDisplayName("ingestion-bot"); .withDisplayName("ingestion-bot");
JWTAuthMechanism jwtAuthMechanism = jwtTokenGenerator.generateJWTToken(user, JWTTokenExpiry.Seven); JWTAuthMechanism jwtAuthMechanism = jwtTokenGenerator.generateJWTToken(user, JWTTokenExpiry.Seven);
DecodedJWT jwt = decodedJWT(jwtAuthMechanism.getJWTToken()); DecodedJWT jwt = decodedJWT(jwtAuthMechanism.getJWTToken());
assertEquals(jwt.getClaims().get("sub").asString(), "ingestion-bot"); assertEquals("ingestion-bot", jwt.getClaims().get("sub").asString());
Date date = jwt.getExpiresAt(); Date date = jwt.getExpiresAt();
long daysBetween = ((date.getTime() - jwt.getIssuedAt().getTime()) / (1000 * 60 * 60 * 24)); long daysBetween = ((date.getTime() - jwt.getIssuedAt().getTime()) / (1000 * 60 * 60 * 24));
assertTrue(daysBetween >= 6); assertTrue(daysBetween >= 6);