Revision 62395
Added by Konstantina Galouni about 2 years ago
modules/uoa-admin-tools/trunk/src/main/java/eu/dnetlib/uoaadmintools/UoaAdminToolsApplication.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import com.fasterxml.jackson.databind.ObjectMapper; |
4 | 4 |
import eu.dnetlib.uoaadmintools.configuration.GlobalVars; |
5 |
import eu.dnetlib.uoaadmintools.configuration.properties.BrowserCacheConfig; |
|
5 | 6 |
import eu.dnetlib.uoaadmintools.configuration.properties.ManagersApiConfig; |
6 | 7 |
import eu.dnetlib.uoaadmintools.configuration.properties.MongoConfig; |
7 | 8 |
import eu.dnetlib.uoaadmintoolslibrary.UoaAdminToolsLibraryConfiguration; |
... | ... | |
23 | 24 |
@PropertySource("classpath:admintools.properties"), |
24 | 25 |
@PropertySource(value = "classpath:dnet-override.properties", ignoreResourceNotFound = true) |
25 | 26 |
}) |
26 |
@EnableConfigurationProperties({MongoConfig.class, ManagersApiConfig.class, GlobalVars.class}) |
|
27 |
@EnableConfigurationProperties({MongoConfig.class, ManagersApiConfig.class, BrowserCacheConfig.class, GlobalVars.class})
|
|
27 | 28 |
@Import({AuthorizationConfiguration.class, UoaAdminToolsLibraryConfiguration.class}) |
28 | 29 |
public class UoaAdminToolsApplication { |
29 | 30 |
|
modules/uoa-admin-tools/trunk/src/main/java/eu/dnetlib/uoaadmintools/configuration/properties/BrowserCacheConfig.java | ||
---|---|---|
1 |
package eu.dnetlib.uoaadmintools.configuration.properties; |
|
2 |
import org.springframework.boot.context.properties.ConfigurationProperties; |
|
3 |
|
|
4 |
@ConfigurationProperties("admintool.cache") |
|
5 |
public class BrowserCacheConfig { |
|
6 |
|
|
7 |
private String url; |
|
8 |
|
|
9 |
public String getUrl() { |
|
10 |
return url; |
|
11 |
} |
|
12 |
|
|
13 |
public void setUrl(String url) { |
|
14 |
this.url = url; |
|
15 |
} |
|
16 |
} |
modules/uoa-admin-tools/trunk/src/main/java/eu/dnetlib/uoaadmintools/controllers/BrowserCacheController.java | ||
---|---|---|
1 |
package eu.dnetlib.uoaadmintools.controllers; |
|
2 |
|
|
3 |
import eu.dnetlib.uoaadmintools.configuration.properties.BrowserCacheConfig; |
|
4 |
import org.apache.log4j.Logger; |
|
5 |
import org.springframework.beans.factory.annotation.Autowired; |
|
6 |
import org.springframework.http.ResponseEntity; |
|
7 |
import org.springframework.security.access.prepost.PreAuthorize; |
|
8 |
import org.springframework.web.bind.annotation.*; |
|
9 |
import org.springframework.web.client.HttpClientErrorException; |
|
10 |
import org.springframework.web.client.ResourceAccessException; |
|
11 |
import org.springframework.web.client.RestTemplate; |
|
12 |
|
|
13 |
@RestController |
|
14 |
@RequestMapping("/cache") |
|
15 |
@CrossOrigin(origins = "*") |
|
16 |
public class BrowserCacheController { |
|
17 |
private final Logger log = Logger.getLogger(this.getClass()); |
|
18 |
|
|
19 |
@Autowired |
|
20 |
private RestTemplate restTemplate; |
|
21 |
|
|
22 |
@Autowired |
|
23 |
private BrowserCacheConfig config; |
|
24 |
|
|
25 |
@PreAuthorize("hasAnyAuthority(" + |
|
26 |
"@AuthorizationService.PORTAL_ADMIN, " + |
|
27 |
"@AuthorizationService.curator('community'), @AuthorizationService.manager('community', #pid))") |
|
28 |
@RequestMapping(value = "/{pid}", method = RequestMethod.GET) |
|
29 |
public boolean purge(@PathVariable(value = "pid") String pid) { |
|
30 |
try { |
|
31 |
ResponseEntity<Object> responseEntity = restTemplate.getForEntity(config.getUrl().replace("{community}", pid), Object.class); |
|
32 |
} catch(HttpClientErrorException httpClientErrorException) { |
|
33 |
log.debug("Purge browser cache: HttpClientErrorException for "+pid + " - code: " + httpClientErrorException.getStatusCode()); |
|
34 |
} catch(ResourceAccessException resourceAccessException) { |
|
35 |
log.debug("Purge browser cache: ResourceAccessException for "+pid); |
|
36 |
} catch(Exception exception) { |
|
37 |
log.debug("Purge browser cache: " + exception.getClass() + " for "+pid); |
|
38 |
} |
|
39 |
return true; |
|
40 |
} |
|
41 |
} |
modules/uoa-admin-tools/trunk/src/main/resources/admintools.properties | ||
---|---|---|
16 | 16 |
admintool.managers.api.email = http://dl170.madgik.di.uoa.gr:8180/dnet-openaire-users-1.0.0-SNAPSHOT/api/registry/community/{community}/managers/email |
17 | 17 |
admintool.globalVars.buildDate=@timestamp@ |
18 | 18 |
admintool.globalVars.version=@project.version@ |
19 |
admintool.cache.url = https://beta.{community}.openaire.eu/purge/ |
|
19 | 20 |
|
20 | 21 |
#beta |
21 | 22 |
#admintool.security.userInfoUrl = https://beta.services.openaire.eu/uoa-user-management/api/users/getUserInfo?accessToken= |
Also available in: Unified diff
[Admin tools | Trunk]: Added endpoing for purging browser cache.
1. admintools.properties: Added property "admintool.cache.url".
2. BrowserCacheConfig.java: Added config for browser cache properties.
3. UoaAdminToolsApplication.java: In EnableConfigurationProperties added BrowserCacheConfig.
4. BrowserCacheController.java: Added class and method "purge()" (/cache/{pid}) for purging browser cache for a specific community.