22
33import java .net .URI ;
44
5- import javax .servlet .http .HttpServletRequest ;
65import javax .servlet .http .HttpServletResponse ;
76
7+ import org .apache .http .HttpHeaders ;
88import org .springframework .context .ApplicationListener ;
99import org .springframework .stereotype .Component ;
10- import org .springframework .web .util . UriTemplate ;
10+ import org .springframework .web .servlet . support . ServletUriComponentsBuilder ;
1111
1212import com .google .common .base .Preconditions ;
13- import com .google .common .net .HttpHeaders ;
1413
1514@ Component
1615class ResourceCreatedDiscoverabilityListener implements ApplicationListener <ResourceCreated > {
@@ -19,16 +18,17 @@ class ResourceCreatedDiscoverabilityListener implements ApplicationListener<Reso
1918 public void onApplicationEvent (final ResourceCreated resourceCreatedEvent ) {
2019 Preconditions .checkNotNull (resourceCreatedEvent );
2120
22- final HttpServletRequest request = resourceCreatedEvent .getRequest ();
2321 final HttpServletResponse response = resourceCreatedEvent .getResponse ();
2422 final long idOfNewResource = resourceCreatedEvent .getIdOfNewResource ();
2523
26- addLinkHeaderOnResourceCreation (request , response , idOfNewResource );
24+ addLinkHeaderOnResourceCreation (response , idOfNewResource );
2725 }
2826
29- void addLinkHeaderOnResourceCreation (final HttpServletRequest request , final HttpServletResponse response , final long idOfNewResource ) {
30- final String requestUrl = request .getRequestURL ().toString ();
31- final URI uri = new UriTemplate ("{requestUrl}/{idOfNewResource}" ).expand (requestUrl , idOfNewResource );
27+ void addLinkHeaderOnResourceCreation (final HttpServletResponse response , final long idOfNewResource ) {
28+ // final String requestUrl = request.getRequestURL().toString();
29+ // final URI uri = new UriTemplate("{requestUrl}/{idOfNewResource}").expand(requestUrl, idOfNewResource);
30+
31+ final URI uri = ServletUriComponentsBuilder .fromCurrentRequestUri ().path ("/{idOfNewResource}" ).buildAndExpand (idOfNewResource ).toUri ();
3232 response .setHeader (HttpHeaders .LOCATION , uri .toASCIIString ());
3333 }
3434
0 commit comments