Skip to content

Release Version 11.9.0 (March 2022)

Compare
Choose a tag to compare
@hosy hosy released this 18 Mar 13:36
· 138 commits to master since this release

11.9 version

  • Authentication: new type OCAuthenticationDataID
    • an ID that's unique for every OCBookmark.authenticationData and changes when the authenticationData is changed
    • is attached to OCHTTPRequests and OCHTTPResponses, allowing to determine if a request's "Authorization" is based on a different token
  • OCHTTPRequest / OCHTTPResponse
    • add authenticationDataID property
    • added counter to logged "Authorization" header fields that allow to determine if its contents was changed between requests
    • the counter issues a new number for every new and not previously used header field contents
    • initial idea was to log the OCAuthenticationDataID, but that could have given hints to its content
  • OCAuthenticationMethodOAuth2 / OCAuthenticationMethodOIDC:
    • add support for authenticationDataID
    • in case of preemptive token renewals, now reloads the secret from keychain and performs another date check before triggering a refresh
    • used OCAuthenticationDataID to reschedule/resend HTTP requests that were responded to with a 401 status code and that was sent with another (older) token
  • OCAuthenticationMethodBasicAuth
    • store authenticationDataID when loading secret
  • OCBookmark
    • add .authenticationDataID property that returns the OCAuthenticationDataID for the bookmark's authenticationData
    • add .user property, storing the last retrieved version of OCConnection.loggedInUser
    • use .user property to compose WebDAV endpoint path (fixing owncloud/enterprise#4924 )
  • OCChecksumAlgorithm: add convenience method to use OCChecksumAlgorithms for checksum calculations on NSData objects
  • Server Locator: allow locating the actual server for a user via webfinger or lookup table
  • OCCore+CommandLocalModification: no longer handle failure of -startAccessingSecurityScopedResource as an error, as that may indicate the inputFileURL is not actually security scoped, not that the file can't be accessed. Fixes enterprise#4934.

11.8.1 version

  • OCSQL: add collation support via new OCSQLiteCollation class, making it as simple as possible to encapsulate and add collations, avoiding string format conversions (i.e. UTF-8 <-> UTF-16) where possible
  • OCSQL: add collation OCSQLiteCollationLocalized (OCLOCALIZED) for "Finder-like" sorting
  • OCDatabase+Schema: upgrade schema for metadata to use OCLOCALIZED for item name
  • OAuth2 improvements
    • add authentication-oauth2.oidc-fallback-on-client-registration-failure (default: true). Allows the automatic fallback to default client_id / client_secret if OpenID Connect Dynamic Client Registration fails with any error.
    • store token expiration timespan and - if stored token expiration timespan < (safetyMargin + 20) seconds - no longer preemptively refresh the token within the safety margin
  • OCConnection: remove authenticated WebDAV request asking root WebDAV endpoint for D:supported-method-set, instead rely on capabilities to respond with an authentication error if auth credentials are not valid.
  • OCBookmark: add first-level support for access to the user.displayName with new property userDisplayName. The property is kept up-to-date by OCConnection, which updates it on every connect, if it was changed
  • OCBookmarkManager: fix possible deadlock

11.8 version

  • Infinite PROPFIND: add support for dav > propfind > depth_infinity capability
  • OCLocale: modular localization system replacing direct system localization calls, allowing overrides via MDM and Branding.plist, adding variable support
  • OCCore+FileProvider: add handling for edge case when the database is not available or not open, preventing a hang
  • OCCore+ItemList: implement coordinated scan for changes
    • synchronizes scans for changes across processes
    • prioritizes scans, giving the app highest and the fileprovider second highest priority
    • consolidate related log messages under ScanChanges tag (including PollForChanges and UpdateScan)
  • OCLock: add support for trying to acquire a lock and immediately returning with the result, with a new OCErrorLockInvalidated error code in case the lock couldn't be acquired
  • OCSQLiteDB: disable statement caching in minimum memory configuration
  • Browser Session Class: add AWBrowser to simplify configuration for AirWatch browser
  • Class Settings: metadata type corrections; no longer output "computed: ''" entries for class settings in the LogIntro if it is the only entry for that MDM parameter