diff --git a/pom.xml b/pom.xml index ada1869cc7d8b3a6a53415f57e9382f6f3accb84..dac908f31c6af688ca5d79f3f5baa544d65cbeb4 100644 --- a/pom.xml +++ b/pom.xml @@ -18,15 +18,12 @@ <relativePath /> <!-- lookup parent from repository --> </parent> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <java.version>1.8</java.version> - </properties> - <profiles> <profile> <id>dev</id> <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <java.version>1.8</java.version> <connection.driver_class>org.h2.Driver</connection.driver_class> <connection.url>jdbc:h2:mem:test</connection.url> <connection.username>root</connection.username> @@ -38,10 +35,12 @@ <profile> <id>prod</id> <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <java.version>1.8</java.version> <connection.driver_class>org.postgresql.Driver</connection.driver_class> - <connection.url>jdbc:postgresql://portaldb:5432/postgres</connection.url> - <connection.username>postgres</connection.username> - <connection.password>test</connection.password> + <connection.url>jdbc:postgresql://localhost:5432/postgres</connection.url> + <connection.username>root</connection.username> + <connection.password>root</connection.password> <hibernate.dialect>org.hibernate.dialect.PostgreSQL82Dialect</hibernate.dialect> <schema.deploy>false</schema.deploy> </properties> @@ -65,6 +64,10 @@ <groupId>org.springframework.security.oauth</groupId> <artifactId>spring-security-oauth2</artifactId> </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-orm</artifactId> + </dependency> <dependency> <groupId>org.webjars</groupId> <artifactId>angularjs</artifactId> @@ -130,15 +133,27 @@ <resources> <resource> <directory>src/main/resources</directory> - <includes><include>**/*.xml</include></includes> - <filtering>true</filtering> + <includes><include>**/*.csv</include></includes> + <excludes><exclude>**/*.xml</exclude></excludes> </resource> <resource> <directory>src/main/resources</directory> - <includes><include>**/*.csv</include></includes> + <includes><include>**/*.xml</include></includes> + <excludes><exclude>**/*.csv</exclude></excludes> + <filtering>true</filtering> </resource> </resources> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-resources-plugin</artifactId> + <version>2.3</version> + <configuration> + <!-- specify UTF-8, ISO-8859-1 or any other file encoding --> + <encoding>UTF-8</encoding> + </configuration> + </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> @@ -150,9 +165,6 @@ <executions> <execution> <phase>compile</phase> - <configuration> - <skip>${schema.deploy}</skip> - </configuration> <goals> <goal>export</goal> </goals> diff --git a/src/main/java/org/hbp/mip/MIPApplication.java b/src/main/java/org/hbp/mip/MIPApplication.java index 8d05e4ceec255e45ed776cbf3d8cd26cc78de319..56034f9b899ee83a50140a9e0d6b2ae4eaddff5b 100644 --- a/src/main/java/org/hbp/mip/MIPApplication.java +++ b/src/main/java/org/hbp/mip/MIPApplication.java @@ -25,9 +25,9 @@ import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.annotations.Api; import org.hbp.mip.model.User; import org.hbp.mip.utils.CORSFilter; -import org.hbp.mip.utils.HibernateUtil; import org.hibernate.Query; import org.hibernate.Session; +import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -36,6 +36,8 @@ import org.springframework.boot.autoconfigure.security.oauth2.resource.UserInfoT import org.springframework.boot.context.embedded.FilterRegistrationBean; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.core.Authentication; @@ -81,6 +83,8 @@ import java.net.URLEncoder; import java.security.Principal; @SpringBootApplication +@Configuration +@ImportResource("classpath:spring/application-context.xml") @RestController @EnableOAuth2Client @EnableSwagger2 @@ -90,25 +94,35 @@ public class MIPApplication extends WebSecurityConfigurerAdapter { @Autowired OAuth2ClientContext oauth2ClientContext; - public static void main(String[] args) { + @Autowired + SessionFactory sessionFactoryBean; + + @Autowired + HttpSessionCsrfTokenRepository httpSessionCsrfTokenRepository; + + @Autowired + OAuth2ClientAuthenticationProcessingFilter hbpFilter; + + +public static void main(String[] args) { SpringApplication.run(MIPApplication.class, args); } - public static String getUserInfos() { + public String getUserInfos() { OAuth2Authentication oAuth2Authentication = (OAuth2Authentication) SecurityContextHolder.getContext().getAuthentication(); Authentication userAuthentication = oAuth2Authentication.getUserAuthentication(); return userAuthentication.getDetails().toString(); } - public static User getUser(Principal principal) { - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + public User getUser(Principal principal) { + Session session = sessionFactoryBean.getCurrentSession(); session.beginTransaction(); Query query = session.createQuery("from User where username= :username"); query.setString("username", principal.getName()); User user = (User) query.uniqueResult(); session.getTransaction().commit(); if (user == null) { - session = HibernateUtil.getSessionFactory().getCurrentSession(); + session = sessionFactoryBean.getCurrentSession(); session.beginTransaction(); user = new User(getUserInfos()); user.setTeam("CHUV"); @@ -172,7 +186,7 @@ public class MIPApplication extends WebSecurityConfigurerAdapter { .and().logout().logoutSuccessUrl("/login/hbp").permitAll() .and().csrf().csrfTokenRepository(csrfTokenRepository()) .and().addFilterAfter(csrfHeaderFilter(), CsrfFilter.class) - .addFilterBefore(ssoFilter(), BasicAuthenticationFilter.class); + .addFilterBefore(hbpFilter, BasicAuthenticationFilter.class); } @Bean @@ -184,22 +198,24 @@ public class MIPApplication extends WebSecurityConfigurerAdapter { return registration; } +/* private Filter ssoFilter() { - OAuth2ClientAuthenticationProcessingFilter hbpFilter = new OAuth2ClientAuthenticationProcessingFilter("/login/hbp"); + OAuth2ClientAuthenticationProcessingFilter hbpFilter = new OAuth2ClientAuthenticationProcessingFilter("/login/hbp"); OAuth2RestTemplate hbpTemplate = new OAuth2RestTemplate(hbp(), oauth2ClientContext); hbpFilter.setAuthenticationSuccessHandler(new SimpleUrlAuthenticationSuccessHandler("http://frontend/#/home")); hbpFilter.setRestTemplate(hbpTemplate); hbpFilter.setTokenServices(new UserInfoTokenServices(hbpResource().getUserInfoUri(), hbp().getClientId())); return hbpFilter; } +*/ - @Bean + @Bean(name="hbp") @ConfigurationProperties("hbp.client") OAuth2ProtectedResourceDetails hbp() { return new AuthorizationCodeResourceDetails(); } - @Bean + @Bean(name="hbpResource") @ConfigurationProperties("hbp.resource") ResourceServerProperties hbpResource() { return new ResourceServerProperties(); @@ -226,8 +242,7 @@ public class MIPApplication extends WebSecurityConfigurerAdapter { } private CsrfTokenRepository csrfTokenRepository() { - HttpSessionCsrfTokenRepository repository = new HttpSessionCsrfTokenRepository(); - repository.setHeaderName("X-XSRF-TOKEN"); + HttpSessionCsrfTokenRepository repository = httpSessionCsrfTokenRepository; return repository; } diff --git a/src/main/java/org/hbp/mip/controllers/ArticlesApi.java b/src/main/java/org/hbp/mip/controllers/ArticlesApi.java index 4bee0ec61f144e9af569b2ae83baa4943cac9142..53ba7f8d06c4e9dc47d42d80088860baf21da694 100644 --- a/src/main/java/org/hbp/mip/controllers/ArticlesApi.java +++ b/src/main/java/org/hbp/mip/controllers/ArticlesApi.java @@ -9,9 +9,11 @@ import io.swagger.annotations.*; import org.hbp.mip.MIPApplication; import org.hbp.mip.model.Article; import org.hbp.mip.model.User; -import org.hbp.mip.utils.HibernateUtil; import org.hibernate.Query; import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -28,8 +30,13 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; @Api(value = "/articles", description = "the articles API") public class ArticlesApi { + @Autowired + MIPApplication mipApplication; - @ApiOperation(value = "Get articles", response = Article.class, responseContainer = "List") + @Autowired + SessionFactory sessionFactoryBean; + + @ApiOperation(value = "Get articles", response = Article.class, responseContainer = "List") @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") }) @RequestMapping(method = RequestMethod.GET) public ResponseEntity<List<Article>> getArticles( @@ -40,7 +47,7 @@ public class ArticlesApi { ) { // Get current user - User user = MIPApplication.getUser(principal); + User user = mipApplication.getUser(principal); // Prepare HQL query using Article and User tables String queryString = "SELECT a FROM Article a, User u where a.createdBy=u.id"; @@ -61,7 +68,7 @@ public class ArticlesApi { } } - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + Session session = sessionFactoryBean.getCurrentSession(); List<Article> articles = new LinkedList<>(); // Query DB try{ @@ -105,7 +112,7 @@ public class ArticlesApi { ) { // Get current user - User user = MIPApplication.getUser(principal); + User user = mipApplication.getUser(principal); // Set up article to save article.setCreatedAt(new Date()); @@ -116,7 +123,7 @@ public class ArticlesApi { article.setCreatedBy(user); // Save article into DB - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + Session session = sessionFactoryBean.getCurrentSession(); try{ session.beginTransaction(); session.save(article); @@ -140,7 +147,7 @@ public class ArticlesApi { ) { // Query DB - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + Session session = sessionFactoryBean.getCurrentSession(); Article article = null; try{ session.beginTransaction(); @@ -169,10 +176,10 @@ public class ArticlesApi { ) { // Get current user - User user = MIPApplication.getUser(principal); + User user = mipApplication.getUser(principal); // Query DB - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + Session session = sessionFactoryBean.getCurrentSession(); try{ session.beginTransaction(); session.update(article); diff --git a/src/main/java/org/hbp/mip/controllers/DatasetsApi.java b/src/main/java/org/hbp/mip/controllers/DatasetsApi.java index 7f6b3ceda7e85a3c40a5e8f7dec94487c121c808..481d43c8cc71ea02236ba52b3c39f7892bf66712 100644 --- a/src/main/java/org/hbp/mip/controllers/DatasetsApi.java +++ b/src/main/java/org/hbp/mip/controllers/DatasetsApi.java @@ -7,9 +7,10 @@ package org.hbp.mip.controllers; import io.swagger.annotations.*; import org.hbp.mip.model.Dataset; -import org.hbp.mip.utils.HibernateUtil; import org.hibernate.Query; import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; @@ -23,7 +24,9 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; @RequestMapping(value = "/datasets", produces = {APPLICATION_JSON_VALUE}) @Api(value = "/datasets", description = "the datasets API") public class DatasetsApi { - + + @Autowired + SessionFactory sessionFactoryBean; @ApiOperation(value = "Get a dataset", response = Dataset.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") }) @@ -33,7 +36,7 @@ public class DatasetsApi { ) { // Query DB - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + Session session = sessionFactoryBean.getCurrentSession(); Dataset dataset = null; try{ session.beginTransaction(); diff --git a/src/main/java/org/hbp/mip/controllers/GroupsApi.java b/src/main/java/org/hbp/mip/controllers/GroupsApi.java index 0ba437d444019a1de02252d414378b5ad8f8c8bb..063ba59926d0fe16f4f9d6e52c3d8cfb38c0fab4 100644 --- a/src/main/java/org/hbp/mip/controllers/GroupsApi.java +++ b/src/main/java/org/hbp/mip/controllers/GroupsApi.java @@ -6,8 +6,9 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.hbp.mip.model.Group; -import org.hbp.mip.utils.HibernateUtil; import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; @@ -22,6 +23,9 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; public class GroupsApi { + @Autowired + SessionFactory sessionFactoryBean; + @ApiOperation(value = "Get the root group (containing all subgroups)", response = Group.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") }) @RequestMapping(method = RequestMethod.GET) @@ -31,7 +35,7 @@ public class GroupsApi { String rootCode = "root"; // Query DB - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + Session session = sessionFactoryBean.getCurrentSession(); Group group = null; try{ session.beginTransaction(); diff --git a/src/main/java/org/hbp/mip/controllers/ModelsApi.java b/src/main/java/org/hbp/mip/controllers/ModelsApi.java index 102661c22db18b6fbb0ea7a51b78d1da7faac02a..6f52bc2b236f1f373b34b29956a97ea11ff6d346 100644 --- a/src/main/java/org/hbp/mip/controllers/ModelsApi.java +++ b/src/main/java/org/hbp/mip/controllers/ModelsApi.java @@ -9,9 +9,10 @@ import io.swagger.annotations.*; import org.hbp.mip.MIPApplication; import org.hbp.mip.model.*; import org.hbp.mip.utils.CSVUtil; -import org.hbp.mip.utils.HibernateUtil; import org.hibernate.Query; import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -30,7 +31,13 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; @javax.annotation.Generated(value = "class io.swagger.codegen.languages.SpringMVCServerCodegen", date = "2016-01-07T07:38:20.227Z") public class ModelsApi { - private static final String DATA_FILE = "data/values.csv"; + @Autowired + MIPApplication mipApplication; + + @Autowired + SessionFactory sessionFactoryBean; + + private static final String DATA_FILE = "data/values.csv"; @ApiOperation(value = "Get models", response = Model.class, responseContainer = "List") @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") }) @@ -43,7 +50,7 @@ public class ModelsApi { ) { // Get current user - User user = MIPApplication.getUser(principal); + User user = mipApplication.getUser(principal); // Prepare HQL query from Model and User tables String queryString = "select m from Model m, User u where m.createdBy=u.id"; @@ -60,7 +67,7 @@ public class ModelsApi { } // Query DB - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + Session session = sessionFactoryBean.getCurrentSession(); List<Model> models = new LinkedList<>(); try{ session.beginTransaction(); @@ -102,7 +109,7 @@ public class ModelsApi { ) { // Get current user - User user = MIPApplication.getUser(principal); + User user = mipApplication.getUser(principal); // Set up model model.setSlug(model.getTitle().toLowerCase()); @@ -111,7 +118,7 @@ public class ModelsApi { model.setCreatedAt(new Date()); // Save model into DB - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + Session session = sessionFactoryBean.getCurrentSession(); try{ session.beginTransaction(); session.save(model); @@ -134,7 +141,7 @@ public class ModelsApi { ) { // Query DB - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + Session session = sessionFactoryBean.getCurrentSession(); Model model = null; try{ session.beginTransaction(); @@ -160,7 +167,7 @@ public class ModelsApi { ) { // Query DB - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + Session session = sessionFactoryBean.getCurrentSession(); session.beginTransaction(); org.hibernate.Query query = session.createQuery("from Model where slug= :slug"); query.setString("slug", slug); @@ -168,7 +175,7 @@ public class ModelsApi { session.getTransaction().commit(); if(model != null) { - session = HibernateUtil.getSessionFactory().getCurrentSession(); + session = sessionFactoryBean.getCurrentSession(); try{ session.beginTransaction(); query = session.createQuery("from Query where id= :id"); @@ -240,10 +247,10 @@ public class ModelsApi { ) { // Get current user - User user = MIPApplication.getUser(principal); + User user = mipApplication.getUser(principal); // Query DB - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + Session session = sessionFactoryBean.getCurrentSession(); try{ session.beginTransaction(); session.update(model); @@ -267,7 +274,7 @@ public class ModelsApi { Principal principal ) { // Get current user - User user = MIPApplication.getUser(principal); + User user = mipApplication.getUser(principal); // Set slug String originalSlug = model.getSlug(); @@ -278,7 +285,7 @@ public class ModelsApi { model.setSlug(copySlug); // Save model into DB - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + Session session = sessionFactoryBean.getCurrentSession(); try{ session.beginTransaction(); session.save(model); diff --git a/src/main/java/org/hbp/mip/controllers/StatsApi.java b/src/main/java/org/hbp/mip/controllers/StatsApi.java index e19a548a9b0ea300c8c7872a41f403a806282785..b468260d605626fbe67688a6d90bc70914819daa 100644 --- a/src/main/java/org/hbp/mip/controllers/StatsApi.java +++ b/src/main/java/org/hbp/mip/controllers/StatsApi.java @@ -3,9 +3,10 @@ package org.hbp.mip.controllers; import io.swagger.annotations.*; import org.hbp.mip.model.GeneralStats; import org.hbp.mip.model.Statistics; -import org.hbp.mip.utils.HibernateUtil; import org.hibernate.Query; import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; @@ -22,6 +23,9 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; @Api(value = "/stats", description = "the stats API") public class StatsApi { + @Autowired + SessionFactory sessionFactoryBean; + @ApiOperation(value = "Get general statistics", response = GeneralStats.class) @ApiResponses(value = {@ApiResponse(code = 200, message = "Found"), @ApiResponse(code = 404, message = "Not found") }) @RequestMapping(method = RequestMethod.GET) @@ -29,7 +33,7 @@ public class StatsApi { GeneralStats stats = new GeneralStats(); - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + Session session = sessionFactoryBean.getCurrentSession(); Long nbUsers = 0L; Long nbArticles = 0L; Long nbVariables = 0L; diff --git a/src/main/java/org/hbp/mip/controllers/UsersApi.java b/src/main/java/org/hbp/mip/controllers/UsersApi.java index c57bf39ee90a2ab3feb6132b25ba0eb563f824bc..ddc02821124da96664c5a9d47a64dc3f86d72283 100644 --- a/src/main/java/org/hbp/mip/controllers/UsersApi.java +++ b/src/main/java/org/hbp/mip/controllers/UsersApi.java @@ -2,8 +2,9 @@ package org.hbp.mip.controllers; import io.swagger.annotations.*; import org.hbp.mip.model.User; -import org.hbp.mip.utils.HibernateUtil; import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; @@ -22,6 +23,9 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; @Api(value = "/users", description = "the users API") public class UsersApi { + @Autowired + SessionFactory sessionFactoryBean; + @ApiOperation(value = "Get a user", response = User.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "Found"), @ApiResponse(code = 404, message = "Not found") }) @RequestMapping(value = "/{username}", method = RequestMethod.GET) @@ -30,7 +34,7 @@ public class UsersApi { ) { // Query DB - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + Session session = sessionFactoryBean.getCurrentSession(); User user = null; try{ session.beginTransaction(); diff --git a/src/main/java/org/hbp/mip/controllers/VariablesApi.java b/src/main/java/org/hbp/mip/controllers/VariablesApi.java index e42f75144a21264df7f080abd4de64747e3013c9..bf64e31079a6503ba9cb5e694278d2e58c0f0ef5 100644 --- a/src/main/java/org/hbp/mip/controllers/VariablesApi.java +++ b/src/main/java/org/hbp/mip/controllers/VariablesApi.java @@ -8,8 +8,9 @@ package org.hbp.mip.controllers; import io.swagger.annotations.*; import org.hbp.mip.model.Value; import org.hbp.mip.model.Variable; -import org.hbp.mip.utils.HibernateUtil; import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -24,6 +25,8 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; @Api(value = "/variables", description = "the variables API") public class VariablesApi { + @Autowired + SessionFactory sessionFactoryBean; @ApiOperation(value = "Get variables", response = Variable.class, responseContainer = "List") @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") }) @@ -38,7 +41,7 @@ public class VariablesApi { ) { // Get variables from DB - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + Session session = sessionFactoryBean.getCurrentSession(); List<Variable> variables = new LinkedList<>(); try{ session.beginTransaction(); @@ -62,7 +65,7 @@ public class VariablesApi { ) { // Query DB - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + Session session = sessionFactoryBean.getCurrentSession(); Variable variable = null; try{ session.beginTransaction(); @@ -91,7 +94,7 @@ public class VariablesApi { ) { // Query DB - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + Session session = sessionFactoryBean.getCurrentSession(); List<Value> values = new LinkedList<>(); try{ session.beginTransaction(); diff --git a/src/main/resources/spring/application-context.xml b/src/main/resources/spring/application-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..f2a04f23188a55a321a26149302d0a225c411390 --- /dev/null +++ b/src/main/resources/spring/application-context.xml @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="UTF-8"?> +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:context="http://www.springframework.org/schema/context" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd"> + + <context:component-scan base-package="org.hbp.mip" /> + + <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> +<!-- + <property name="dataSource"> + <bean id="idDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> + <property name="driverClassName" value="${connection.driver_class}" /> + <property name="url" value="${connection.url}" /> + <property name="username" value="${connection.username}" /> + <property name="password" value="${connection.password}" /> + </bean> + + </property> + --> + + <property name="packagesToScan"> + <list> + <value>org.hbp.mip.model</value> + </list> + </property> + + <property name="configLocation" value="classpath:hibernate.cfg.xml" /> + </bean> + + <bean id="httpSessionCsrfTokenRepository" class="org.springframework.security.web.csrf.HttpSessionCsrfTokenRepository"> + <property name="headerName" value="X-XSRF-TOKEN" /> + </bean> + + <bean id="hbpFilter" class="org.springframework.security.oauth2.client.filter.OAuth2ClientAuthenticationProcessingFilter"> + <constructor-arg value="/login/hbp"></constructor-arg> + <property name="authenticationSuccessHandler"> + <bean class="org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler"> + <property name="defaultTargetUrl" value="http://frontend/#/home" /> + </bean> + </property> + <property name="restTemplate"> + <bean class="org.springframework.security.oauth2.client.OAuth2RestTemplate"> + <constructor-arg name="resource" ref="hbp" /> + <constructor-arg name="context" ref="oauth2ClientContext" /> + </bean> + </property> + <property name="tokenServices"> + <bean class="org.springframework.boot.autoconfigure.security.oauth2.resource.UserInfoTokenServices"> + <constructor-arg name="clientId" value="996f97c5-a3ca-460e-b18b-00df3e2be89a" /> + <constructor-arg name="userInfoEndpointUrl" value="https://services.humanbrainproject.eu/oidc/v0/api/user/me" /> + </bean> + </property> + </bean> + + +</beans> diff --git a/src/test/java/org/hbp/mip/MIPApplicationTests.java b/src/test/java/org/hbp/mip/MIPApplicationTests.java index 5a885f6853c28558210622526b4690c095ad59dd..b6f5a5a80fc6a6362eb4ee18863e629e09eb5a75 100644 --- a/src/test/java/org/hbp/mip/MIPApplicationTests.java +++ b/src/test/java/org/hbp/mip/MIPApplicationTests.java @@ -15,19 +15,30 @@ */ package org.hbp.mip; +import static org.junit.Assert.*; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.web.WebAppConfiguration; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.SpringApplicationConfiguration; +import org.springframework.orm.hibernate4.LocalSessionFactoryBean; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) -@SpringApplicationConfiguration(classes = MIPApplication.class) @WebAppConfiguration +@SpringApplicationConfiguration(classes=MIPApplication.class, locations={"classpath:spring/application-context.xml"}) public class MIPApplicationTests { + @Autowired + LocalSessionFactoryBean sessionFactoryBean; + @Test public void contextLoads() { } + @Test + public void testMainApp() { + assertNotNull(sessionFactoryBean); + } + }