Class CaldavPersonalCredentialsSource

java.lang.Object
org.exoplatform.caldav.provider.CaldavPersonalCredentialsSource
All Implemented Interfaces:
org.exoplatform.services.connector.credentials.PersonalCredentialsSource

@Component @ConditionalOnClass(org.exoplatform.services.connector.credentials.PersonalCredentialsSource.class) public class CaldavPersonalCredentialsSource extends Object implements org.exoplatform.services.connector.credentials.PersonalCredentialsSource
Exposes the CalDAV connector's own stored personal credentials to the generic PersonalCredentialsProvider.

Goes through CaldavConnectorStorage directly, not CaldavConnectorService: the service's own getCaldavSetting(...) deliberately blanks the password before returning it (it exists only to feed the browser-facing settings REST, the relay injecting the real credentials server-side) - using it here would silently produce material with no secret.

Announces itself to PersonalCredentialsProvider from its own @PostConstruct rather than waiting to be collected: this WAR's Spring context is built after the provider's, so a List<PersonalCredentialsSource> injected over there would be resolved before this bean existed - and would stay empty, silently, since a missing source produces no credentials rather than an error.

Two guards, both for this addon's own Spring test contexts rather than for a platform without the credentials module: that module is a provided prerequisite of this WAR - CaldavCredentialsResolver requires its ConnectorCredentialsService bean outright, and the client and the relay require the resolver - so the WAR does not start without it, and the addon's install notes must say so. @ConditionalOnClass is kept as a belt-and-braces guard, evaluated from bytecode metadata so the class is never loaded; @Autowired(required = false) plus the null check below cover the case where the class is there but the provider bean is not, which is exactly what a context built from this addon's beans alone looks like.

  • Constructor Details

    • CaldavPersonalCredentialsSource

      public CaldavPersonalCredentialsSource(CaldavConnectorStorage caldavConnectorStorage, org.exoplatform.social.core.manager.IdentityManager identityManager)
  • Method Details

    • register

      @PostConstruct public void register()
      Announces this source to the generic Personal provider, if that provider is there at all.
      See Also:
      • PersonalCredentialsProvider.register(PersonalCredentialsSource)
    • getConnectorKind

      public String getConnectorKind()
      Specified by:
      getConnectorKind in interface org.exoplatform.services.connector.credentials.PersonalCredentialsSource
    • getCredentials

      public org.exoplatform.services.connector.credentials.RawCredentials getCredentials(String username)
      Specified by:
      getCredentials in interface org.exoplatform.services.connector.credentials.PersonalCredentialsSource