Open Services for Lifecycle Collaboration (OSLC) Server
Open Services for Lifecycle Collaboration (OSLC) services are used to simplify integration across the lifecycle management tools. Windchill PDMLink supports the OSLC specification by default and enable the OSLC clients to use these services to integrate with Windchill PDMLink.
The Windchill PDMLink OSLC APIs allow OSLC clients to query and link to Windchill PDMLink parts based on the OSLC specifications. Windchill PDMLink supports the following OSLC specifications:
Configuration Management 1.0 (for exposing Windchill PDMLink Parts)
The Windchill OSLC Services are responsible for mapping Windchill PDMLink objects to a corresponding OSLC resource and provide the response for these resources in the requested format. Following are the supported formats:
rdf+xml (Default)
text/turtle
* 
The Windchill OSLC Services can be used only by OSLC clients; non-OSLC clients must use the Windchill PDMLink (OData) Rest Services (WRS).
OSLC Catalog
The OSLC Catalog can be accessed at http(s)://<server>:<port>/Windchill/oslc/catalog for more information on all available services, resources and terminology.
Configuring OAuth Authorization
The default authorization for the Windchill PDMLink OSLC Services is basic authorization. An additional configuration step is required to enable OAuth authorization. See Configure OAuth Delegated Authorization for steps to configure Windchill PDMLink to use OAuth. After Windchill PDMLink OAuth is configured, set the following Windchill PDMLink properties:
Property Name
Description
oslc.authorizationURI
URI for obtaining OAuth authorization
oslc.oauthAccessTokenURI
URI for obtaining OAuth access token
oslc.oauthRequestTokenURI
URI for obtaining OAuth request token
When the OSLC OAuth properties are configured, the Windchill PDMLink OSLC Catalog includes the OAuthConfiguration property, which allows OSLC clients to discover that they should use OAuth authorization.
* 
When you use OAuth authorization, make sure all requests to OSLC endpoints are prefixed with the configured SpringSecurityFilterChain url pattern. For example, if SpringSecurityFilterChain is configured with the /oauth/* url pattern, all OSLC endpoints must have the /oauth/oslc/* url pattern.
Configuration Required after Windchill Update
To enable the Windchill PDMLink OSLC Services after updating from a previous version of Windchill PDMLink, perform the following steps:
1. Add the following entry to %WT_HOME%/codebase/WEB_INF/web.xml
<servlet-mapping>
<servlet-name>OSLCServlet</servlet-name>
<url-pattern>/oslc/*</url-pattern>
</servlet-mapping>
2. To add the OSLC path to the Apache configuration, add the following entry to HTTPServer/conf/conf.d/30-app-Windchill-AJP.conf
JkMount /Windchill/oslc/* ajpWorker
3. To configure the OSLC catalog for anonymous access in the Apache configuration, add the following entry to HTTPServer/conf/conf.d/30-app-Windchill-Auth.conf
<LocationMatch ^/+Windchill/+oslc/catalog(;.*)?>
Require all granted
</LocationMatch>
Configuration for Content Security Policy
To allow client sites from other sites to view OSLC previews, update the web.xml file to include the following OSLC Content Security servlet filter configurations:
<filter>
<filter-name>OSLCContentSecurityFilter</filter-name>
<description>Servlet request filter to set the Content Security Policy for previews</description>
<filter-class>com.ptc.oslc.windchill.filter.OSLCHttpHeaderSecurityFilter</filter-class>
<init-param>
<param-name>allowedOrigins</param-name>
<param-value>https://site1.domain.com,https://site2.domain.com </param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>OSLCContentSecurityFilter</filter-name>
<url-pattern>/oslc/*</url-pattern>
</filter-mapping>
Configuration for Cross-Origin Resource Sharing (CORS) for OSLC
* 
For a more secure configuration, use the CORS filter for a cross-domain OSLC configuration only.
* 
When configuring Windchill PDMLink to share OSLC resources with other PTC OSLC client applications, install these applications in the same domain.
To allow client sites from other sites to view OSLC services, update the web.xml file to include the following servlet filter configurations:
<filter>
<filter-name>ContentCorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>[ALLOWED_ORIGINS]</param-value>
</init-param>
<init-param>
<param-name>cors.support.credentials</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET,POST,OPTIONS</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>Content-Type,X-Requested-With</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>ContentCorsFilter</filter-name>
<url-pattern>/oslc/preview/*</url-pattern>
<url-pattern>/oslc/config/*</url-pattern>
</filter-mapping>