Update Collecting Data authored by Janne Lauros's avatar Janne Lauros
Connected Services and Activity pages require collecting and storing data of the authentication sequences.
# Collecting Data
Plugin installation introduces a new interceptor flow `user-profile`. The `user-profile` flow is responsible of executing all collecting and storing actions and it has to be set as interceptor for each profile configuration data is collected from.
```
<!-- Collecting User Profile data only for SAML2 and OIDC clients -->
<bean id="shibboleth.DefaultRelyingParty" parent="RelyingParty">
<property name="profileConfigurations">
<list>
<bean parent="SAML2.SSO" p:outboundInterceptorFlows="#{{'user-profile'}}" p:checkAddress="false" p:signAssertions="true"/>
<bean parent="OIDC.SSO" p:outboundInterceptorFlows="#{{'user-profile'}}"/>
<bean parent="OAUTH2.Token" p:outboundInterceptorFlows="#{{'user-profile'}}"/>
<bean parent="OIDC.UserInfo"/>
</list>
</property>
</bean>
```
Having the interceptor is only a prerequisite for actual data collection. See Connected Services and Activity specific chapters on how to activate specific data collection.
# Data Storage
Data storage options are in `userprofile.properties` - file.
| Property Name | Default |Description |
| ------ | ------ |------ |
| idp.userprofile.StorageService |shibboleth.StorageService| Default storage service |
| idp.userprofile.recordexExpiration |PT2Y| Expiration time for dormant user record |
The default in-memory storage service can be used only for initial testing. A more permanent server-side [storage implementation](https://shibboleth.atlassian.net/wiki/spaces/IDP4/pages/1265631707/StorageConfiguration#Storage-Implementations) should be used in the long run.
\ No newline at end of file