diff --git a/common/taskana-common-security/src/main/java/pro/taskana/common/internal/security/CurrentUserContextImpl.java b/common/taskana-common-security/src/main/java/pro/taskana/common/internal/security/CurrentUserContextImpl.java index c2fb2756a..d6954f3d8 100644 --- a/common/taskana-common-security/src/main/java/pro/taskana/common/internal/security/CurrentUserContextImpl.java +++ b/common/taskana-common-security/src/main/java/pro/taskana/common/internal/security/CurrentUserContextImpl.java @@ -51,7 +51,7 @@ public class CurrentUserContextImpl implements CurrentUserContext { @Override @SuppressWarnings("removal") public List getGroupIds() { - // TODO replace with Subject.current() when migrating to newer Version then 17 + // TODO replace with Subject.current() when migrating to newer Version than 17 Subject subject = Subject.getSubject(AccessController.getContext()); LOGGER.trace("Subject of caller: {}", subject); if (subject != null) { @@ -129,7 +129,7 @@ public class CurrentUserContextImpl implements CurrentUserContext { @SuppressWarnings("removal") private String getUserIdFromJaasSubject() { - // TODO replace with Subject.current() when migrating to newer Version then 17 + // TODO replace with Subject.current() when migrating to newer Version than 17 Subject subject = Subject.getSubject(AccessController.getContext()); LOGGER.trace("Subject of caller: {}", subject); if (subject != null) { diff --git a/rest/taskana-rest-spring-example-boot/src/main/java/pro/taskana/example/boot/security/BootWebSecurityConfigurer.java b/rest/taskana-rest-spring-example-boot/src/main/java/pro/taskana/example/boot/security/BootWebSecurityConfigurer.java index d97f25477..7987730bf 100644 --- a/rest/taskana-rest-spring-example-boot/src/main/java/pro/taskana/example/boot/security/BootWebSecurityConfigurer.java +++ b/rest/taskana-rest-spring-example-boot/src/main/java/pro/taskana/example/boot/security/BootWebSecurityConfigurer.java @@ -13,6 +13,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.annotation.web.configurers.HeadersConfigurer; +import org.springframework.security.config.annotation.web.configurers.RequestCacheConfigurer; import org.springframework.security.config.ldap.LdapPasswordComparisonAuthenticationManagerFactory; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; @@ -88,6 +89,7 @@ public class BootWebSecurityConfigurer { } else { addLoginPageConfiguration(http); } + http.requestCache(RequestCacheConfigurer::disable); return http.build(); } @@ -123,7 +125,12 @@ public class BootWebSecurityConfigurer { authorizeHttpRequests -> authorizeHttpRequests.anyRequest().fullyAuthenticated()) .formLogin( formLogin -> - formLogin.loginPage("/login").failureUrl("/login?error").defaultSuccessUrl("/")) + formLogin + .loginPage("/login") + .failureUrl("/login?error") + .defaultSuccessUrl("/index.html") + .permitAll() + ) .logout( logout -> logout @@ -131,7 +138,9 @@ public class BootWebSecurityConfigurer { .clearAuthentication(true) .logoutRequestMatcher(new AntPathRequestMatcher("/logout")) .logoutSuccessUrl("/login?logout") - .deleteCookies("JSESSIONID")); + .deleteCookies("JSESSIONID") + .permitAll() + ); } protected JaasApiIntegrationFilter jaasApiIntegrationFilter() { diff --git a/rest/taskana-rest-spring-example-boot/src/main/resources/application.properties b/rest/taskana-rest-spring-example-boot/src/main/resources/application.properties index 10705fa61..a36772247 100644 --- a/rest/taskana-rest-spring-example-boot/src/main/resources/application.properties +++ b/rest/taskana-rest-spring-example-boot/src/main/resources/application.properties @@ -1,5 +1,5 @@ logging.level.pro.taskana=INFO -logging.level.org.springframework.security=INFO +logging.level.org.springframework=INFO server.servlet.context-path=/taskana taskana.routing.dmn.upload.path=/tmp/routing.dmn ######## Taskana DB ####### diff --git a/rest/taskana-rest-spring-example-common/src/main/java/pro/taskana/example/rest/WebMvcConfig.java b/rest/taskana-rest-spring-example-common/src/main/java/pro/taskana/example/rest/WebMvcConfig.java index 938653071..a98a7f3f3 100644 --- a/rest/taskana-rest-spring-example-common/src/main/java/pro/taskana/example/rest/WebMvcConfig.java +++ b/rest/taskana-rest-spring-example-common/src/main/java/pro/taskana/example/rest/WebMvcConfig.java @@ -19,7 +19,7 @@ public class WebMvcConfig implements WebMvcConfigurer { private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { "classpath:/META-INF/resources/", "classpath:/resources/", - "classpath:/static/", "classpath:/public/" + "classpath:/static/", "classpath:/public/", "classpath:/templates/" }; private final ObjectMapper objectMapper; diff --git a/rest/taskana-rest-spring-example-common/src/main/java/pro/taskana/example/rest/controllers/ViewController.java b/rest/taskana-rest-spring-example-common/src/main/java/pro/taskana/example/rest/controllers/TaskanaRedirectToIndexHtmlController.java similarity index 75% rename from rest/taskana-rest-spring-example-common/src/main/java/pro/taskana/example/rest/controllers/ViewController.java rename to rest/taskana-rest-spring-example-common/src/main/java/pro/taskana/example/rest/controllers/TaskanaRedirectToIndexHtmlController.java index 288a28cc2..0111b3c83 100644 --- a/rest/taskana-rest-spring-example-common/src/main/java/pro/taskana/example/rest/controllers/ViewController.java +++ b/rest/taskana-rest-spring-example-common/src/main/java/pro/taskana/example/rest/controllers/TaskanaRedirectToIndexHtmlController.java @@ -5,10 +5,10 @@ import org.springframework.web.bind.annotation.GetMapping; /** The view controller. */ @Controller -public class ViewController { +public class TaskanaRedirectToIndexHtmlController { @GetMapping(path = {"", "taskana/**"}) public String index() { - return "forward:/index.html"; + return "redirect:/index.html"; } } diff --git a/rest/taskana-rest-spring-example-wildfly/src/main/java/pro/taskana/example/wildfly/security/ElytronToJaasFilter.java b/rest/taskana-rest-spring-example-wildfly/src/main/java/pro/taskana/example/wildfly/security/ElytronToJaasFilter.java index 04cc4d26b..870301d00 100644 --- a/rest/taskana-rest-spring-example-wildfly/src/main/java/pro/taskana/example/wildfly/security/ElytronToJaasFilter.java +++ b/rest/taskana-rest-spring-example-wildfly/src/main/java/pro/taskana/example/wildfly/security/ElytronToJaasFilter.java @@ -56,7 +56,7 @@ public class ElytronToJaasFilter extends GenericFilterBean { @SuppressWarnings("removal") private Subject obtainSubject() { - // TODO replace with Subject.current() when migrating to newer Version then 17 + // TODO replace with Subject.current() when migrating to newer Version than 17 Subject subject = Subject.getSubject(java.security.AccessController.getContext()); if (logger.isDebugEnabled()) { logger.debug("Current JAAS subject: " + subject); diff --git a/rest/taskana-rest-spring-test-lib/src/main/java/pro/taskana/rest/test/SpringSecurityToJaasFilter.java b/rest/taskana-rest-spring-test-lib/src/main/java/pro/taskana/rest/test/SpringSecurityToJaasFilter.java index af05671ef..62362d65b 100644 --- a/rest/taskana-rest-spring-test-lib/src/main/java/pro/taskana/rest/test/SpringSecurityToJaasFilter.java +++ b/rest/taskana-rest-spring-test-lib/src/main/java/pro/taskana/rest/test/SpringSecurityToJaasFilter.java @@ -68,7 +68,7 @@ public class SpringSecurityToJaasFilter extends GenericFilterBean { if (authentication.isEmpty() || !authentication.get().isAuthenticated()) { return Optional.empty(); } - // TODO replace with Subject.current() when migrating to newer Version then 17 + // TODO replace with Subject.current() when migrating to newer Version than 17 return Optional.of(Subject.getSubject(AccessController.getContext())); } diff --git a/rest/taskana-rest-spring/src/main/java/pro/taskana/common/rest/SpringSecurityToJaasFilter.java b/rest/taskana-rest-spring/src/main/java/pro/taskana/common/rest/SpringSecurityToJaasFilter.java index 33b62bf45..8c374343b 100644 --- a/rest/taskana-rest-spring/src/main/java/pro/taskana/common/rest/SpringSecurityToJaasFilter.java +++ b/rest/taskana-rest-spring/src/main/java/pro/taskana/common/rest/SpringSecurityToJaasFilter.java @@ -67,8 +67,8 @@ public class SpringSecurityToJaasFilter extends GenericFilterBean { if (authentication.isEmpty() || !authentication.get().isAuthenticated()) { return Optional.empty(); } - // TODO replace with Subject.current() when migrating to newer Version then 17 - return Optional.of(Subject.getSubject(AccessController.getContext())); + // TODO replace with Subject.current() when migrating to newer Version than 17 + return Optional.ofNullable(Subject.getSubject(AccessController.getContext())); } Optional getCurrentAuthentication() {