*/
void setBasicAuthentication(String user, String password, String relativeUriPath);
+ /**
+ * Enables AAF based authentication.
+ *
+ * @param filterPath filter path
+ */
+ void setAafAuthentication(String filterPath);
+
+ /**
+ * Checks if AAF authentication has been enabled.
+ */
+ boolean isAaf();
+
/**
* Adds a filter at the specified path.
*
/* authentication method either AAF or HTTP Basic Auth */
if (aaf) {
- service.addFilterClass(contextUriPath, CadiFilter.class.getCanonicalName());
+ service.setAafAuthentication(contextUriPath);
} else if (userName != null && !userName.isEmpty() && password != null && !password.isEmpty()) {
service.setBasicAuthentication(userName, password, authUriPath);
}
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.Slf4jRequestLog;
+import org.eclipse.jetty.servlet.FilterHolder;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.util.security.Constraint;
import org.eclipse.jetty.util.security.Credential;
import org.eclipse.jetty.util.ssl.SslContextFactory;
+import org.onap.aaf.cadi.filter.CadiFilter;
import org.onap.policy.common.endpoints.http.server.HttpServletServer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
return new ServerConnector(this.jettyServer);
}
+ @Override
+ public void setAafAuthentication(String filterPath) {
+ this.addFilterClass(filterPath, CadiFilter.class.getCanonicalName());
+ }
+
+ @Override
+ public boolean isAaf() {
+ for (FilterHolder filter : context.getServletHandler().getFilters()) {
+ if (CadiFilter.class.getCanonicalName().equals(filter.getClassName())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
@Override
public void setBasicAuthentication(String user, String password, String servletPath) {
String srvltPath = servletPath;
package org.onap.policy.common.endpoints.http.server.test;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.io.BufferedReader;
server.waitedStart(5000);
assertTrue(HttpServletServer.factory.get(5678).isAlive());
+ assertFalse(HttpServletServer.factory.get(5678).isAaf());
String response = http(HttpServletServer.factory.get(5678), "http://localhost:5678/junit/echo/hello");
assertTrue("hello".equals(response));
assertTrue(HttpServletServer.factory.get(5678).isAlive());
assertTrue(HttpServletServer.factory.inventory().size() == 1);
+ server.setAafAuthentication("/*");
+ assertTrue(HttpServletServer.factory.get(5678).isAaf());
+
HttpServletServer.factory.destroy(5678);
assertTrue(HttpServletServer.factory.inventory().size() == 0);
}