Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
8427a05
Adding rest-notification module from cdh_main to opensource.
UmeshPatil-1 Apr 13, 2026
1d7371f
Resolving build error failure for rest-notification module,Registered…
UmeshPatil-1 Apr 13, 2026
b335913
Adding server-common module remove identical and nearly identical cla…
UmeshPatil-1 Apr 16, 2026
0ccba6d
Resolving error's in webapp for testCompile: unreported javax.servlet…
UmeshPatil-1 Apr 16, 2026
a3030c8
Modifying class syntax to match both webapp and rest-notification web…
UmeshPatil-1 Apr 16, 2026
c3e2bf6
Updating dao class and package to use server-common module for both w…
UmeshPatil-1 Apr 16, 2026
405aed6
Updated Filter classes and module to use server-common module for bot…
UmeshPatil-1 Apr 21, 2026
6270135
Updated method visibility to resolve the testcases and compilation er…
UmeshPatil-1 Apr 23, 2026
7b4964f
Updating security classes and package to use server-common module for…
UmeshPatil-1 Apr 23, 2026
5dbbd0c
Updating class syntax to match earlier coding style.
UmeshPatil-1 Apr 23, 2026
7fcc3f1
Updating listeners class and package to use server-common module for …
UmeshPatil-1 Apr 23, 2026
3762146
Updating classes to use User model class from server-common module.
UmeshPatil-1 Apr 23, 2026
921594b
Updating service classes and package to use server-common module for …
UmeshPatil-1 Apr 25, 2026
549ff3a
Updating class and methods syntax to match earlier coding style in se…
UmeshPatil-1 Apr 25, 2026
3166593
Updating setup class KerberosAwareListener and package to use server-…
UmeshPatil-1 Apr 27, 2026
b93fb63
Updated test class ImportTaskListenerImplTest in webapp module remove…
UmeshPatil-1 Apr 27, 2026
aced7bf
Restoring admin SERVER_START/SERVER_STATE_ACTIVE via WebappAdminAudit…
UmeshPatil-1 Apr 28, 2026
1e2d8bd
Server-Common: align ActiveServerFilter with passive vs migration adm…
UmeshPatil-1 Apr 28, 2026
d3d880d
Resolving Testcase Failure:- Fix UserAuthorityGranter.grant null retu…
UmeshPatil-1 Apr 28, 2026
2fe0e23
Resolving Testcases Failure Fix 503 in SecureEmbeddedServerTest: prof…
UmeshPatil-1 Apr 28, 2026
74711de
Resolving checkstyle error's in webapp module.
UmeshPatil-1 May 4, 2026
f1ce7bd
Updating server-common to atlas-server-common.
UmeshPatil-1 May 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,9 @@
<module>notification</module>
<module>plugin-classloader</module>
<module>repository</module>
<module>rest-notification-webapp</module>
<module>server-api</module>
<module>server-common</module>
<module>test-tools</module>
<module>tools/atlas-index-repair</module>
<module>tools/classification-updater</module>
Expand Down Expand Up @@ -492,6 +494,12 @@
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>org.apache.atlas</groupId>
<artifactId>atlas-server-common</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>org.apache.atlas</groupId>
<artifactId>atlas-webapp</artifactId>
Expand Down
232 changes: 232 additions & 0 deletions rest-notification-webapp/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,232 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.atlas</groupId>
<artifactId>apache-atlas</artifactId>
<version>3.0.0-SNAPSHOT</version>
</parent>

<artifactId>rest-notification-webapp</artifactId>
<packaging>war</packaging>

<name>Rest Notification Webapp</name>

<dependencies>
<!-- SLF4J binding: use logback to avoid NOP logger warnings -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.9</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.9</version>
</dependency>
<dependency>
<groupId>org.apache.atlas</groupId>
<artifactId>atlas-intg</artifactId>
</dependency>

<dependency>
<groupId>org.apache.atlas</groupId>
<artifactId>atlas-server-common</artifactId>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>org.apache.atlas</groupId>
<artifactId>atlas-notification</artifactId>
</dependency>
<dependency>
<groupId>org.apache.atlas</groupId>
<artifactId>atlas-client-v2</artifactId>
</dependency>
<dependency>
<groupId>org.apache.atlas</groupId>
<artifactId>atlas-authorization</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-ldap</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.ldap</groupId>
<artifactId>spring-ldap-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.ldap</groupId>
<artifactId>spring-ldap-core</artifactId>
<version>${spring-ldap-core.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
</dependency>

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-configuration2</artifactId>
<version>${commons-conf2.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
</exclusion>
</exclusions>
</dependency>

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>${commons-text.version}</version>
</dependency>

<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>

<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
</dependency>

<!-- PAM -->
<dependency>
<groupId>org.kohsuke</groupId>
<artifactId>libpam4j</artifactId>
<version>1.11</version>
</dependency>

<!-- Jersey 1.x (com.sun.jersey), aligned with atlas-webapp — replaces org.glassfish.jersey (Jersey 2) from cdh_main -->
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
</dependency>

<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
</dependency>

<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
</dependency>

<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-multipart</artifactId>
</dependency>

<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-spring</artifactId>
</dependency>

<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>${jersey.version}</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>com.github.ekryd.sortpom</groupId>
<artifactId>sortpom-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archiveClasses>true</archiveClasses>
<attachClasses>true</attachClasses>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.atlas.notification.rest;

import org.apache.atlas.ApplicationProperties;
import org.apache.atlas.AtlasException;
import org.apache.commons.configuration.Configuration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.ArrayList;
import java.util.List;

/**
* Atlas configuration for repository project
*
*/
public class AtlasRepositoryConfiguration {

private static Logger LOG = LoggerFactory.getLogger(AtlasRepositoryConfiguration.class);

public static final String AUDIT_EXCLUDED_OPERATIONS = "atlas.audit.excludes";
public static final String SEPARATOR = ":";


private static List<String> skippedOperations = null;


/**
* Get the list of operations which are configured to be skipped from auditing
* Valid format is HttpMethod:URL eg: GET:Version
* @return list of string
* @throws AtlasException
*/
public static List<String> getAuditExcludedOperations(Configuration config) throws AtlasException {
if (skippedOperations == null) {
if (config == null) {
try {
config = ApplicationProperties.get();
} catch (AtlasException e) {
LOG.error(" Error reading operations for auditing ", e);
throw e;
}
}

skippedOperations = new ArrayList<>();

String[] skipAuditForOperations = config.getStringArray(AUDIT_EXCLUDED_OPERATIONS);

if (skipAuditForOperations != null && skipAuditForOperations.length > 0) {
for (String skippedOperation : skipAuditForOperations) {
String[] excludedOperations = skippedOperation.trim().toLowerCase().split(SEPARATOR);
if (excludedOperations!= null && excludedOperations.length == 2) {
skippedOperations.add(skippedOperation.toLowerCase());
} else {
LOG.error("Invalid format for skipped operation {}. Valid format is HttpMethod:URL eg: GET:Version", skippedOperation);
}
}
}
}

return skippedOperations;
}

public static boolean isExcludedFromAudit(Configuration config, String httpMethod, String httpUrl) throws AtlasException {
if (getAuditExcludedOperations(config).size() > 0) {
return getAuditExcludedOperations(config).contains(httpMethod.toLowerCase() + SEPARATOR + httpUrl.toLowerCase());
} else {
return false;
}
}

}
Loading