Skip to content

Commit 00d187f

Browse files
committed
Ref #29480: use versioned assets
1 parent 6e7dc14 commit 00d187f

File tree

2 files changed

+23
-12
lines changed

2 files changed

+23
-12
lines changed

src/main/java/eu/openanalytics/containerproxy/security/WebSecurityConfig.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import eu.openanalytics.containerproxy.auth.IAuthenticationBackend;
2525
import eu.openanalytics.containerproxy.auth.UserLogoutHandler;
2626
import eu.openanalytics.containerproxy.auth.impl.OpenIDAuthenticationBackend;
27+
import eu.openanalytics.containerproxy.service.IdentifierService;
2728
import eu.openanalytics.containerproxy.util.AppRecoveryFilter;
2829
import eu.openanalytics.containerproxy.util.EnvironmentUtils;
2930
import eu.openanalytics.containerproxy.util.OverridingHeaderWriter;
@@ -93,6 +94,9 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
9394

9495
@Inject
9596
private AppRecoveryFilter appRecoveryFilter;
97+
98+
@Inject
99+
private IdentifierService identifierService;
96100

97101
@Autowired(required=false)
98102
private List<ICustomSecurityConfig> customConfigs;
@@ -108,13 +112,6 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
108112

109113
@Override
110114
public void configure(WebSecurity web) {
111-
// web
112-
// .ignoring().antMatchers("/css/**").and()
113-
// .ignoring().antMatchers("/img/**").and()
114-
// .ignoring().antMatchers("/js/**").and()
115-
// .ignoring().antMatchers("/assets/**").and()
116-
// .ignoring().antMatchers("/webjars/**").and();
117-
//
118115
if (customConfigs != null) {
119116
for (ICustomSecurityConfig cfg: customConfigs) {
120117
try {
@@ -225,7 +222,13 @@ public void handle(HttpServletRequest request, HttpServletResponse response, Acc
225222
if (auth.hasAuthorization()) {
226223
http.authorizeRequests().antMatchers(
227224
"/login", "/signin/**", "/auth-error", "/error", "/app-access-denied", "/logout-success",
228-
"/favicon.ico", "/css/**", "/img/**", "/js/**", "/assets/**", "/webjars/**").permitAll();
225+
"/favicon.ico",
226+
"/" + identifierService.instanceId + "/css/**", "/css/**",
227+
"/" + identifierService.instanceId + "/img/**", "/img/**",
228+
"/" + identifierService.instanceId + "/js/**", "/js/**",
229+
"/" + identifierService.instanceId + "/assets/**", "/assets/**",
230+
"/" + identifierService.instanceId + "/webjars/**", "/webjars/**"
231+
).permitAll();
229232
http
230233
.formLogin()
231234
.loginPage("/login")

src/main/java/eu/openanalytics/containerproxy/ui/TemplateResolverConfig.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,10 @@
2020
*/
2121
package eu.openanalytics.containerproxy.ui;
2222

23+
import eu.openanalytics.containerproxy.service.IdentifierService;
2324
import eu.openanalytics.containerproxy.util.EnvironmentUtils;
24-
import org.springframework.beans.factory.annotation.Value;
2525
import org.springframework.context.annotation.Bean;
2626
import org.springframework.context.annotation.Configuration;
27-
import org.springframework.context.annotation.PropertySource;
2827
import org.springframework.core.env.Environment;
2928
import org.springframework.web.servlet.config.annotation.CorsRegistry;
3029
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
@@ -33,7 +32,6 @@
3332

3433
import javax.annotation.Nonnull;
3534
import javax.inject.Inject;
36-
import java.util.ArrayList;
3735
import java.util.List;
3836

3937
@Configuration
@@ -45,11 +43,21 @@ public class TemplateResolverConfig implements WebMvcConfigurer {
4543

4644
@Inject
4745
private Environment environment;
46+
47+
@Inject
48+
private IdentifierService identifierService;
4849

4950
@Override
5051
public void addResourceHandlers(ResourceHandlerRegistry registry) {
5152
registry.addResourceHandler("/assets/**")
52-
.addResourceLocations("file:" + environment.getProperty(PROP_TEMPLATE_PATH) + "/assets/");
53+
.addResourceLocations("file:" + environment.getProperty(PROP_TEMPLATE_PATH) + "/assets/");
54+
// next line is to have versioned (based on shinyproxy instance) assets
55+
registry.addResourceHandler("/" + identifierService.instanceId + "/**")
56+
.addResourceLocations("classpath:/static/");
57+
registry.addResourceHandler("/" + identifierService.instanceId + "/webjars/**")
58+
.addResourceLocations("/webjars/");
59+
registry.addResourceHandler("/" + identifierService.instanceId + "/assets/**")
60+
.addResourceLocations("file:" + environment.getProperty(PROP_TEMPLATE_PATH) + "/assets/");
5361
}
5462

5563
@Bean

0 commit comments

Comments
 (0)