diff --git a/meecrowave-oauth2-minimal/src/main/java/org/apache/meecrowave/oauth2/configuration/OAuth2Configurer.java b/meecrowave-oauth2-minimal/src/main/java/org/apache/meecrowave/oauth2/configuration/OAuth2Configurer.java
index 94f9865..f5871ce 100644
--- a/meecrowave-oauth2-minimal/src/main/java/org/apache/meecrowave/oauth2/configuration/OAuth2Configurer.java
+++ b/meecrowave-oauth2-minimal/src/main/java/org/apache/meecrowave/oauth2/configuration/OAuth2Configurer.java
@@ -463,21 +463,21 @@
         return userSubject;
     }
 
-    private void forwardRolesAsClaims(final UserSubject subject) {
+    protected void forwardRolesAsClaims(final UserSubject subject) {
         if (configuration.isForwardRoleAsJwtClaims() && subject.getRoles() != null) {
             subject.setProperties(new HashMap<>());
             subject.getProperties().put("claim.roles", String.join(", ", subject.getRoles()));
         }
     }
 
-    private void forwardClaims(final Client client, final UserSubject subject,
-                               final ServerAccessToken serverAccessToken) {
+    protected void forwardClaims(final Client client, final UserSubject subject,
+                                 final ServerAccessToken serverAccessToken) {
         forwardClientClaims(client, serverAccessToken);
         forwardUserClaims(subject, serverAccessToken);
     }
 
-    private void forwardUserClaims(final UserSubject subject,
-                                   final ServerAccessToken serverAccessToken) {
+    protected void forwardUserClaims(final UserSubject subject,
+                                     final ServerAccessToken serverAccessToken) {
         if (subject.getProperties() == null || subject.getProperties().isEmpty()) {
             return;
         }
