We are using SBT as a proxy to access Smartcloud content via OAuth2.
We need to retrieve profile details for the logged in user on the server side using Java. In order to do so we call new com.ibm.sbt.services.client.smartcloud.profiles.ProfileService("smartcloudOA2").getMyProfile()
. This was working fine until I realized that the returned profile object contains deprecated user profile details.
When I try to get profile details using new com.ibm.sbt.services.client.connections.profiles.ProfileService("smartcloudOA2").getMyProfile()
I get following exception :
java.lang.IllegalArgumentException: Missing parameter: connections
at com.ibm.sbt.services.client.base.URLPattern.checkNoMissingParameters(URLPattern.java:67)
at com.ibm.sbt.services.client.base.URLPattern.format(URLPattern.java:58)
at com.ibm.sbt.services.client.base.URLBuilder.format(URLBuilder.java:82)
at com.ibm.sbt.services.client.connections.profiles.ProfileUrls.format(ProfileUrls.java:69)
at com.ibm.sbt.services.client.connections.profiles.ProfileService.getMyUserId(ProfileService.java:879)
at com.ibm.sbt.services.client.connections.profiles.ProfileService.getMyProfile(ProfileService.java:894)
at de.timetoact.xcc.conf.CloudServlet.doGet(CloudServlet.java:53)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:575)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1274)
at [internal classes]
at com.ibm.sbt.util.SBTFilter.doFilter(SBTFilter.java:53)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:194)
at [internal classes]
This is how the managed-beans.xml looks like:
...
<!-- Default Environment -->
<managed-bean>
<managed-bean-name>defaultEnvironment</managed-bean-name>
<managed-bean-class>com.ibm.sbt.jslibrary.SBTEnvironment
</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
<managed-property>
<property-name>endpoints</property-name>
<value>smartcloudOA2</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>smartcloudOA2</managed-bean-name>
<managed-bean-class>com.ibm.sbt.services.endpoints.SmartCloudOAuth2Endpoint
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>url</property-name>
<value>%{smartcloud.url}</value>
</managed-property>
<managed-property>
<property-name>appName</property-name>
<value>%{smartcloud.appName}</value>
</managed-property>
<managed-property>
<property-name>clientID</property-name>
<value>%{smartcloud.clientID}</value>
</managed-property>
<managed-property>
<property-name>clientSecret</property-name>
<value>%{smartcloud.clientSecret}
</value>
</managed-property>
<managed-property>
<property-name>forceTrustSSLCertificate</property-name>
<value>true</value>
</managed-property>
<managed-property>
<property-name>credentialStore</property-name>
<value>CredStore</value>
</managed-property>
</managed-bean>
...
Is com.ibm.sbt.services.endpoints.SmartCloudOAuth2Endpoint
compatible with com.ibm.sbt.services.client.connections.profiles.ProfileService
?
What is the best way to retrieve Smartcloud User Profile Information on the server side using SBT Java API?