Project

General

Profile

« Previous | Next » 

Revision 62395

[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.

View differences:

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