diff --git a/src/server-cm/src/main/java/co/oslc/refimpl/cm/gen/servlet/Application.java b/src/server-cm/src/main/java/co/oslc/refimpl/cm/gen/servlet/Application.java index 749478fa..a1f0d08d 100644 --- a/src/server-cm/src/main/java/co/oslc/refimpl/cm/gen/servlet/Application.java +++ b/src/server-cm/src/main/java/co/oslc/refimpl/cm/gen/servlet/Application.java @@ -151,6 +151,7 @@ public Set getSingletons() { // Start of user code Custom Resource Classes RESOURCE_CLASSES.add(OslcCorsFilter.class); RESOURCE_CLASSES.add(OslcCspFilter.class); + RESOURCE_CLASSES.add(ExtendedPropWriteInterceptor.class); // End of user code RESOURCE_SHAPE_PATH_TO_RESOURCE_CLASS_MAP.put(OslcConstants.PATH_ALLOWED_VALUES, AllowedValues.class); diff --git a/src/server-cm/src/main/java/co/oslc/refimpl/cm/gen/servlet/ExtendedPropWriteInterceptor.java b/src/server-cm/src/main/java/co/oslc/refimpl/cm/gen/servlet/ExtendedPropWriteInterceptor.java new file mode 100644 index 00000000..d6c5a580 --- /dev/null +++ b/src/server-cm/src/main/java/co/oslc/refimpl/cm/gen/servlet/ExtendedPropWriteInterceptor.java @@ -0,0 +1,32 @@ +package co.oslc.refimpl.cm.gen.servlet; + +import co.oslc.refimpl.cm.gen.CMConstants; +import co.oslc.refimpl.cm.gen.auth.AuthenticationApplication; +import org.eclipse.lyo.oslc4j.core.model.ServiceProviderCatalog; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.ws.rs.WebApplicationException; +import javax.ws.rs.ext.Provider; +import javax.ws.rs.ext.WriterInterceptor; +import javax.ws.rs.ext.WriterInterceptorContext; +import javax.xml.namespace.QName; +import java.io.IOException; + +@Provider +public class ExtendedPropWriteInterceptor implements WriterInterceptor { + private static final QName OAUTH_REALM_NAME = new QName("http://jazz.net/xmlns/prod/jazz/jfs/1.0/", "oauthRealmName"); + private final Logger log = LoggerFactory.getLogger(ExtendedPropWriteInterceptor.class); + + @Override + public void aroundWriteTo(WriterInterceptorContext context) throws IOException, WebApplicationException { + log.info("Interceptor called"); + final Object entity = context.getEntity(); + if (entity instanceof ServiceProviderCatalog) { + final ServiceProviderCatalog catalog = (ServiceProviderCatalog) entity; + catalog.getExtendedProperties().put(OAUTH_REALM_NAME, AuthenticationApplication.OAUTH_REALM); + context.setEntity(catalog); + } + context.proceed(); + } +}