diff --git a/.project b/.project index 242df50..681106c 100644 --- a/.project +++ b/.project @@ -5,6 +5,11 @@ + + org.eclipse.wst.common.project.facet.core.builder + + + org.eclipse.jdt.core.javabuilder @@ -19,5 +24,6 @@ org.eclipse.jdt.core.javanature org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature diff --git a/README.md b/README.md index f9b72da..04deb72 100644 --- a/README.md +++ b/README.md @@ -19,9 +19,9 @@ https://letsencrypt.org/getting-started/ # TODO -- umschalten von Ausgabe auf Entnahme möglich? Ansonsten Pseudo-Kategorie aus Edit-Fenster entfernen -- Auslagen in Modal anzeigen und zurücksetzen -- verschiedene Hintergrundfarben für Auslagen, je nach User +- Server: SSL und logs konfigurieren +- Benutzer-Passwörter ändern und Hashing einführen + - Export als CSV - Import von comdirect mit Mustererkennung und Muster-Editor diff --git a/pom.xml b/pom.xml index daf68c6..b6987e4 100644 --- a/pom.xml +++ b/pom.xml @@ -3,8 +3,8 @@ 4.0.0 de.tilman next-transactions - 0.0.1-SNAPSHOT - + 1.0.0 + org.springframework.boot spring-boot-starter-parent @@ -34,7 +34,6 @@ 1.8 - diff --git a/src/main/java/de/tilman/transactions/Application.java b/src/main/java/de/tilman/transactions/Application.java index 057d377..b5533f4 100644 --- a/src/main/java/de/tilman/transactions/Application.java +++ b/src/main/java/de/tilman/transactions/Application.java @@ -1,67 +1,51 @@ package de.tilman.transactions; -import javax.annotation.PostConstruct; - -import org.h2.server.web.WebServlet; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.context.embedded.ServletRegistrationBean; -import org.springframework.context.annotation.Bean; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.authority.AuthorityUtils; -import org.springframework.security.core.context.SecurityContextHolder; - -import de.tilman.transactions.domain.Account; -import de.tilman.transactions.domain.User; -import de.tilman.transactions.repository.AccountRepository; -import de.tilman.transactions.repository.UserRepository; @SpringBootApplication public class Application { - + public static void main(String[] args) { SpringApplication.run(Application.class); } - private static final Logger log = LoggerFactory.getLogger(Application.class); +// private static final Logger log = LoggerFactory.getLogger(Application.class); +// +// @Autowired UserRepository userRepository; +// @Autowired AccountRepository accountRepository; +// +// +// // XXX for dev +// @PostConstruct +// public void init() { +// +// /** +// * Due to method-level protections the security context must be loaded +// * with an authentication token containing the necessary privileges. +// */ +// SecurityContextHolder.getContext().setAuthentication( +// new UsernamePasswordAuthenticationToken("system", "system", AuthorityUtils.createAuthorityList("ROLE_ADMIN", "ROLE_USER"))); +// +// log.info("Users:"); +// for (User user : userRepository.findAll()) { +// log.info(user.getId() + ", " + user.getName()); +// } +// +// log.info("Accounts:"); +// for (Account account : accountRepository.findAll()) { +// log.info(account.getId() + ", " + account.getName() /* + ", " + account.getOwner().getName() */); +// } +// +// SecurityContextHolder.clearContext(); +// } - @Autowired UserRepository userRepository; - @Autowired AccountRepository accountRepository; - - - // XXX for dev - @PostConstruct - public void init() { - - /** - * Due to method-level protections the security context must be loaded - * with an authentication token containing the necessary privileges. - */ - SecurityContextHolder.getContext().setAuthentication( - new UsernamePasswordAuthenticationToken("system", "system", AuthorityUtils.createAuthorityList("ROLE_ADMIN", "ROLE_USER"))); - - log.info("Users:"); - for (User user : userRepository.findAll()) { - log.info(user.getId() + ", " + user.getName()); - } - - log.info("Accounts:"); - for (Account account : accountRepository.findAll()) { - log.info(account.getId() + ", " + account.getName() /* + ", " + account.getOwner().getName() */); - } - - SecurityContextHolder.clearContext(); - } - - // XXX for dev - make H2 database available as jdbc:h2:mem:testdb at /console (https://springframework.guru/using-the-h2-database-console-in-spring-boot-with-spring-security/) - @Bean - public ServletRegistrationBean h2servletRegistration() { - ServletRegistrationBean registration = new ServletRegistrationBean(new WebServlet()); - registration.addUrlMappings("/console/*"); - return registration; - } +// // XXX for dev - make H2 database available as jdbc:h2:mem:testdb at /console (https://springframework.guru/using-the-h2-database-console-in-spring-boot-with-spring-security/) +// @Bean +// public ServletRegistrationBean h2servletRegistration() { +// ServletRegistrationBean registration = new ServletRegistrationBean(new WebServlet()); +// registration.addUrlMappings("/console/*"); +// return registration; +// } } diff --git a/src/main/java/de/tilman/transactions/SecurityConfiguration.java b/src/main/java/de/tilman/transactions/SecurityConfiguration.java index 67fcc7f..f203a09 100644 --- a/src/main/java/de/tilman/transactions/SecurityConfiguration.java +++ b/src/main/java/de/tilman/transactions/SecurityConfiguration.java @@ -26,13 +26,13 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter { // Basis-Schutz: Nur autorisierte Zugriffe (feingranulare Steuerung über Assertions) http.authorizeRequests() .antMatchers(HttpMethod.GET, "/public/**").permitAll() - .antMatchers("/console/**").permitAll() +// .antMatchers("/console/**").permitAll() // H2 console .anyRequest().authenticated(); http.httpBasic(); // XXX mit HTTP Basic Auth funktioniert der Logout nicht richtig // http.formLogin(); http.csrf().disable(); // XXX später wieder aktivieren - http.headers().frameOptions().disable(); +// http.headers().frameOptions().disable(); // for H2 console } } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 78c3363..a93852b 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,5 +1,13 @@ spring.datasource.platform=h2 -security.user.name=sa -security.user.password= +server.port=8084 + + +# for production + +spring.jpa.hibernate.ddl-auto=none + +spring.datasource.url=jdbc:h2:tcp://localhost/transactions +spring.datasource.username=sa +spring.datasource.password=PASSWORD + -server.port=8080