Loading CommonComponents/pom.xml +9 −1 Original line number Original line Diff line number Diff line Loading @@ -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> Loading @@ -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> Loading CommonComponents/src/main/java/cz/muni/fi/lasaris/sbms/auth/AuthenticationFilter.java +4 −4 Original line number Original line Diff line number Diff line Loading @@ -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() { Loading @@ -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 { Loading Loading @@ -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; } } Loading CommonComponents/src/main/java/cz/muni/fi/lasaris/sbms/auth/PropertiesAuthProvider.java +2 −4 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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); } } Loading DataAccessAPI/src/main/java/cz/muni/fi/lasaris/sbms/data/Application.java +14 −3 Original line number Original line Diff line number Diff line Loading @@ -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 { Loading @@ -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() { Loading @@ -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."); } } } } DataAccessAPI/src/main/java/cz/muni/fi/lasaris/sbms/data/ConnectorProvider.java +9 −4 Original line number Original line Diff line number Diff line Loading @@ -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."); Loading @@ -52,4 +52,9 @@ public class ConnectorProvider { } } return ConnectorProvider.aConnector; return ConnectorProvider.aConnector; } } public static void close() { ConnectorProvider.aConnector.close(); ConnectorProvider.bConnector.close(); } } } Loading
CommonComponents/pom.xml +9 −1 Original line number Original line Diff line number Diff line Loading @@ -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> Loading @@ -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> Loading
CommonComponents/src/main/java/cz/muni/fi/lasaris/sbms/auth/AuthenticationFilter.java +4 −4 Original line number Original line Diff line number Diff line Loading @@ -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() { Loading @@ -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 { Loading Loading @@ -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; } } Loading
CommonComponents/src/main/java/cz/muni/fi/lasaris/sbms/auth/PropertiesAuthProvider.java +2 −4 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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); } } Loading
DataAccessAPI/src/main/java/cz/muni/fi/lasaris/sbms/data/Application.java +14 −3 Original line number Original line Diff line number Diff line Loading @@ -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 { Loading @@ -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() { Loading @@ -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."); } } } }
DataAccessAPI/src/main/java/cz/muni/fi/lasaris/sbms/data/ConnectorProvider.java +9 −4 Original line number Original line Diff line number Diff line Loading @@ -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."); Loading @@ -52,4 +52,9 @@ public class ConnectorProvider { } } return ConnectorProvider.aConnector; return ConnectorProvider.aConnector; } } public static void close() { ConnectorProvider.aConnector.close(); ConnectorProvider.bConnector.close(); } } }