1.0.0.Beta3
acoburn
released this
07 Jun 20:58
·
537 commits
to main
since this release
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
andDigest
(#479) - The high level
SolidClient
now generates specialized exceptions corresponding to specific HTTP error codes, such asNotFoundException
(#480) - The AccessGrant client now supports a
verify
method (#403) - The AccessGrantClient includes two new methods:
requestAccess
andgrantAccess
, making the type structure reflect the access request/grant interaction (#461) - The AccessGrantClient now also supports a
denyAccess
method for generatingAccessDenial
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 anAccessRequest
andAccessDenial
class. These and theAccessGrant
class now both derive from theAccessCredential
base class. Many of the existingAccessGrantClient
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 nowSet<URI> getTypes()
. The previous methods have been marked as deprecated. - 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 theOpenIdSession
class directly (#411)