Skip to content

1.0.0.Beta3

Compare
Choose a tag to compare
@acoburn acoburn released this 07 Jun 20:58
· 537 commits to main since this release
inrupt-client-1.0.0.Beta3
982cce2

This is the third beta release of the Inrupt Client Libraries for Java.

The Inrupt Client Libraries are designed to make it easier for developers to interact with Solid Resources. The libraries provide a session management abstraction that supports OpenID Connect tokens as well as Access Grants. In addition, there are mechanisms for mapping RDF-based resources into domain-specific Java objects.

Features

Below is a summary of the new features included in this release:

  • A caching layer is now present, including implementations written with Guava and Caffeine (#410)
  • Session objects are more efficient by caching access tokens (#459)
  • Session objects now support a reset() method to clear any internal state (#475)
  • An inrupt-client-runtime module is now present, allowing application developers to add a single dependency to their application (#416)
  • Weak authorization mechanisms are explicitly disallowed in the reactive authorization module, such as Basic and Digest (#479)
  • The high level SolidClient now generates specialized exceptions corresponding to specific HTTP error codes, such as NotFoundException (#480)
  • The AccessGrant client now supports a verify method (#403)
  • The AccessGrantClient includes two new methods: requestAccess and grantAccess, making the type structure reflect the access request/grant interaction (#461)
  • The AccessGrantClient now also supports a denyAccess method for generating AccessDenial objects (#476)
  • The AccessGrantClient query method now distinguishes between the creator and recipient of an access credential (#505)
  • The AccessGrantClient query method now accepts a purpose argument (#499)
  • The AccessGrant module now includes a utility to make it easier to edit Access Control resources so that Access Grants may be used for authorization (#473)

Bug Fixes

Below is a summary of bug fixes included in this release:

  • Fixed concurrent OpenID Connect session refresh error, improving concurrency support generally (#456)
  • The AccessGrant library now uses the correct data subject property for access requests (#446)
  • Improved support for reading non-RDF resources via the high-level SolidClient (#445)
  • The AccessGrant library now correctly serializes expiration dates as ISO-8601 strings (#437)
  • The AccessGrantClient now uses the correct integer value for revocation status requests (#502)

Complete Changelog: 1.0.0.Beta2 ... 1.0.0.Beta3

Upgrade notes

  • In the accessgrant module, the type hierarchy has been expanded to include an AccessRequest and AccessDenial class. These and the AccessGrant class now both derive from the AccessCredential base class. Many of the existing AccessGrantClient methods have been deprecated in favor of new methods that work with this type hierarchy (#461)
  • As part of (#449) the getter methods in the WebIdProfile class have been pluralized. For example, Set<URI> getType() is now Set<URI> getTypes(). The previous methods have been marked as deprecated.
    • Similarly, the AccessGrant::getPurpose method has been deprecated in favor of AccessGrant::getPurposes (#460)
    • Similarly, the Metadata::getType method has been deprecated in favor of Metadata::getTypes (#472)
  • Jakarta EE 10+ is now supported throughout the code base. This is particularly relevant for the inrupt-client-jsonb module, which now will require a Jakarta EE 10+ implementation for any application code that uses that module (#432)
  • The UmaSession class is now deprecated. Please use the OpenIdSession class directly (#411)