Commit 0fdfd5d9 authored by akucera's avatar akucera
Browse files

refactoring of the project dependencies

parent 603bcc5c
Loading
Loading
Loading
Loading
+9 −1
Original line number Original line Diff line number Diff line
@@ -46,6 +46,14 @@
      <version>4.9</version>
      <version>4.9</version>
      <scope>test</scope>
      <scope>test</scope>
    </dependency>
    </dependency>
  
  <dependency>
            <groupId>cz.muni.fi.lasaris.sbms</groupId>
            <artifactId>ProviderInterfaces</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>
  
  </dependencies>
  </dependencies>
  
  
  <build>
  <build>
@@ -63,7 +71,7 @@
    </build>
    </build>
  
  
  <properties>
  <properties>
        <jersey.version>2.22.1</jersey.version>
        <jersey.version>2.25.1</jersey.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    </properties>
  
  
+4 −4
Original line number Original line Diff line number Diff line
@@ -59,7 +59,7 @@ public class AuthenticationFilter implements ContainerRequestFilter {
				String auth = requestContext.getHeaderString("authorization");
				String auth = requestContext.getHeaderString("authorization");
				
				
					final String[] creds = decodeAuth(auth);
					final String[] creds = decodeAuth(auth);
					if(ap.authenticate(creds[0], creds[1], requestContext)) {
					if(ap.authenticate(creds[0], creds[1])) {
						logger.debug(appName + ": Authenticated.");
						logger.debug(appName + ": Authenticated.");
						user = new Principal() {
						user = new Principal() {


@@ -85,7 +85,7 @@ public class AuthenticationFilter implements ContainerRequestFilter {
					return false;
					return false;
				}
				}
				String user = getUserPrincipal().getName();
				String user = getUserPrincipal().getName();
				if(ap.authorize(user, role, requestContext)) {
				if(ap.authorize(user, role)) {
					logger.debug(appName + ": Authorized: " + user + " in " + role);
					logger.debug(appName + ": Authorized: " + user + " in " + role);
					return true;  
					return true;  
				} else {
				} else {
@@ -131,11 +131,11 @@ public class AuthenticationFilter implements ContainerRequestFilter {
		return new AuthProvider() {
		return new AuthProvider() {
			
			
			
			
			public boolean authenticate(String user, String password, ContainerRequestContext requestContext) {
			public boolean authenticate(String user, String password) {
				return true;
				return true;
			}
			}


			public boolean authorize(String user, String role, ContainerRequestContext requestContext) {
			public boolean authorize(String user, String role) {
				return true;
				return true;
			}
			}


+2 −4
Original line number Original line Diff line number Diff line
@@ -4,8 +4,6 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Map;
import java.util.Properties;
import java.util.Properties;


import javax.ws.rs.container.ContainerRequestContext;

public class PropertiesAuthProvider implements AuthProvider {
public class PropertiesAuthProvider implements AuthProvider {
	
	
	Map<String,String> passwords;
	Map<String,String> passwords;
@@ -15,11 +13,11 @@ public class PropertiesAuthProvider implements AuthProvider {
		
		
	}
	}
	
	
	public boolean authenticate(String user, String password, ContainerRequestContext requestContext) {
	public boolean authenticate(String user, String password) {
		return passwords.containsKey(user) && passwords.get(user).equals(password);
		return passwords.containsKey(user) && passwords.get(user).equals(password);
	}
	}


	public boolean authorize(String user, String role, ContainerRequestContext requestContext) {
	public boolean authorize(String user, String role) {
		return roles.containsKey("user") && roles.get(user).equals(role);
		return roles.containsKey("user") && roles.get(user).equals(role);
	}
	}


+14 −3
Original line number Original line Diff line number Diff line
@@ -11,13 +11,14 @@ import org.glassfish.jersey.server.filter.RolesAllowedDynamicFeature;


import cz.muni.fi.lasaris.sbms.auth.AuthenticationFilter;
import cz.muni.fi.lasaris.sbms.auth.AuthenticationFilter;


@ApplicationPath("/data")
@ApplicationPath("data/")
public class Application extends ResourceConfig {
public class Application extends ResourceConfig {
	final static Logger logger = Logger.getLogger(Application.class);
	final static Logger logger = Logger.getLogger(Application.class);
	private Properties prop;
	private Properties prop;
	
	
	public Application() {
	public Application() {
		super();
		super();
		setApplicationName("Semantic BMS Data Access API");
		// http://crunchify.com/java-properties-file-how-to-read-config-properties-values-in-java/
		// http://crunchify.com/java-properties-file-how-to-read-config-properties-values-in-java/
		this.prop = new Properties();
		this.prop = new Properties();
		try {
		try {
@@ -40,7 +41,11 @@ public class Application extends ResourceConfig {
		registerInstances(new AuthenticationFilter("data", prop));
		registerInstances(new AuthenticationFilter("data", prop));
		// TODO: data-level auth (data API)
		// TODO: data-level auth (data API)
		
		
		try {
			ConnectorProvider.init(prop);
			ConnectorProvider.init(prop);
		} catch(Throwable e) {
			logger.error(e);
		}
	}
	}
	
	
	public Properties getSBMSProperties() {
	public Properties getSBMSProperties() {
@@ -49,7 +54,13 @@ public class Application extends ResourceConfig {
	}
	}
	
	
	public void close() {
	public void close() {
		ConnectorProvider.close();
	}
	
	
	public void finalize() {
		logger.debug("Closing connectors...");
		ConnectorProvider.close();
		logger.debug("Connectors closed.");
	}
	}


}
}
+9 −4
Original line number Original line Diff line number Diff line
@@ -21,17 +21,17 @@ public class ConnectorProvider {
				Class<?> c = Class.forName(bClassName);
				Class<?> c = Class.forName(bClassName);
				ConnectorProvider.bConnector = (BASConnector)c.newInstance();
				ConnectorProvider.bConnector = (BASConnector)c.newInstance();
				ConnectorProvider.bConnector.init(props);
				ConnectorProvider.bConnector.init(props);
				logger.debug("BAS connector initialized.");
				logger.debug(String.format("BAS connector %s initialized.", bClassName));
			} else {
			} else {
				throw new IllegalArgumentException("Unable to initialize BAS data provider.");
				throw new IllegalArgumentException(String.format("Unable to initialize BAS data provider %s.", bClassName));
			}
			}
			if(aClassName != null) {
			if(aClassName != null) {
				Class<?> c = Class.forName(aClassName);
				Class<?> c = Class.forName(aClassName);
				ConnectorProvider.aConnector = (ArchiveConnector)c.newInstance();
				ConnectorProvider.aConnector = (ArchiveConnector)c.newInstance();
				ConnectorProvider.aConnector.init(props);
				ConnectorProvider.aConnector.init(props);
				logger.debug("Archive connector initialized.");
				logger.debug(String.format("Archive connector %s initialized.", aClassName));
			} else {
			} else {
				throw new IllegalArgumentException("Unable to initialize Archive data provider.");
				throw new IllegalArgumentException(String.format("Unable to initialize Archive data provider %s."));
			}
			}
		} catch (Exception ex) {
		} catch (Exception ex) {
			logger.error("Unable to initialize data providers.");
			logger.error("Unable to initialize data providers.");
@@ -52,4 +52,9 @@ public class ConnectorProvider {
		}
		}
		return ConnectorProvider.aConnector;
		return ConnectorProvider.aConnector;
	}
	}
	
	public static void close() {
		ConnectorProvider.aConnector.close();
		ConnectorProvider.bConnector.close();
	}
}
}
Loading