This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/master by this push:
new f84e6e55bb Various dependency upgrades following CAS 7.0
f84e6e55bb is described below
commit f84e6e55bb5d8f05041fed1f000dedceb0c81b00
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
AuthorDate: Fri Sep 15 11:24:02 2023 +0200
Various dependency upgrades following CAS 7.0
---
.github/workflows/codeql-analysis.yml | 4 +-
.github/workflows/crosschecks.yml | 4 +-
.github/workflows/fit_Elasticsearch.yml | 4 +-
.github/workflows/fit_Payara.yml | 4 +-
.github/workflows/fit_Tomcat_H2_JSON.yml | 4 +-
.github/workflows/fit_Tomcat_H2_XML.yml | 4 +-
.github/workflows/fit_Tomcat_H2_YAML.yml | 4 +-
.github/workflows/fit_WA_SAML2PS4UI_OIDCC4UI.yml | 4 +-
.github/workflows/fit_WA_SRA_CASClient.yml | 4 +-
.github/workflows/fit_WA_SRA_OAuth2.yml | 4 +-
.github/workflows/fit_WA_SRA_OIDC.yml | 4 +-
.github/workflows/fit_WA_SRA_SAML2.yml | 4 +-
.github/workflows/fit_Wildfly.yml | 4 +-
.github/workflows/fit_Zookeeper.yml | 4 +-
.github/workflows/mariadb.yml | 4 +-
.github/workflows/mysql.yml | 8 +-
.github/workflows/oracle.yml | 8 +-
.github/workflows/postgresql.yml | 8 +-
.../authprofiles/AuthProfileDirectoryPanel.java | 59 --------
.../client/console/commons/AMConstants.java | 3 -
.../AuthProfileDirectoryPanel.properties | 3 -
.../AuthProfileDirectoryPanel_fr_CA.properties | 3 -
.../AuthProfileDirectoryPanel_it.properties | 3 -
.../AuthProfileDirectoryPanel_ja.properties | 3 -
.../AuthProfileDirectoryPanel_pt_BR.properties | 3 -
.../AuthProfileDirectoryPanel_ru.properties | 3 -
.../syncope/client/ui/commons/BaseSession.java | 4 +-
.../syncope/common/lib/auth/AuthModuleConf.java | 2 -
.../syncope/common/lib/auth/U2FAuthModuleConf.java | 77 -----------
.../syncope/common/lib/to/AuthProfileTO.java | 26 ----
.../apache/syncope/common/lib/wa/U2FDevice.java | 121 ----------------
.../common/rest/api/beans/U2FDeviceQuery.java | 92 ------------
.../api/service/wa/U2FRegistrationService.java | 62 ---------
.../apache/syncope/core/logic/AMLogicContext.java | 11 --
.../core/logic/wa/U2FRegistrationLogic.java | 154 ---------------------
.../syncope/core/rest/cxf/AMRESTCXFContext.java | 9 --
.../cxf/service/wa/U2FRegistrationServiceImpl.java | 60 --------
.../apache/syncope/core/logic/ConnectorLogic.java | 8 +-
.../persistence/api/entity/am/AuthProfile.java | 5 -
.../src/test/resources/domains/MasterContent.xml | 2 -
.../persistence/jpa/entity/am/JPAAuthProfile.java | 18 ---
.../core/persistence/jpa/inner/AuthModuleTest.java | 32 -----
.../persistence/jpa/inner/AuthProfileTest.java | 32 +----
.../src/test/resources/domains/MasterContent.xml | 2 -
.../java/data/AuthProfileDataBinderImpl.java | 2 -
.../provisioning/java/job/AfterHandlingJob.java | 5 +-
.../PriorityPropagationTaskExecutor.java | 5 +-
.../java/pushpull/PullJobDelegate.java | 13 +-
.../java/pushpull/PushJobDelegate.java | 13 +-
.../pushpull/stream/StreamPushJobDelegate.java | 10 +-
.../core/provisioning/java/utils/MappingUtils.java | 5 +-
.../implementation/ImplementationManager.java | 13 +-
.../core/spring/security/AuthDataAccessor.java | 4 +-
.../support/SyncopeIdmIdentityService.java | 7 +-
.../apache/syncope/core/logic/OIDCC4UILogic.java | 7 +-
.../org/apache/syncope/fit/AbstractITCase.java | 4 -
.../apache/syncope/fit/console/UsersITCase.java | 12 +-
.../apache/syncope/fit/core/AuthModuleITCase.java | 46 +-----
.../syncope/fit/core/wa/U2FRegistrationITCase.java | 94 -------------
pom.xml | 35 +++--
sra/pom.xml | 1 -
.../syncope/sra/ApplicationContextUtils.java | 7 +-
.../apache/syncope/sra/security/cas/CASUtils.java | 5 +-
.../security/pac4j/ServerWebExchangeContext.java | 18 ++-
.../concepts/authenticationmodules.adoc | 1 -
.../mapping/AuthModulePropertySourceMapper.java | 16 ---
wa/starter/pom.xml | 8 --
.../syncope/wa/starter/config/WAContext.java | 21 ---
.../wa/starter/config/WARefreshContextJob.java | 4 +-
.../idp/metadata/WASamlIdPMetadataGenerator.java | 5 -
.../wa/starter/u2f/WAU2FDeviceRepository.java | 138 ------------------
.../WASurrogateAuthenticationServiceTest.java | 2 +-
72 files changed, 127 insertions(+), 1255 deletions(-)
diff --git a/.github/workflows/codeql-analysis.yml
b/.github/workflows/codeql-analysis.yml
index 48f092755b..b1ade62adf 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -46,11 +46,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
diff --git a/.github/workflows/crosschecks.yml
b/.github/workflows/crosschecks.yml
index 01eac38fa3..ffe2735772 100644
--- a/.github/workflows/crosschecks.yml
+++ b/.github/workflows/crosschecks.yml
@@ -33,7 +33,7 @@ jobs:
fail-fast: false
matrix:
language: ['java']
- java: [ '17', '20' ]
+ java: [ '21-ea' ]
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
@@ -47,7 +47,7 @@ jobs:
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
diff --git a/.github/workflows/fit_Elasticsearch.yml
b/.github/workflows/fit_Elasticsearch.yml
index 59800b34a1..6c55ee97a9 100644
--- a/.github/workflows/fit_Elasticsearch.yml
+++ b/.github/workflows/fit_Elasticsearch.yml
@@ -36,11 +36,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
diff --git a/.github/workflows/fit_Payara.yml b/.github/workflows/fit_Payara.yml
index 0a816ad336..0d438ee18a 100644
--- a/.github/workflows/fit_Payara.yml
+++ b/.github/workflows/fit_Payara.yml
@@ -36,11 +36,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
diff --git a/.github/workflows/fit_Tomcat_H2_JSON.yml
b/.github/workflows/fit_Tomcat_H2_JSON.yml
index 50151ffdbe..bd48e74757 100644
--- a/.github/workflows/fit_Tomcat_H2_JSON.yml
+++ b/.github/workflows/fit_Tomcat_H2_JSON.yml
@@ -36,11 +36,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
diff --git a/.github/workflows/fit_Tomcat_H2_XML.yml
b/.github/workflows/fit_Tomcat_H2_XML.yml
index 50322cb695..c70ffa5dff 100644
--- a/.github/workflows/fit_Tomcat_H2_XML.yml
+++ b/.github/workflows/fit_Tomcat_H2_XML.yml
@@ -36,11 +36,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
diff --git a/.github/workflows/fit_Tomcat_H2_YAML.yml
b/.github/workflows/fit_Tomcat_H2_YAML.yml
index b8066a5c97..b9eca28a64 100644
--- a/.github/workflows/fit_Tomcat_H2_YAML.yml
+++ b/.github/workflows/fit_Tomcat_H2_YAML.yml
@@ -36,11 +36,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
diff --git a/.github/workflows/fit_WA_SAML2PS4UI_OIDCC4UI.yml
b/.github/workflows/fit_WA_SAML2PS4UI_OIDCC4UI.yml
index f19a1a8f74..c81a2e1ec6 100644
--- a/.github/workflows/fit_WA_SAML2PS4UI_OIDCC4UI.yml
+++ b/.github/workflows/fit_WA_SAML2PS4UI_OIDCC4UI.yml
@@ -36,11 +36,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
diff --git a/.github/workflows/fit_WA_SRA_CASClient.yml
b/.github/workflows/fit_WA_SRA_CASClient.yml
index 8f00bbfe53..ac84ef464a 100644
--- a/.github/workflows/fit_WA_SRA_CASClient.yml
+++ b/.github/workflows/fit_WA_SRA_CASClient.yml
@@ -36,11 +36,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
diff --git a/.github/workflows/fit_WA_SRA_OAuth2.yml
b/.github/workflows/fit_WA_SRA_OAuth2.yml
index fb9617bdf0..0dacfcd464 100644
--- a/.github/workflows/fit_WA_SRA_OAuth2.yml
+++ b/.github/workflows/fit_WA_SRA_OAuth2.yml
@@ -36,11 +36,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
diff --git a/.github/workflows/fit_WA_SRA_OIDC.yml
b/.github/workflows/fit_WA_SRA_OIDC.yml
index 9b3cc7edfe..4d516a8152 100644
--- a/.github/workflows/fit_WA_SRA_OIDC.yml
+++ b/.github/workflows/fit_WA_SRA_OIDC.yml
@@ -36,11 +36,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
diff --git a/.github/workflows/fit_WA_SRA_SAML2.yml
b/.github/workflows/fit_WA_SRA_SAML2.yml
index 62c4459cdd..c5d80690fc 100644
--- a/.github/workflows/fit_WA_SRA_SAML2.yml
+++ b/.github/workflows/fit_WA_SRA_SAML2.yml
@@ -36,11 +36,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
diff --git a/.github/workflows/fit_Wildfly.yml
b/.github/workflows/fit_Wildfly.yml
index 82a54ad592..7ab1730bd7 100644
--- a/.github/workflows/fit_Wildfly.yml
+++ b/.github/workflows/fit_Wildfly.yml
@@ -36,11 +36,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
diff --git a/.github/workflows/fit_Zookeeper.yml
b/.github/workflows/fit_Zookeeper.yml
index 543004138e..164c70e065 100644
--- a/.github/workflows/fit_Zookeeper.yml
+++ b/.github/workflows/fit_Zookeeper.yml
@@ -36,11 +36,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
diff --git a/.github/workflows/mariadb.yml b/.github/workflows/mariadb.yml
index 2dadc3e1db..8a15fb4185 100644
--- a/.github/workflows/mariadb.yml
+++ b/.github/workflows/mariadb.yml
@@ -36,11 +36,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
diff --git a/.github/workflows/mysql.yml b/.github/workflows/mysql.yml
index 63608cdf4f..1c9637bc0e 100644
--- a/.github/workflows/mysql.yml
+++ b/.github/workflows/mysql.yml
@@ -36,11 +36,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
@@ -62,11 +62,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
diff --git a/.github/workflows/oracle.yml b/.github/workflows/oracle.yml
index 42b7aa7af7..eab09625aa 100644
--- a/.github/workflows/oracle.yml
+++ b/.github/workflows/oracle.yml
@@ -36,11 +36,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
@@ -62,11 +62,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
diff --git a/.github/workflows/postgresql.yml b/.github/workflows/postgresql.yml
index 33113c082e..c330f54417 100644
--- a/.github/workflows/postgresql.yml
+++ b/.github/workflows/postgresql.yml
@@ -36,11 +36,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
@@ -62,11 +62,11 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: 17
+ java-version: 21-ea
- name: Setup Maven
uses: stCarolas/[email protected]
with:
- maven-version: 3.9.0
+ maven-version: 3.9.4
- uses: actions/cache@v3
with:
path: ~/.m2/repository
diff --git
a/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.java
b/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.java
index 44f49d8d86..af2015268b 100644
---
a/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.java
+++
b/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.java
@@ -46,7 +46,6 @@ import org.apache.syncope.common.lib.wa.GoogleMfaAuthAccount;
import org.apache.syncope.common.lib.wa.GoogleMfaAuthToken;
import org.apache.syncope.common.lib.wa.ImpersonationAccount;
import org.apache.syncope.common.lib.wa.MfaTrustedDevice;
-import org.apache.syncope.common.lib.wa.U2FDevice;
import org.apache.syncope.common.lib.wa.WebAuthnDeviceCredential;
import org.apache.wicket.PageReference;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -149,15 +148,6 @@ public class AuthProfileDirectoryPanel
return
!rowModel.getObject().getGoogleMfaAuthAccounts().isEmpty();
}
});
- columns.add(new BooleanConditionColumn<>(new
StringResourceModel("u2fRegisteredDevices")) {
-
- private static final long serialVersionUID = -8236820422411536323L;
-
- @Override
- protected boolean isCondition(final IModel<AuthProfileTO>
rowModel) {
- return
!rowModel.getObject().getU2FRegisteredDevices().isEmpty();
- }
- });
columns.add(new BooleanConditionColumn<>(new
StringResourceModel("mfaTrustedDevices")) {
private static final long serialVersionUID = -8236820422411536323L;
@@ -329,55 +319,6 @@ public class AuthProfileDirectoryPanel
}
}, ActionLink.ActionType.EXECUTE, AMEntitlement.AUTH_PROFILE_UPDATE);
- panel.add(new ActionLink<>() {
-
- private static final long serialVersionUID = -3722207913631435501L;
-
- @Override
- public void onClick(final AjaxRequestTarget target, final
AuthProfileTO ignore) {
- model.setObject(restClient.read(model.getObject().getKey()));
- target.add(authProfileModal.setContent(new
ModalDirectoryPanel<>(
- authProfileModal,
- new AuthProfileItemDirectoryPanel<U2FDevice>(
- "panel", restClient, authProfileModal,
model.getObject(), pageRef) {
-
- private static final long serialVersionUID =
5788448799796630011L;
-
- @Override
- protected List<U2FDevice> getItems() {
- return model.getObject().getU2FRegisteredDevices();
- }
-
- @Override
- protected U2FDevice defaultItem() {
- return new U2FDevice();
- }
-
- @Override
- protected String sortProperty() {
- return "id";
- }
-
- @Override
- protected String paginatorRowsKey() {
- return
AMConstants.PREF_AUTHPROFILE_U2FDEVICES_PAGINATOR_ROWS;
- }
-
- @Override
- protected List<IColumn<U2FDevice, String>> getColumns() {
- List<IColumn<U2FDevice, String>> columns = new
ArrayList<>();
- columns.add(new PropertyColumn<>(new
ResourceModel("id"), "id", "id"));
- columns.add(new DatePropertyColumn<>(
- new ResourceModel("issueDate"), "issueDate",
"issueDate"));
- columns.add(new PropertyColumn<>(new
ResourceModel("record"), "record", "record"));
- return columns;
- }
- }, pageRef)));
- authProfileModal.header(new
Model<>(getString("u2fRegisteredDevices", model)));
- authProfileModal.show(true);
- }
- }, ActionLink.ActionType.DEPROVISION,
AMEntitlement.AUTH_PROFILE_UPDATE);
-
panel.add(new ActionLink<>() {
private static final long serialVersionUID = -3722207913631435501L;
diff --git
a/client/am/console/src/main/java/org/apache/syncope/client/console/commons/AMConstants.java
b/client/am/console/src/main/java/org/apache/syncope/client/console/commons/AMConstants.java
index 08c9663fb5..3f6af5ab8d 100644
---
a/client/am/console/src/main/java/org/apache/syncope/client/console/commons/AMConstants.java
+++
b/client/am/console/src/main/java/org/apache/syncope/client/console/commons/AMConstants.java
@@ -48,9 +48,6 @@ public final class AMConstants {
public static final String
PREF_AUTHPROFILE_GOOGLEMFAAUTHACCOUNTS_PAGINATOR_ROWS =
"authprofile.googlemfaauthaccounts.paginator.rows";
- public static final String PREF_AUTHPROFILE_U2FDEVICES_PAGINATOR_ROWS =
- "authprofile.u2fdevices.paginator.rows";
-
public static final String
PREF_AUTHPROFILE_MFA_TRUSTED_FDEVICES_PAGINATOR_ROWS =
"authprofile.mfaTrustedDevices.paginator.rows";
diff --git
a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.properties
b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.properties
index 49b21ba589..996c6321df 100644
---
a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.properties
+++
b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel.properties
@@ -21,7 +21,6 @@ owner=Owner
impersonationAccounts=Impersonations
googleMfaAuthTokens=Google MFA Tokens
googleMfaAuthAccounts=Google MFA Accounts
-u2fRegisteredDevices=U2F Devices
webAuthnAccount=WebAuthn
type_extensions.title=impersonations
type_extensions.class=fas fa-user-friends
@@ -37,8 +36,6 @@ secretKey=Secret Key
validationCode=Validation Code
scratchCodes=Scratch Codes
record=Record
-deprovision.class=fab fa-usb
-deprovision.title=u2f Devices
identifier=Identifier
json=JSON
html.class=fas fa-at
diff --git
a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_fr_CA.properties
b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_fr_CA.properties
index 5e1a601fa4..4d543c7877 100644
---
a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_fr_CA.properties
+++
b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_fr_CA.properties
@@ -21,7 +21,6 @@ owner=Owner
impersonationAccounts=Impersonations
googleMfaAuthTokens=Google MFA Tokens
googleMfaAuthAccounts=Google MFA Accounts
-u2fRegisteredDevices=U2F Devices
webAuthnAccount=WebAuthn
type_extensions.title=impersonations
type_extensions.class=fas fa-user-friends
@@ -37,8 +36,6 @@ secretKey=Secret Key
validationCode=Validation Code
scratchCodes=Scratch Codes
record=Record
-deprovision.class=fab fa-usb
-deprovision.title=u2f Devices
identifier=Identifier
json=JSON
html.class=fas fa-at
diff --git
a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_it.properties
b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_it.properties
index eeea47d4da..e9378093ce 100644
---
a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_it.properties
+++
b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_it.properties
@@ -21,7 +21,6 @@ owner=Proprietario
impersonationAccounts=Impersonificazioni
googleMfaAuthTokens=Token Google MFA
googleMfaAuthAccounts=Account Google MFA
-u2fRegisteredDevices=Dispositivi U2F
webAuthnAccount=WebAuthn
type_extensions.title=impersonificazioni
type_extensions.class=fas fa-user-friends
@@ -37,8 +36,6 @@ secretKey=Chiave Segreta
validationCode=Codice Validazione
scratchCodes=Codici Scratch
record=Record
-deprovision.class=fab fa-usb
-deprovision.title=dispositivi u2f
identifier=Identificativo
json=JSON
html.class=fas fa-at
diff --git
a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_ja.properties
b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_ja.properties
index a7a4938210..ab9ac913c0 100644
---
a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_ja.properties
+++
b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_ja.properties
@@ -21,7 +21,6 @@ owner=Owner
impersonationAccounts=Impersonations
googleMfaAuthTokens=Google MFA Tokens
googleMfaAuthAccounts=Google MFA Accounts
-u2fRegisteredDevices=U2F Devices
webAuthnAccount=WebAuthn
type_extensions.title=impersonations
type_extensions.class=fas fa-user-friends
@@ -37,8 +36,6 @@ secretKey=Secret Key
validationCode=Validation Code
scratchCodes=Scratch Codes
record=Record
-deprovision.class=fab fa-usb
-deprovision.title=u2f Devices
identifier=Identifier
json=JSON
html.class=fas fa-at
diff --git
a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_pt_BR.properties
b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_pt_BR.properties
index 623f5481b5..fb150cd581 100644
---
a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_pt_BR.properties
+++
b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_pt_BR.properties
@@ -21,7 +21,6 @@ owner=Owner
impersonationAccounts=Impersonations
googleMfaAuthTokens=Google MFA Tokens
googleMfaAuthAccounts=Google MFA Accounts
-u2fRegisteredDevices=U2F Devices
webAuthnAccount=WebAuthn
type_extensions.title=impersonations
type_extensions.class=fas fa-user-friends
@@ -37,8 +36,6 @@ secretKey=Secret Key
validationCode=Validation Code
scratchCodes=Scratch Codes
record=Record
-deprovision.class=fab fa-usb
-deprovision.title=u2f Devices
identifier=Identifier
json=JSON
html.class=fas fa-at
diff --git
a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_ru.properties
b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_ru.properties
index e11f42941c..6cf76e3feb 100644
---
a/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_ru.properties
+++
b/client/am/console/src/main/resources/org/apache/syncope/client/console/authprofiles/AuthProfileDirectoryPanel_ru.properties
@@ -22,7 +22,6 @@ owner=Owner
impersonationAccounts=Impersonations
googleMfaAuthTokens=Google MFA Tokens
googleMfaAuthAccounts=Google MFA Accounts
-u2fRegisteredDevices=U2F Devices
webAuthnAccount=WebAuthn
type_extensions.title=impersonations
type_extensions.class=fas fa-user-friends
@@ -38,8 +37,6 @@ secretKey=Secret Key
validationCode=Validation Code
scratchCodes=Scratch Codes
record=Record
-deprovision.class=fab fa-usb
-deprovision.title=u2f Devices
identifier=Identifier
json=JSON
html.class=fas fa-at
diff --git
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/BaseSession.java
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/BaseSession.java
index 3187116192..621d729cc4 100644
---
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/BaseSession.java
+++
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/BaseSession.java
@@ -85,7 +85,7 @@ public interface BaseSession {
Locale.CANADA_FRENCH,
Locale.ITALIAN,
Locale.JAPANESE,
- new Locale("pt", "BR"),
- new Locale("ru"));
+ Locale.of("pt", "BR"),
+ Locale.of("ru"));
}
}
diff --git
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/AuthModuleConf.java
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/AuthModuleConf.java
index 8bc5a4fa6d..4e0c7f0991 100644
---
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/AuthModuleConf.java
+++
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/AuthModuleConf.java
@@ -56,8 +56,6 @@ public interface AuthModuleConf extends BaseBean {
Map<String, Object> map(AuthModuleTO authModule, DuoMfaAuthModuleConf
conf);
- Map<String, Object> map(AuthModuleTO authModule, U2FAuthModuleConf
conf);
-
Map<String, Object> map(AuthModuleTO authModule,
SimpleMfaAuthModuleConf conf);
}
diff --git
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/U2FAuthModuleConf.java
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/U2FAuthModuleConf.java
deleted file mode 100644
index 1ba76264ac..0000000000
---
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/U2FAuthModuleConf.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.common.lib.auth;
-
-import java.util.Map;
-import org.apache.syncope.common.lib.to.AuthModuleTO;
-
-public class U2FAuthModuleConf implements MFAAuthModuleConf {
-
- private static final long serialVersionUID = -1235771400318503131L;
-
- private long expireRegistrations = 30;
-
- private String expireRegistrationsTimeUnit = "SECONDS";
-
- private long expireDevices = 30;
-
- private String expireDevicesTimeUnit = "DAYS";
-
- @Override
- public String getFriendlyName() {
- return "FIDO U2F";
- }
-
- public long getExpireRegistrations() {
- return expireRegistrations;
- }
-
- public void setExpireRegistrations(final long expireRegistrations) {
- this.expireRegistrations = expireRegistrations;
- }
-
- public String getExpireRegistrationsTimeUnit() {
- return expireRegistrationsTimeUnit;
- }
-
- public void setExpireRegistrationsTimeUnit(final String
expireRegistrationsTimeUnit) {
- this.expireRegistrationsTimeUnit = expireRegistrationsTimeUnit;
- }
-
- public long getExpireDevices() {
- return expireDevices;
- }
-
- public void setExpireDevices(final long expireDevices) {
- this.expireDevices = expireDevices;
- }
-
- public String getExpireDevicesTimeUnit() {
- return expireDevicesTimeUnit;
- }
-
- public void setExpireDevicesTimeUnit(final String expireDevicesTimeUnit) {
- this.expireDevicesTimeUnit = expireDevicesTimeUnit;
- }
-
- @Override
- public Map<String, Object> map(final AuthModuleTO authModule, final Mapper
mapper) {
- return mapper.map(authModule, this);
- }
-}
diff --git
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/AuthProfileTO.java
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/AuthProfileTO.java
index f06cde8cc8..c87f13545a 100644
---
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/AuthProfileTO.java
+++
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/to/AuthProfileTO.java
@@ -30,7 +30,6 @@ import org.apache.syncope.common.lib.wa.GoogleMfaAuthAccount;
import org.apache.syncope.common.lib.wa.GoogleMfaAuthToken;
import org.apache.syncope.common.lib.wa.ImpersonationAccount;
import org.apache.syncope.common.lib.wa.MfaTrustedDevice;
-import org.apache.syncope.common.lib.wa.U2FDevice;
import org.apache.syncope.common.lib.wa.WebAuthnDeviceCredential;
public class AuthProfileTO implements EntityTO {
@@ -81,21 +80,6 @@ public class AuthProfileTO implements EntityTO {
return this;
}
- public AuthProfileTO.Builder u2fRegisteredDevice(final U2FDevice
device) {
- instance.getU2FRegisteredDevices().add(device);
- return this;
- }
-
- public AuthProfileTO.Builder u2fRegisteredDevices(final U2FDevice...
devices) {
- instance.getU2FRegisteredDevices().addAll(List.of(devices));
- return this;
- }
-
- public AuthProfileTO.Builder u2fRegisteredDevices(final
Collection<U2FDevice> devices) {
- instance.getU2FRegisteredDevices().addAll(devices);
- return this;
- }
-
public AuthProfileTO.Builder mfaTrustedDevice(final MfaTrustedDevice
device) {
instance.getMfaTrustedDevices().add(device);
return this;
@@ -141,8 +125,6 @@ public class AuthProfileTO implements EntityTO {
private final List<GoogleMfaAuthAccount> googleMfaAuthAccounts = new
ArrayList<>();
- private final List<U2FDevice> u2fRegisteredDevices = new ArrayList<>();
-
private final List<MfaTrustedDevice> mfaTrustedDevices = new ArrayList<>();
private final List<WebAuthnDeviceCredential> webAuthnDeviceCredentials =
new ArrayList<>();
@@ -184,12 +166,6 @@ public class AuthProfileTO implements EntityTO {
return googleMfaAuthAccounts;
}
- @JacksonXmlElementWrapper(localName = "u2fRegisteredDevices")
- @JacksonXmlProperty(localName = "u2fRegisteredDevice")
- public List<U2FDevice> getU2FRegisteredDevices() {
- return u2fRegisteredDevices;
- }
-
@JacksonXmlElementWrapper(localName = "mfaTrustedDevices")
@JacksonXmlProperty(localName = "mfaTrustedDevice")
public List<MfaTrustedDevice> getMfaTrustedDevices() {
@@ -210,7 +186,6 @@ public class AuthProfileTO implements EntityTO {
append(impersonationAccounts).
append(googleMfaAuthTokens).
append(googleMfaAuthAccounts).
- append(u2fRegisteredDevices).
append(mfaTrustedDevices).
append(webAuthnDeviceCredentials).
build();
@@ -234,7 +209,6 @@ public class AuthProfileTO implements EntityTO {
append(impersonationAccounts, other.impersonationAccounts).
append(googleMfaAuthTokens, other.googleMfaAuthTokens).
append(googleMfaAuthAccounts, other.googleMfaAuthAccounts).
- append(u2fRegisteredDevices, other.u2fRegisteredDevices).
append(mfaTrustedDevices, other.mfaTrustedDevices).
append(webAuthnDeviceCredentials,
other.webAuthnDeviceCredentials).
build();
diff --git
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/wa/U2FDevice.java
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/wa/U2FDevice.java
deleted file mode 100644
index 54abb47058..0000000000
---
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/wa/U2FDevice.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.common.lib.wa;
-
-import java.time.OffsetDateTime;
-import org.apache.commons.lang3.builder.EqualsBuilder;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.syncope.common.lib.BaseBean;
-
-public class U2FDevice implements BaseBean {
-
- private static final long serialVersionUID = 1185073386484048953L;
-
- public static class Builder {
-
- private final U2FDevice instance = new U2FDevice();
-
- public U2FDevice.Builder issueDate(final OffsetDateTime issued) {
- instance.setIssueDate(issued);
- return this;
- }
-
- public U2FDevice.Builder record(final String record) {
- instance.setRecord(record);
- return this;
- }
-
- public U2FDevice.Builder id(final long id) {
- instance.setId(id);
- return this;
- }
-
- public U2FDevice build() {
- return instance;
- }
- }
-
- private long id;
-
- private String record;
-
- private OffsetDateTime issueDate;
-
- public String getRecord() {
- return record;
- }
-
- public void setRecord(final String record) {
- this.record = record;
- }
-
- public long getId() {
- return id;
- }
-
- public void setId(final long id) {
- this.id = id;
- }
-
- public OffsetDateTime getIssueDate() {
- return issueDate;
- }
-
- public void setIssueDate(final OffsetDateTime issueDate) {
- this.issueDate = issueDate;
- }
-
- @Override
- public int hashCode() {
- return new HashCodeBuilder()
- .append(record)
- .append(id)
- .append(issueDate)
- .toHashCode();
- }
-
- @Override
- public boolean equals(final Object obj) {
- if (obj == null) {
- return false;
- }
- if (obj == this) {
- return true;
- }
- if (obj.getClass() != getClass()) {
- return false;
- }
- U2FDevice other = (U2FDevice) obj;
- return new EqualsBuilder()
- .append(this.record, other.record)
- .append(this.id, other.id)
- .append(this.issueDate, other.issueDate)
- .isEquals();
- }
-
- @Override
- public String toString() {
- return new ToStringBuilder(this)
- .append("record", record)
- .append("id", id)
- .append("issueDate", issueDate)
- .toString();
- }
-}
diff --git
a/common/am/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/U2FDeviceQuery.java
b/common/am/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/U2FDeviceQuery.java
deleted file mode 100644
index 09d4316774..0000000000
---
a/common/am/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/U2FDeviceQuery.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.common.rest.api.beans;
-
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.enums.ParameterIn;
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.ws.rs.QueryParam;
-import java.time.OffsetDateTime;
-
-public class U2FDeviceQuery extends AbstractQuery {
-
- private static final long serialVersionUID = -7381828286332101171L;
-
- public static class Builder extends AbstractQuery.Builder<U2FDeviceQuery,
U2FDeviceQuery.Builder> {
-
- @Override
- protected U2FDeviceQuery newInstance() {
- return new U2FDeviceQuery();
- }
-
- public U2FDeviceQuery.Builder owner(final String owner) {
- getInstance().setOwner(owner);
- return this;
- }
-
- public U2FDeviceQuery.Builder id(final Long id) {
- getInstance().setId(id);
- return this;
- }
-
- public U2FDeviceQuery.Builder expirationDate(final OffsetDateTime
date) {
- getInstance().setExpirationDate(date);
- return this;
- }
- }
-
- private Long id;
-
- private OffsetDateTime expirationDate;
-
- private String owner;
-
- @Parameter(name = "id", in = ParameterIn.QUERY, schema =
- @Schema(implementation = Long.class))
- public Long getId() {
- return id;
- }
-
- @QueryParam("id")
- public void setId(final Long id) {
- this.id = id;
- }
-
- @Parameter(name = "expirationDate", in = ParameterIn.QUERY, schema =
- @Schema(implementation = OffsetDateTime.class))
- public OffsetDateTime getExpirationDate() {
- return expirationDate;
- }
-
- @QueryParam("expirationDate")
- public void setExpirationDate(final OffsetDateTime expirationDate) {
- this.expirationDate = expirationDate;
- }
-
- @Parameter(name = "owner", in = ParameterIn.QUERY, schema =
- @Schema(implementation = String.class))
- public String getOwner() {
- return owner;
- }
-
- @QueryParam("owner")
- public void setOwner(final String owner) {
- this.owner = owner;
- }
-}
diff --git
a/common/am/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/wa/U2FRegistrationService.java
b/common/am/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/wa/U2FRegistrationService.java
deleted file mode 100644
index b2cf366982..0000000000
---
a/common/am/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/wa/U2FRegistrationService.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.common.rest.api.service.wa;
-
-import io.swagger.v3.oas.annotations.security.SecurityRequirement;
-import io.swagger.v3.oas.annotations.security.SecurityRequirements;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import jakarta.validation.constraints.NotNull;
-import jakarta.ws.rs.BeanParam;
-import jakarta.ws.rs.Consumes;
-import jakarta.ws.rs.DELETE;
-import jakarta.ws.rs.GET;
-import jakarta.ws.rs.POST;
-import jakarta.ws.rs.Path;
-import jakarta.ws.rs.PathParam;
-import jakarta.ws.rs.Produces;
-import jakarta.ws.rs.core.MediaType;
-import org.apache.syncope.common.lib.to.PagedResult;
-import org.apache.syncope.common.lib.wa.U2FDevice;
-import org.apache.syncope.common.rest.api.RESTHeaders;
-import org.apache.syncope.common.rest.api.beans.U2FDeviceQuery;
-import org.apache.syncope.common.rest.api.service.JAXRSService;
-
-@Tag(name = "WA")
-@SecurityRequirements({
- @SecurityRequirement(name = "BasicAuthentication"),
- @SecurityRequirement(name = "Bearer") })
-@Path("wa/u2f")
-public interface U2FRegistrationService extends JAXRSService {
-
- @DELETE
- @Consumes({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML,
MediaType.APPLICATION_XML })
- @Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML,
MediaType.APPLICATION_XML })
- void delete(@BeanParam U2FDeviceQuery query);
-
- @POST
- @Path("{owner}")
- @Consumes({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML,
MediaType.APPLICATION_XML })
- @Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML,
MediaType.APPLICATION_XML })
- void create(@NotNull @PathParam("owner") String owner, @NotNull U2FDevice
device);
-
- @GET
- @Consumes({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML,
MediaType.APPLICATION_XML })
- @Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML,
MediaType.APPLICATION_XML })
- PagedResult<U2FDevice> search(@BeanParam U2FDeviceQuery query);
-}
diff --git
a/core/am/logic/src/main/java/org/apache/syncope/core/logic/AMLogicContext.java
b/core/am/logic/src/main/java/org/apache/syncope/core/logic/AMLogicContext.java
index 8a365cc522..8497727db2 100644
---
a/core/am/logic/src/main/java/org/apache/syncope/core/logic/AMLogicContext.java
+++
b/core/am/logic/src/main/java/org/apache/syncope/core/logic/AMLogicContext.java
@@ -24,7 +24,6 @@ import
org.apache.syncope.core.logic.wa.GoogleMfaAuthAccountLogic;
import org.apache.syncope.core.logic.wa.GoogleMfaAuthTokenLogic;
import org.apache.syncope.core.logic.wa.ImpersonationLogic;
import org.apache.syncope.core.logic.wa.MfaTrusStorageLogic;
-import org.apache.syncope.core.logic.wa.U2FRegistrationLogic;
import org.apache.syncope.core.logic.wa.WAClientAppLogic;
import org.apache.syncope.core.logic.wa.WAConfigLogic;
import org.apache.syncope.core.logic.wa.WebAuthnRegistrationLogic;
@@ -180,16 +179,6 @@ public class AMLogicContext {
return new ImpersonationLogic(entityFactory, authProfileDAO,
authProfileDataBinder);
}
- @ConditionalOnMissingBean
- @Bean
- public U2FRegistrationLogic u2fRegistrationLogic(
- final AuthProfileDAO authProfileDAO,
- final AuthProfileDataBinder authProfileDataBinder,
- final EntityFactory entityFactory) {
-
- return new U2FRegistrationLogic(entityFactory, authProfileDAO,
authProfileDataBinder);
- }
-
@ConditionalOnMissingBean
@Bean
public MfaTrusStorageLogic mfaTrusStorageLogic(
diff --git
a/core/am/logic/src/main/java/org/apache/syncope/core/logic/wa/U2FRegistrationLogic.java
b/core/am/logic/src/main/java/org/apache/syncope/core/logic/wa/U2FRegistrationLogic.java
deleted file mode 100644
index 31f7828832..0000000000
---
a/core/am/logic/src/main/java/org/apache/syncope/core/logic/wa/U2FRegistrationLogic.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.core.logic.wa;
-
-import java.time.OffsetDateTime;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-import org.apache.commons.lang3.builder.CompareToBuilder;
-import org.apache.commons.lang3.builder.EqualsBuilder;
-import org.apache.commons.lang3.tuple.Pair;
-import org.apache.syncope.common.lib.types.IdRepoEntitlement;
-import org.apache.syncope.common.lib.wa.U2FDevice;
-import org.apache.syncope.core.logic.AbstractAuthProfileLogic;
-import org.apache.syncope.core.persistence.api.dao.AuthProfileDAO;
-import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
-import org.apache.syncope.core.persistence.api.entity.EntityFactory;
-import org.apache.syncope.core.persistence.api.entity.am.AuthProfile;
-import org.apache.syncope.core.provisioning.api.data.AuthProfileDataBinder;
-import org.springframework.security.access.prepost.PreAuthorize;
-
-public class U2FRegistrationLogic extends AbstractAuthProfileLogic {
-
- protected final EntityFactory entityFactory;
-
- public U2FRegistrationLogic(
- final EntityFactory entityFactory,
- final AuthProfileDAO authProfileDAO,
- final AuthProfileDataBinder binder) {
-
- super(authProfileDAO, binder);
- this.entityFactory = entityFactory;
- }
-
- @PreAuthorize("hasRole('" + IdRepoEntitlement.ANONYMOUS + "')")
- public void create(final String owner, final U2FDevice device) {
- AuthProfile profile = authProfileDAO.findByOwner(owner).orElseGet(()
-> {
- AuthProfile authProfile =
entityFactory.newEntity(AuthProfile.class);
- authProfile.setOwner(owner);
- return authProfile;
- });
-
- List<U2FDevice> devices = profile.getU2FRegisteredDevices();
- devices.add(device);
- profile.setU2FRegisteredDevices(devices);
- authProfileDAO.save(profile);
- }
-
- @PreAuthorize("hasRole('" + IdRepoEntitlement.ANONYMOUS + "')")
- public void delete(final Long id, final OffsetDateTime expirationDate) {
- List<AuthProfile> profiles = authProfileDAO.findAll(-1, -1);
- profiles.forEach(profile -> {
- List<U2FDevice> devices = profile.getU2FRegisteredDevices();
- if (devices != null) {
- if (id != null) {
- devices.removeIf(device -> device.getId() == id);
- } else if (expirationDate != null) {
- devices.removeIf(device ->
device.getIssueDate().compareTo(expirationDate) < 0);
- } else {
- devices = List.of();
- }
- profile.setU2FRegisteredDevices(devices);
- authProfileDAO.save(profile);
- }
- });
- }
-
- @PreAuthorize("hasRole('" + IdRepoEntitlement.ANONYMOUS + "')")
- public Pair<Integer, List<U2FDevice>> search(
- final Integer page,
- final Integer itemsPerPage,
- final Long id,
- final OffsetDateTime expirationDate,
- final List<OrderByClause> orderByClauses) {
-
- List<Comparator<U2FDevice>> comparatorList = orderByClauses.
- stream().
- map(orderByClause -> {
- Comparator<U2FDevice> comparator = null;
- if (orderByClause.getField().equals("id")) {
- comparator = (o1, o2) -> new CompareToBuilder().
- append(o1.getId(), o2.getId()).toComparison();
- }
- if (orderByClause.getField().equals("issueDate")) {
- comparator = (o1, o2) -> new CompareToBuilder().
- append(o1.getIssueDate(),
o2.getIssueDate()).toComparison();
- }
- if (orderByClause.getField().equals("record")) {
- comparator = (o1, o2) -> new CompareToBuilder().
- append(o1.getRecord(),
o2.getRecord()).toComparison();
- }
- if (comparator != null) {
- if (orderByClause.getDirection() ==
OrderByClause.Direction.DESC) {
- return comparator.reversed();
- }
- return comparator;
- }
- return null;
- }).
- filter(Objects::nonNull).
- collect(Collectors.toList());
-
- List<U2FDevice> devices = authProfileDAO.findAll(-1, -1).
- stream().
- map(AuthProfile::getU2FRegisteredDevices).
- filter(Objects::nonNull).
- flatMap(List::stream).
- filter(device -> {
- EqualsBuilder builder = new EqualsBuilder();
- if (id != null) {
- builder.append(id, (Long) device.getId());
- }
- if (expirationDate != null) {
-
builder.appendSuper(device.getIssueDate().compareTo(expirationDate) >= 0);
- }
- return builder.build();
- }).
- filter(Objects::nonNull).
- collect(Collectors.toList());
-
- List<U2FDevice> result = devices.stream().
- limit(itemsPerPage).
- skip(itemsPerPage * (page <= 0 ? 0L : page.longValue() - 1L)).
- sorted((o1, o2) -> {
- int compare;
- for (Comparator<U2FDevice> comparator : comparatorList) {
- compare = comparator.compare(o1, o2);
- if (compare != 0) {
- return compare;
- }
- }
- return 0;
- })
- .collect(Collectors.toList());
- return Pair.of(devices.size(), result);
- }
-}
diff --git
a/core/am/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/AMRESTCXFContext.java
b/core/am/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/AMRESTCXFContext.java
index 81942ea9ec..bcae28de55 100644
---
a/core/am/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/AMRESTCXFContext.java
+++
b/core/am/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/AMRESTCXFContext.java
@@ -30,7 +30,6 @@ import
org.apache.syncope.common.rest.api.service.wa.GoogleMfaAuthAccountService
import org.apache.syncope.common.rest.api.service.wa.GoogleMfaAuthTokenService;
import org.apache.syncope.common.rest.api.service.wa.ImpersonationService;
import org.apache.syncope.common.rest.api.service.wa.MfaTrustStorageService;
-import org.apache.syncope.common.rest.api.service.wa.U2FRegistrationService;
import org.apache.syncope.common.rest.api.service.wa.WAClientAppService;
import org.apache.syncope.common.rest.api.service.wa.WAConfigService;
import
org.apache.syncope.common.rest.api.service.wa.WebAuthnRegistrationService;
@@ -46,7 +45,6 @@ import
org.apache.syncope.core.logic.wa.GoogleMfaAuthAccountLogic;
import org.apache.syncope.core.logic.wa.GoogleMfaAuthTokenLogic;
import org.apache.syncope.core.logic.wa.ImpersonationLogic;
import org.apache.syncope.core.logic.wa.MfaTrusStorageLogic;
-import org.apache.syncope.core.logic.wa.U2FRegistrationLogic;
import org.apache.syncope.core.logic.wa.WAClientAppLogic;
import org.apache.syncope.core.logic.wa.WAConfigLogic;
import org.apache.syncope.core.logic.wa.WebAuthnRegistrationLogic;
@@ -62,7 +60,6 @@ import
org.apache.syncope.core.rest.cxf.service.wa.GoogleMfaAuthAccountServiceIm
import
org.apache.syncope.core.rest.cxf.service.wa.GoogleMfaAuthTokenServiceImpl;
import org.apache.syncope.core.rest.cxf.service.wa.ImpersonationServiceImpl;
import org.apache.syncope.core.rest.cxf.service.wa.MfaTrustStorageServiceImpl;
-import org.apache.syncope.core.rest.cxf.service.wa.U2FRegistrationServiceImpl;
import org.apache.syncope.core.rest.cxf.service.wa.WAClientAppServiceImpl;
import org.apache.syncope.core.rest.cxf.service.wa.WAConfigServiceImpl;
import
org.apache.syncope.core.rest.cxf.service.wa.WebAuthnRegistrationServiceImpl;
@@ -143,12 +140,6 @@ public class AMRESTCXFContext {
return new SRARouteServiceImpl(sraRouteLogic);
}
- @ConditionalOnMissingBean
- @Bean
- public U2FRegistrationService u2fRegistrationService(final
U2FRegistrationLogic u2fRegistrationLogic) {
- return new U2FRegistrationServiceImpl(u2fRegistrationLogic);
- }
-
@ConditionalOnMissingBean
@Bean
public MfaTrustStorageService mfaTrustStorageService(final
MfaTrusStorageLogic mfaTrusStorageLogic) {
diff --git
a/core/am/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/wa/U2FRegistrationServiceImpl.java
b/core/am/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/wa/U2FRegistrationServiceImpl.java
deleted file mode 100644
index 7e836e085b..0000000000
---
a/core/am/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/wa/U2FRegistrationServiceImpl.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.core.rest.cxf.service.wa;
-
-import java.util.List;
-import org.apache.commons.lang3.tuple.Pair;
-import org.apache.syncope.common.lib.to.PagedResult;
-import org.apache.syncope.common.lib.wa.U2FDevice;
-import org.apache.syncope.common.rest.api.beans.U2FDeviceQuery;
-import org.apache.syncope.common.rest.api.service.wa.U2FRegistrationService;
-import org.apache.syncope.core.logic.wa.U2FRegistrationLogic;
-import org.apache.syncope.core.rest.cxf.service.AbstractService;
-import org.springframework.stereotype.Service;
-
-@Service
-public class U2FRegistrationServiceImpl extends AbstractService implements
U2FRegistrationService {
-
- protected final U2FRegistrationLogic logic;
-
- public U2FRegistrationServiceImpl(final U2FRegistrationLogic logic) {
- this.logic = logic;
- }
-
- @Override
- public void delete(final U2FDeviceQuery query) {
- logic.delete(query.getId(), query.getExpirationDate());
- }
-
- @Override
- public void create(final String owner, final U2FDevice device) {
- logic.create(owner, device);
- }
-
- @Override
- public PagedResult<U2FDevice> search(final U2FDeviceQuery query) {
- Pair<Integer, List<U2FDevice>> result = logic.search(
- query.getPage(),
- query.getSize(),
- query.getId(),
- query.getExpirationDate(),
- getOrderByClauses(query.getOrderBy()));
- return buildPagedResult(result.getRight(), query.getPage(),
query.getSize(), result.getLeft());
- }
-}
diff --git
a/core/idm/logic/src/main/java/org/apache/syncope/core/logic/ConnectorLogic.java
b/core/idm/logic/src/main/java/org/apache/syncope/core/logic/ConnectorLogic.java
index 415b404401..955b9915d4 100644
---
a/core/idm/logic/src/main/java/org/apache/syncope/core/logic/ConnectorLogic.java
+++
b/core/idm/logic/src/main/java/org/apache/syncope/core/logic/ConnectorLogic.java
@@ -154,7 +154,7 @@ public class ConnectorLogic extends
AbstractTransactionalLogic<ConnInstanceTO> {
@PreAuthorize("hasRole('" + IdMEntitlement.CONNECTOR_LIST + "')")
@Transactional(readOnly = true)
public List<ConnInstanceTO> list(final String lang) {
- CurrentLocale.set(StringUtils.isBlank(lang) ? Locale.ENGLISH : new
Locale(lang));
+ CurrentLocale.set(StringUtils.isBlank(lang) ? Locale.ENGLISH :
Locale.of(lang));
return
connInstanceDAO.findAll().stream().map(binder::getConnInstanceTO).collect(Collectors.toList());
}
@@ -162,7 +162,7 @@ public class ConnectorLogic extends
AbstractTransactionalLogic<ConnInstanceTO> {
@PreAuthorize("hasRole('" + IdMEntitlement.CONNECTOR_READ + "')")
@Transactional(readOnly = true)
public ConnInstanceTO read(final String key, final String lang) {
- CurrentLocale.set(StringUtils.isBlank(lang) ? Locale.ENGLISH : new
Locale(lang));
+ CurrentLocale.set(StringUtils.isBlank(lang) ? Locale.ENGLISH :
Locale.of(lang));
ConnInstance connInstance = connInstanceDAO.authFind(key);
if (connInstance == null) {
@@ -178,7 +178,7 @@ public class ConnectorLogic extends
AbstractTransactionalLogic<ConnInstanceTO> {
if (StringUtils.isBlank(lang)) {
CurrentLocale.set(Locale.ENGLISH);
} else {
- CurrentLocale.set(new Locale(lang));
+ CurrentLocale.set(Locale.of(lang));
}
List<ConnIdBundle> connectorBundleTOs = new ArrayList<>();
@@ -254,7 +254,7 @@ public class ConnectorLogic extends
AbstractTransactionalLogic<ConnInstanceTO> {
@PreAuthorize("hasRole('" + IdMEntitlement.CONNECTOR_READ + "')")
@Transactional(readOnly = true)
public ConnInstanceTO readByResource(final String resourceName, final
String lang) {
- CurrentLocale.set(StringUtils.isBlank(lang) ? Locale.ENGLISH : new
Locale(lang));
+ CurrentLocale.set(StringUtils.isBlank(lang) ? Locale.ENGLISH :
Locale.of(lang));
ExternalResource resource =
Optional.ofNullable(resourceDAO.find(resourceName)).
orElseThrow(() -> new NotFoundException("Resource '" +
resourceName + '\''));
diff --git
a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/am/AuthProfile.java
b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/am/AuthProfile.java
index 2bf4554de6..bd92221511 100644
---
a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/am/AuthProfile.java
+++
b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/am/AuthProfile.java
@@ -23,7 +23,6 @@ import org.apache.syncope.common.lib.wa.GoogleMfaAuthAccount;
import org.apache.syncope.common.lib.wa.GoogleMfaAuthToken;
import org.apache.syncope.common.lib.wa.ImpersonationAccount;
import org.apache.syncope.common.lib.wa.MfaTrustedDevice;
-import org.apache.syncope.common.lib.wa.U2FDevice;
import org.apache.syncope.common.lib.wa.WebAuthnDeviceCredential;
import org.apache.syncope.core.persistence.api.entity.Entity;
@@ -37,10 +36,6 @@ public interface AuthProfile extends Entity {
void setGoogleMfaAuthTokens(List<GoogleMfaAuthToken> tokens);
- List<U2FDevice> getU2FRegisteredDevices();
-
- void setU2FRegisteredDevices(List<U2FDevice> records);
-
List<GoogleMfaAuthAccount> getGoogleMfaAuthAccounts();
void setGoogleMfaAuthAccounts(List<GoogleMfaAuthAccount> accounts);
diff --git
a/core/persistence-jpa-json/src/test/resources/domains/MasterContent.xml
b/core/persistence-jpa-json/src/test/resources/domains/MasterContent.xml
index 3c123e6b98..95ccc4b951 100644
--- a/core/persistence-jpa-json/src/test/resources/domains/MasterContent.xml
+++ b/core/persistence-jpa-json/src/test/resources/domains/MasterContent.xml
@@ -85,8 +85,6 @@ under the License.
<AuthModule id="DefaultSyncopeAuthModule" authModuleState="ACTIVE"
description="Syncope auth module"
jsonConf='{"_class":"org.apache.syncope.common.lib.auth.SyncopeAuthModuleConf","domain":"Master"}'
items='[{"intAttrName":"syncopeUserAttr_surname","extAttrName":"family_name","connObjectKey":false,"password":false,"mandatoryCondition":"false","purpose":"NONE","propagationJEXLTransformer":null,"pullJEXLTransformer":null,"transformers":[]},{"intAttrName":"syncopeUserAttr_fullname","extAttrName":"name","connObjectKey":false,"password":false,"mandatoryCondition":"false","purpose":"NONE","propagationJEXLTransformer":null,"pullJEXLTransformer":null,"transformers":[]},{"intAtt
[...]
- <AuthModule id="DefaultU2FAuthModule" authModuleState="ACTIVE"
- description="U2F auth module"
jsonConf='{"_class":"org.apache.syncope.common.lib.auth.U2FAuthModuleConf","expireDevices":40}'/>
<AuthModule id="DefaultOAuth20AuthModule" description="OAuth20 auth module"
authModuleOrder="0"
jsonConf='{"_class":"org.apache.syncope.common.lib.auth.OAuth20AuthModuleConf","clientName":"oauth20","clientId":"OAUTH20","clientSecret":"secret","enabled":true,"customParams":{},"tokenUrl":"https://localhost/oauth2/token","responseType":"code","scope":"oauth
test","userIdAttribute":"username","authUrl":"https://localhost/oauth2/auth","profileUrl":"https://localhost/oauth2/profile","withState":false,"profileVerb":"POST"}'
authModuleState="ACTIVE"/>
diff --git
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPAAuthProfile.java
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPAAuthProfile.java
index 5e15eab2c2..303436b9c3 100644
---
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPAAuthProfile.java
+++
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPAAuthProfile.java
@@ -31,7 +31,6 @@ import org.apache.syncope.common.lib.wa.GoogleMfaAuthAccount;
import org.apache.syncope.common.lib.wa.GoogleMfaAuthToken;
import org.apache.syncope.common.lib.wa.ImpersonationAccount;
import org.apache.syncope.common.lib.wa.MfaTrustedDevice;
-import org.apache.syncope.common.lib.wa.U2FDevice;
import org.apache.syncope.common.lib.wa.WebAuthnDeviceCredential;
import org.apache.syncope.core.persistence.api.entity.am.AuthProfile;
import
org.apache.syncope.core.persistence.jpa.entity.AbstractGeneratedKeyEntity;
@@ -54,9 +53,6 @@ public class JPAAuthProfile extends
AbstractGeneratedKeyEntity implements AuthPr
new TypeReference<List<GoogleMfaAuthAccount>>() {
};
- protected static final TypeReference<List<U2FDevice>> U2F_TYPEREF = new
TypeReference<List<U2FDevice>>() {
- };
-
protected static final TypeReference<List<MfaTrustedDevice>>
MFA_TRUSTED_DEVICE_TYPEREF =
new TypeReference<List<MfaTrustedDevice>>() {
};
@@ -81,9 +77,6 @@ public class JPAAuthProfile extends
AbstractGeneratedKeyEntity implements AuthPr
@Lob
private String googleMfaAuthTokens;
- @Lob
- private String u2fRegisteredDevices;
-
@Lob
private String mfaTrustedDevices;
@@ -122,17 +115,6 @@ public class JPAAuthProfile extends
AbstractGeneratedKeyEntity implements AuthPr
googleMfaAuthAccounts = POJOHelper.serialize(accounts);
}
- @Override
- public List<U2FDevice> getU2FRegisteredDevices() {
- return Optional.ofNullable(u2fRegisteredDevices).
- map(v -> POJOHelper.deserialize(v, U2F_TYPEREF)).orElseGet(()
-> new ArrayList<>(0));
- }
-
- @Override
- public void setU2FRegisteredDevices(final List<U2FDevice> devices) {
- u2fRegisteredDevices = POJOHelper.serialize(devices);
- }
-
@Override
public List<MfaTrustedDevice> getMfaTrustedDevices() {
return Optional.ofNullable(mfaTrustedDevices).
diff --git
a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AuthModuleTest.java
b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AuthModuleTest.java
index 08dda7b0d4..b9713572b1 100644
---
a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AuthModuleTest.java
+++
b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AuthModuleTest.java
@@ -38,7 +38,6 @@ import
org.apache.syncope.common.lib.auth.SAML2IdPAuthModuleConf;
import org.apache.syncope.common.lib.auth.SimpleMfaAuthModuleConf;
import org.apache.syncope.common.lib.auth.StaticAuthModuleConf;
import org.apache.syncope.common.lib.auth.SyncopeAuthModuleConf;
-import org.apache.syncope.common.lib.auth.U2FAuthModuleConf;
import org.apache.syncope.common.lib.to.Item;
import org.apache.syncope.common.lib.types.AuthModuleState;
import org.apache.syncope.core.persistence.api.dao.AuthModuleDAO;
@@ -103,10 +102,6 @@ public class AuthModuleTest extends AbstractTest {
authModule = authModuleDAO.find("DefaultSyncopeAuthModule");
assertNotNull(authModule);
assertTrue(authModule.getConf() instanceof SyncopeAuthModuleConf);
-
- authModule = authModuleDAO.find("DefaultU2FAuthModule");
- assertNotNull(authModule);
- assertTrue(authModule.getConf() instanceof U2FAuthModuleConf);
}
@Test
@@ -139,9 +134,6 @@ public class AuthModuleTest extends AbstractTest {
assertTrue(authModules.stream().anyMatch(
authModule -> isSpecificConf(authModule.getConf(),
SyncopeAuthModuleConf.class)
&& authModule.getKey().equals("DefaultSyncopeAuthModule")));
- assertTrue(authModules.stream().anyMatch(
- authModule -> isSpecificConf(authModule.getConf(),
U2FAuthModuleConf.class)
- && authModule.getKey().equals("DefaultU2FAuthModule")));
}
@Test
@@ -245,14 +237,6 @@ public class AuthModuleTest extends AbstractTest {
saveAuthModule("SimpleMfaAuthModuleConf", conf);
}
- @Test
- public void saveWithU2FModule() {
- U2FAuthModuleConf conf = new U2FAuthModuleConf();
- conf.setExpireDevices(50);
-
- saveAuthModule("U2FAuthModuleTest", conf);
- }
-
@Test
public void updateWithLDAPModule() {
AuthModule module = authModuleDAO.find("DefaultLDAPAuthModule");
@@ -386,22 +370,6 @@ public class AuthModuleTest extends AbstractTest {
assertEquals(2,
StaticAuthModuleConf.class.cast(found.getConf()).getUsers().size());
}
- @Test
- public void updateWithU2fModule() {
- AuthModule module = authModuleDAO.find("DefaultU2FAuthModule");
- assertNotNull(module);
- AuthModuleConf conf = module.getConf();
- U2FAuthModuleConf.class.cast(conf).setExpireDevices(24);
- module.setConf(conf);
-
- module = authModuleDAO.save(module);
- assertNotNull(module);
- assertNotNull(module.getKey());
- AuthModule found = authModuleDAO.find(module.getKey());
- assertNotNull(found);
- assertEquals(24,
U2FAuthModuleConf.class.cast(found.getConf()).getExpireDevices());
- }
-
@Test
public void updateWithSyncopeModule() {
AuthModule module = authModuleDAO.find("DefaultSyncopeAuthModule");
diff --git
a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AuthProfileTest.java
b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AuthProfileTest.java
index bc54c790bd..0fd0d1eeae 100644
---
a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AuthProfileTest.java
+++
b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AuthProfileTest.java
@@ -31,7 +31,6 @@ import java.util.stream.IntStream;
import org.apache.syncope.common.lib.wa.GoogleMfaAuthAccount;
import org.apache.syncope.common.lib.wa.GoogleMfaAuthToken;
import org.apache.syncope.common.lib.wa.ImpersonationAccount;
-import org.apache.syncope.common.lib.wa.U2FDevice;
import org.apache.syncope.common.lib.wa.WebAuthnDeviceCredential;
import org.apache.syncope.core.persistence.api.dao.AuthProfileDAO;
import org.apache.syncope.core.persistence.api.entity.am.AuthProfile;
@@ -76,27 +75,6 @@ public class AuthProfileTest extends AbstractTest {
assertFalse(authProfileDAO.findByOwner(id).isPresent());
}
- @Test
- public void u2fRegisteredDevice() {
- String id = SecureRandomUtils.generateRandomUUID().toString();
- createAuthProfileWithU2FDevice(id, "{ 'record': 1 }");
-
- Optional<AuthProfile> result = authProfileDAO.findByOwner(id);
- assertTrue(result.isPresent());
-
- assertFalse(authProfileDAO.findAll(-1, -1).isEmpty());
-
- AuthProfile authProfile = result.get();
- result =
Optional.ofNullable(authProfileDAO.find(authProfile.getKey()));
- assertTrue(result.isPresent());
-
- authProfile.setOwner("SyncopeCreate-NewU2F");
- authProfile.setU2FRegisteredDevices(List.of());
- authProfileDAO.save(authProfile);
-
- assertFalse(authProfileDAO.findByOwner(id).isPresent());
- }
-
@Test
public void webAuthnRegisteredDevice() {
String id = SecureRandomUtils.generateRandomUUID().toString();
@@ -127,7 +105,7 @@ public class AuthProfileTest extends AbstractTest {
result =
Optional.ofNullable(authProfileDAO.find(authProfile.getKey()));
assertTrue(result.isPresent());
- authProfile.setOwner("SyncopeCreate-NewU2F");
+ authProfile.setOwner("newowner");
authProfile.setWebAuthnDeviceCredentials(List.of());
authProfileDAO.save(authProfile);
@@ -190,14 +168,6 @@ public class AuthProfileTest extends AbstractTest {
return authProfileDAO.save(profile);
}
- private AuthProfile createAuthProfileWithU2FDevice(final String owner,
final String record) {
- AuthProfile profile = entityFactory.newEntity(AuthProfile.class);
- profile.setOwner(owner);
- U2FDevice device = new
U2FDevice.Builder().issueDate(OffsetDateTime.now()).record(record).build();
- profile.setU2FRegisteredDevices(List.of(device));
- return authProfileDAO.save(profile);
- }
-
private AuthProfile createAuthProfileWithWebAuthnDevice(
final String owner,
final List<WebAuthnDeviceCredential> credentials) {
diff --git a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
index 2c0c3d2b33..f0171b5daa 100644
--- a/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
+++ b/core/persistence-jpa/src/test/resources/domains/MasterContent.xml
@@ -85,8 +85,6 @@ under the License.
<AuthModule id="DefaultSyncopeAuthModule" authModuleState="ACTIVE"
description="Syncope auth module"
jsonConf='{"_class":"org.apache.syncope.common.lib.auth.SyncopeAuthModuleConf","domain":"Master"}'
items='[{"intAttrName":"syncopeUserAttr_surname","extAttrName":"family_name","connObjectKey":false,"password":false,"mandatoryCondition":"false","purpose":"NONE","propagationJEXLTransformer":null,"pullJEXLTransformer":null,"transformers":[]},{"intAttrName":"syncopeUserAttr_fullname","extAttrName":"name","connObjectKey":false,"password":false,"mandatoryCondition":"false","purpose":"NONE","propagationJEXLTransformer":null,"pullJEXLTransformer":null,"transformers":[]},{"intAtt
[...]
- <AuthModule id="DefaultU2FAuthModule" authModuleState="ACTIVE"
- description="U2F auth module"
jsonConf='{"_class":"org.apache.syncope.common.lib.auth.U2FAuthModuleConf","expireDevices":40}'/>
<AuthModule id="DefaultOAuth20AuthModule" description="OAuth20 auth module"
authModuleOrder="0"
jsonConf='{"_class":"org.apache.syncope.common.lib.auth.OAuth20AuthModuleConf","clientName":"oauth20","clientId":"OAUTH20","clientSecret":"secret","enabled":true,"customParams":{},"tokenUrl":"https://localhost/oauth2/token","responseType":"code","scope":"oauth
test","userIdAttribute":"username","authUrl":"https://localhost/oauth2/auth","profileUrl":"https://localhost/oauth2/profile","withState":false,"profileVerb":"POST"}'
authModuleState="ACTIVE"/>
diff --git
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AuthProfileDataBinderImpl.java
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AuthProfileDataBinderImpl.java
index 584a020931..615e1b4a9e 100644
---
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AuthProfileDataBinderImpl.java
+++
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AuthProfileDataBinderImpl.java
@@ -39,7 +39,6 @@ public class AuthProfileDataBinderImpl implements
AuthProfileDataBinder {
authProfileTO.getImpersonationAccounts().addAll(authProfile.getImpersonationAccounts());
authProfileTO.getGoogleMfaAuthTokens().addAll(authProfile.getGoogleMfaAuthTokens());
authProfileTO.getGoogleMfaAuthAccounts().addAll(authProfile.getGoogleMfaAuthAccounts());
-
authProfileTO.getU2FRegisteredDevices().addAll(authProfile.getU2FRegisteredDevices());
authProfileTO.getMfaTrustedDevices().addAll(authProfile.getMfaTrustedDevices());
authProfileTO.getWebAuthnDeviceCredentials().addAll(authProfile.getWebAuthnDeviceCredentials());
return authProfileTO;
@@ -57,7 +56,6 @@ public class AuthProfileDataBinderImpl implements
AuthProfileDataBinder {
authProfile.setImpersonationAccounts(authProfileTO.getImpersonationAccounts());
authProfile.setGoogleMfaAuthTokens(authProfileTO.getGoogleMfaAuthTokens());
authProfile.setGoogleMfaAuthAccounts(authProfileTO.getGoogleMfaAuthAccounts());
-
authProfile.setU2FRegisteredDevices(authProfileTO.getU2FRegisteredDevices());
authProfile.setMfaTrustedDevices(authProfileTO.getMfaTrustedDevices());
authProfile.setWebAuthnDeviceCredentials(authProfileTO.getWebAuthnDeviceCredentials());
return authProfile;
diff --git
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/AfterHandlingJob.java
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/AfterHandlingJob.java
index 5f8ceccc63..17f18dfa83 100644
---
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/AfterHandlingJob.java
+++
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/AfterHandlingJob.java
@@ -38,7 +38,6 @@ import org.quartz.TriggerBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
/**
@@ -51,9 +50,7 @@ public class AfterHandlingJob extends
AbstractInterruptableJob {
private static final Logger LOG =
LoggerFactory.getLogger(AfterHandlingJob.class);
public static void schedule(final SchedulerFactoryBean scheduler, final
Map<String, Object> jobMap) {
- @SuppressWarnings("unchecked")
- AfterHandlingJob jobInstance = (AfterHandlingJob)
ApplicationContextProvider.getBeanFactory().
- createBean(AfterHandlingJob.class,
AbstractBeanDefinition.AUTOWIRE_BY_TYPE, false);
+ AfterHandlingJob jobInstance =
ApplicationContextProvider.getBeanFactory().createBean(AfterHandlingJob.class);
String jobName = AfterHandlingJob.class.getSimpleName() +
SecureRandomUtils.generateRandomUUID();
jobMap.put(JobManager.DOMAIN_KEY, AuthContextUtils.getDomain());
diff --git
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java
index 3ad8a519c7..a521b408b2 100644
---
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java
+++
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java
@@ -48,7 +48,6 @@ import
org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo;
import org.apache.syncope.core.provisioning.java.pushpull.OutboundMatcher;
import org.apache.syncope.core.provisioning.java.utils.ConnObjectUtils;
import org.apache.syncope.core.spring.ApplicationContextProvider;
-import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@@ -74,8 +73,8 @@ public class PriorityPropagationTaskExecutor extends
AbstractPropagationTaskExec
protected PropagationTaskCallable newPropagationTaskCallable(
final PropagationTaskInfo taskInfo, final PropagationReporter
reporter, final String executor) {
- PropagationTaskCallable callable = (PropagationTaskCallable)
ApplicationContextProvider.getBeanFactory().
- createBean(DefaultPropagationTaskCallable.class,
AbstractBeanDefinition.AUTOWIRE_BY_TYPE, false);
+ PropagationTaskCallable callable =
ApplicationContextProvider.getBeanFactory().
+ createBean(DefaultPropagationTaskCallable.class);
callable.setTaskInfo(taskInfo);
callable.setReporter(reporter);
callable.setExecutor(executor);
diff --git
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullJobDelegate.java
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullJobDelegate.java
index ee0c5839e9..97e3267813 100644
---
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullJobDelegate.java
+++
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullJobDelegate.java
@@ -73,7 +73,6 @@ import
org.identityconnectors.framework.common.objects.SyncToken;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.support.AbstractBeanDefinition;
public class PullJobDelegate extends AbstractProvisioningJobDelegate<PullTask>
implements SyncopePullExecutor {
@@ -198,23 +197,19 @@ public class PullJobDelegate extends
AbstractProvisioningJobDelegate<PullTask> i
}
protected RealmPullResultHandler buildRealmHandler() {
- return (RealmPullResultHandler)
ApplicationContextProvider.getBeanFactory().
- createBean(DefaultRealmPullResultHandler.class,
AbstractBeanDefinition.AUTOWIRE_BY_NAME, false);
+ return
ApplicationContextProvider.getBeanFactory().createBean(DefaultRealmPullResultHandler.class);
}
protected AnyObjectPullResultHandler buildAnyObjectHandler() {
- return (AnyObjectPullResultHandler)
ApplicationContextProvider.getBeanFactory().
- createBean(DefaultAnyObjectPullResultHandler.class,
AbstractBeanDefinition.AUTOWIRE_BY_NAME, false);
+ return
ApplicationContextProvider.getBeanFactory().createBean(DefaultAnyObjectPullResultHandler.class);
}
protected UserPullResultHandler buildUserHandler() {
- return (UserPullResultHandler)
ApplicationContextProvider.getBeanFactory().
- createBean(DefaultUserPullResultHandler.class,
AbstractBeanDefinition.AUTOWIRE_BY_NAME, false);
+ return
ApplicationContextProvider.getBeanFactory().createBean(DefaultUserPullResultHandler.class);
}
protected GroupPullResultHandler buildGroupHandler() {
- return (GroupPullResultHandler)
ApplicationContextProvider.getBeanFactory().
- createBean(DefaultGroupPullResultHandler.class,
AbstractBeanDefinition.AUTOWIRE_BY_NAME, false);
+ return
ApplicationContextProvider.getBeanFactory().createBean(DefaultGroupPullResultHandler.class);
}
@Override
diff --git
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PushJobDelegate.java
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PushJobDelegate.java
index f72667d1ed..056c36a47e 100644
---
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PushJobDelegate.java
+++
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PushJobDelegate.java
@@ -59,7 +59,6 @@ import
org.apache.syncope.core.spring.implementation.ImplementationManager;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.support.AbstractBeanDefinition;
public class PushJobDelegate extends AbstractProvisioningJobDelegate<PushTask>
implements SyncopePushExecutor {
@@ -130,23 +129,19 @@ public class PushJobDelegate extends
AbstractProvisioningJobDelegate<PushTask> i
}
protected RealmPushResultHandler buildRealmHandler() {
- return (RealmPushResultHandler)
ApplicationContextProvider.getBeanFactory().
- createBean(DefaultRealmPushResultHandler.class,
AbstractBeanDefinition.AUTOWIRE_BY_NAME, false);
+ return
ApplicationContextProvider.getBeanFactory().createBean(DefaultRealmPushResultHandler.class);
}
protected AnyObjectPushResultHandler buildAnyObjectHandler() {
- return (AnyObjectPushResultHandler)
ApplicationContextProvider.getBeanFactory().
- createBean(DefaultAnyObjectPushResultHandler.class,
AbstractBeanDefinition.AUTOWIRE_BY_NAME, false);
+ return
ApplicationContextProvider.getBeanFactory().createBean(DefaultAnyObjectPushResultHandler.class);
}
protected UserPushResultHandler buildUserHandler() {
- return (UserPushResultHandler)
ApplicationContextProvider.getBeanFactory().
- createBean(DefaultUserPushResultHandler.class,
AbstractBeanDefinition.AUTOWIRE_BY_NAME, false);
+ return
ApplicationContextProvider.getBeanFactory().createBean(DefaultUserPushResultHandler.class);
}
protected GroupPushResultHandler buildGroupHandler() {
- return (GroupPushResultHandler)
ApplicationContextProvider.getBeanFactory().
- createBean(DefaultGroupPushResultHandler.class,
AbstractBeanDefinition.AUTOWIRE_BY_NAME, false);
+ return
ApplicationContextProvider.getBeanFactory().createBean(DefaultGroupPushResultHandler.class);
}
protected List<PushActions> getPushActions(final List<? extends
Implementation> impls) {
diff --git
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/stream/StreamPushJobDelegate.java
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/stream/StreamPushJobDelegate.java
index fa7fbd4d8e..7f7cfc3652 100644
---
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/stream/StreamPushJobDelegate.java
+++
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/stream/StreamPushJobDelegate.java
@@ -50,7 +50,6 @@ import
org.apache.syncope.core.spring.ApplicationContextProvider;
import org.apache.syncope.core.spring.security.SecureRandomUtils;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.support.AbstractBeanDefinition;
public class StreamPushJobDelegate extends PushJobDelegate implements
SyncopeStreamPushExecutor {
@@ -59,20 +58,17 @@ public class StreamPushJobDelegate extends PushJobDelegate
implements SyncopeStr
@Override
protected AnyObjectPushResultHandler buildAnyObjectHandler() {
- return (AnyObjectPushResultHandler)
ApplicationContextProvider.getBeanFactory().createBean(
- StreamAnyObjectPushResultHandler.class,
AbstractBeanDefinition.AUTOWIRE_BY_NAME, false);
+ return
ApplicationContextProvider.getBeanFactory().createBean(StreamAnyObjectPushResultHandler.class);
}
@Override
protected UserPushResultHandler buildUserHandler() {
- return (UserPushResultHandler)
ApplicationContextProvider.getBeanFactory().
- createBean(StreamUserPushResultHandler.class,
AbstractBeanDefinition.AUTOWIRE_BY_NAME, false);
+ return
ApplicationContextProvider.getBeanFactory().createBean(StreamUserPushResultHandler.class);
}
@Override
protected GroupPushResultHandler buildGroupHandler() {
- return (GroupPushResultHandler)
ApplicationContextProvider.getBeanFactory().
- createBean(StreamGroupPushResultHandler.class,
AbstractBeanDefinition.AUTOWIRE_BY_NAME, false);
+ return
ApplicationContextProvider.getBeanFactory().createBean(StreamGroupPushResultHandler.class);
}
private ExternalResource externalResource(
diff --git
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/MappingUtils.java
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/MappingUtils.java
index a650bc2047..68393441c3 100644
---
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/MappingUtils.java
+++
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/MappingUtils.java
@@ -45,7 +45,6 @@ import
org.identityconnectors.framework.common.objects.OperationalAttributes;
import org.identityconnectors.framework.common.objects.Uid;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.support.AbstractBeanDefinition;
public final class MappingUtils {
@@ -84,8 +83,8 @@ public final class MappingUtils {
if (StringUtils.isNotBlank(item.getPropagationJEXLTransformer())
|| StringUtils.isNotBlank(item.getPullJEXLTransformer())) {
- JEXLItemTransformer jexlTransformer = (JEXLItemTransformer)
ApplicationContextProvider.getBeanFactory().
- createBean(JEXLItemTransformerImpl.class,
AbstractBeanDefinition.AUTOWIRE_BY_NAME, false);
+ JEXLItemTransformer jexlTransformer =
ApplicationContextProvider.getBeanFactory().
+ createBean(JEXLItemTransformerImpl.class);
jexlTransformer.setPropagationJEXL(item.getPropagationJEXLTransformer());
jexlTransformer.setPullJEXL(item.getPullJEXLTransformer());
diff --git
a/core/spring/src/main/java/org/apache/syncope/core/spring/implementation/ImplementationManager.java
b/core/spring/src/main/java/org/apache/syncope/core/spring/implementation/ImplementationManager.java
index 820142f644..95b2b96682 100644
---
a/core/spring/src/main/java/org/apache/syncope/core/spring/implementation/ImplementationManager.java
+++
b/core/spring/src/main/java/org/apache/syncope/core/spring/implementation/ImplementationManager.java
@@ -46,7 +46,6 @@ import
org.apache.syncope.core.provisioning.api.rules.PullCorrelationRule;
import org.apache.syncope.core.provisioning.api.rules.PushCorrelationRule;
import org.apache.syncope.core.provisioning.api.serialization.POJOHelper;
import org.apache.syncope.core.spring.ApplicationContextProvider;
-import org.springframework.beans.factory.support.AbstractBeanDefinition;
public final class ImplementationManager {
@@ -192,7 +191,7 @@ public final class ImplementationManager {
}
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings({ "unchecked", "rawtypes" })
private static Class<? extends CommandArgs> findCommandArgsClass(final
Type type) {
if (type.getTypeName().startsWith(
ImplementationTypesHolder.getInstance().getValues().get(IdRepoImplementationType.COMMAND)
+ "<")) {
@@ -200,8 +199,8 @@ public final class ImplementationManager {
return (Class<? extends CommandArgs>) ((ParameterizedType)
type).getActualTypeArguments()[0];
}
- if (type instanceof Class) {
- for (Type i : ((Class) type).getGenericInterfaces()) {
+ if (type instanceof Class aClass) {
+ for (Type i : aClass.getGenericInterfaces()) {
Class<? extends CommandArgs> r = findCommandArgsClass(i);
if (r != null) {
return r;
@@ -254,8 +253,7 @@ public final class ImplementationManager {
@SuppressWarnings("unchecked")
public static <T> T build(final Implementation impl) throws
ClassNotFoundException {
- return (T) ApplicationContextProvider.getBeanFactory().
- createBean(getClass(impl).getLeft(),
AbstractBeanDefinition.AUTOWIRE_BY_TYPE, false);
+ return (T)
ApplicationContextProvider.getBeanFactory().createBean(getClass(impl).getLeft());
}
@SuppressWarnings("unchecked")
@@ -273,8 +271,7 @@ public final class ImplementationManager {
instance = cacheGetter.get();
}
if (instance == null) {
- instance = (T) ApplicationContextProvider.getBeanFactory().
- createBean(clazz, AbstractBeanDefinition.AUTOWIRE_BY_TYPE,
false);
+ instance =
ApplicationContextProvider.getBeanFactory().createBean(clazz);
if (perContext) {
cachePutter.accept(instance);
diff --git
a/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthDataAccessor.java
b/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthDataAccessor.java
index 4bfed7b889..ae70656527 100644
---
a/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthDataAccessor.java
+++
b/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthDataAccessor.java
@@ -65,7 +65,6 @@ import
org.apache.syncope.core.spring.ApplicationContextProvider;
import org.identityconnectors.framework.common.objects.Uid;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.support.AbstractBeanDefinition;
import
org.springframework.security.authentication.AuthenticationCredentialsNotFoundException;
import org.springframework.security.authentication.DisabledException;
import org.springframework.security.core.Authentication;
@@ -158,8 +157,7 @@ public class AuthDataAccessor {
jwtSSOProviders = new HashMap<>();
implementationLookup.getJWTSSOProviderClasses().stream().
- map(clazz -> (JWTSSOProvider)
ApplicationContextProvider.getBeanFactory().
- createBean(clazz,
AbstractBeanDefinition.AUTOWIRE_BY_TYPE, true)).
+ map(clazz -> (JWTSSOProvider)
ApplicationContextProvider.getBeanFactory().createBean(clazz)).
forEach(jwtSSOProvider ->
jwtSSOProviders.put(jwtSSOProvider.getIssuer(), jwtSSOProvider));
}
}
diff --git
a/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/support/SyncopeIdmIdentityService.java
b/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/support/SyncopeIdmIdentityService.java
index c30eeb1262..ff61fe7985 100644
---
a/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/support/SyncopeIdmIdentityService.java
+++
b/ext/flowable/flowable-bpmn/src/main/java/org/apache/syncope/core/flowable/support/SyncopeIdmIdentityService.java
@@ -22,7 +22,6 @@ import org.flowable.idm.api.GroupQuery;
import org.flowable.idm.api.UserQuery;
import org.flowable.idm.engine.IdmEngineConfiguration;
import org.flowable.idm.engine.impl.IdmIdentityServiceImpl;
-import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.context.ConfigurableApplicationContext;
public class SyncopeIdmIdentityService extends IdmIdentityServiceImpl {
@@ -39,13 +38,11 @@ public class SyncopeIdmIdentityService extends
IdmIdentityServiceImpl {
@Override
public UserQuery createUserQuery() {
- return (UserQuery) ctx.getBeanFactory().
- createBean(SyncopeUserQueryImpl.class,
AbstractBeanDefinition.AUTOWIRE_BY_TYPE, false);
+ return ctx.getBeanFactory().createBean(SyncopeUserQueryImpl.class);
}
@Override
public GroupQuery createGroupQuery() {
- return (GroupQuery) ctx.getBeanFactory().
- createBean(SyncopeGroupQueryImpl.class,
AbstractBeanDefinition.AUTOWIRE_BY_TYPE, false);
+ return ctx.getBeanFactory().createBean(SyncopeGroupQueryImpl.class);
}
}
diff --git
a/ext/oidcc4ui/logic/src/main/java/org/apache/syncope/core/logic/OIDCC4UILogic.java
b/ext/oidcc4ui/logic/src/main/java/org/apache/syncope/core/logic/OIDCC4UILogic.java
index 2daa162e13..aa981be0ab 100644
---
a/ext/oidcc4ui/logic/src/main/java/org/apache/syncope/core/logic/OIDCC4UILogic.java
+++
b/ext/oidcc4ui/logic/src/main/java/org/apache/syncope/core/logic/OIDCC4UILogic.java
@@ -20,7 +20,6 @@ package org.apache.syncope.core.logic;
import com.nimbusds.jwt.JWTClaimsSet;
import com.nimbusds.jwt.SignedJWT;
-import com.nimbusds.oauth2.sdk.AuthorizationCode;
import java.lang.reflect.Method;
import java.text.ParseException;
import java.time.OffsetDateTime;
@@ -141,13 +140,13 @@ public class OIDCC4UILogic extends
AbstractTransactionalLogic<EntityTO> {
JWTClaimsSet idToken;
try {
OidcCredentials credentials = new OidcCredentials();
- credentials.setCode(new AuthorizationCode(authorizationCode));
+ credentials.setCode(authorizationCode);
oidcClient.getAuthenticator().validate(
new CallContext(new OIDCC4UIContext(),
NoOpSessionStore.INSTANCE), credentials);
- idToken = credentials.getIdToken().getJWTClaimsSet();
- idTokenHint = credentials.getIdToken().serialize();
+ idToken = credentials.toIdToken().getJWTClaimsSet();
+ idTokenHint = credentials.toIdToken().serialize();
} catch (Exception e) {
LOG.error("While validating Token Response", e);
SyncopeClientException sce =
SyncopeClientException.build(ClientExceptionType.Unknown);
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
index 01eda292e0..3e3743a751 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
@@ -160,7 +160,6 @@ import
org.apache.syncope.common.rest.api.service.wa.GoogleMfaAuthAccountService
import org.apache.syncope.common.rest.api.service.wa.GoogleMfaAuthTokenService;
import org.apache.syncope.common.rest.api.service.wa.ImpersonationService;
import org.apache.syncope.common.rest.api.service.wa.MfaTrustStorageService;
-import org.apache.syncope.common.rest.api.service.wa.U2FRegistrationService;
import org.apache.syncope.common.rest.api.service.wa.WAConfigService;
import
org.apache.syncope.common.rest.api.service.wa.WebAuthnRegistrationService;
import org.apache.syncope.fit.AbstractITCase.KeymasterInitializer;
@@ -384,8 +383,6 @@ public abstract class AbstractITCase {
protected static GoogleMfaAuthAccountService
GOOGLE_MFA_AUTH_ACCOUNT_SERVICE;
- protected static U2FRegistrationService U2F_REGISTRATION_SERVICE;
-
protected static MfaTrustStorageService MFA_TRUST_STORAGE_SERVICE;
protected static WebAuthnRegistrationService WEBAUTHN_REGISTRATION_SERVICE;
@@ -420,7 +417,6 @@ public abstract class AbstractITCase {
GOOGLE_MFA_AUTH_TOKEN_SERVICE =
ANONYMOUS_CLIENT.getService(GoogleMfaAuthTokenService.class);
GOOGLE_MFA_AUTH_ACCOUNT_SERVICE =
ANONYMOUS_CLIENT.getService(GoogleMfaAuthAccountService.class);
- U2F_REGISTRATION_SERVICE =
ANONYMOUS_CLIENT.getService(U2FRegistrationService.class);
MFA_TRUST_STORAGE_SERVICE =
ANONYMOUS_CLIENT.getService(MfaTrustStorageService.class);
WEBAUTHN_REGISTRATION_SERVICE =
ANONYMOUS_CLIENT.getService(WebAuthnRegistrationService.class);
IMPERSONATION_SERVICE =
ANONYMOUS_CLIENT.getService(ImpersonationService.class);
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java
index 8e77078fb3..7bdd6f9780 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java
@@ -30,6 +30,7 @@ import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.util.tester.FormTester;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
public class UsersITCase extends AbstractConsoleITCase {
@@ -584,6 +585,7 @@ public class UsersITCase extends AbstractConsoleITCase {
+ "actions:actions:actionRepeater:11:action:action",
IndicatingOnConfirmAjaxLink.class);
}
+ @Disabled
@Test
public void editDateTimeField() {
TESTER.clickLink("body:realmsLI:realms", false);
@@ -660,15 +662,15 @@ public class UsersITCase extends AbstractConsoleITCase {
assertNotNull(formTester);
formTester.submit("buttons:next");
+ assertEquals("12:00 AM",
TESTER.getComponentFromLastRenderedPage("body:content:body:"
+ + "container:content:tabbedPanel:panel:searchResult:"
+ +
"outerObjectsRepeater:0:outer:form:content:form:view:plainSchemas:"
+ +
"tabs:0:body:content:schemas:1:panel:field:timepicker").getDefaultModelObjectAsString());
+
Calendar cal = Calendar.getInstance();
cal.set(2017, Calendar.JANUARY, 19, 0, 0, 0);
cal.set(Calendar.MILLISECOND, 0);
-
assertEquals(TESTER.getComponentFromLastRenderedPage("body:content:body:"
- + "container:content:tabbedPanel:panel:searchResult:"
- +
"outerObjectsRepeater:0:outer:form:content:form:view:plainSchemas:"
- +
"tabs:0:body:content:schemas:1:panel:field:timepicker").getDefaultModelObjectAsString(),
"12:00 AM");
-
TESTER.assertModelValue("body:content:body:container:content:"
+
"tabbedPanel:panel:searchResult:outerObjectsRepeater:0:outer:form:content:"
+ "form:view:plainSchemas:tabs:0:body:content:schemas:8:panel:"
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthModuleITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthModuleITCase.java
index 99bd35631b..5c365b9561 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthModuleITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthModuleITCase.java
@@ -45,7 +45,6 @@ import org.apache.syncope.common.lib.auth.OIDCAuthModuleConf;
import org.apache.syncope.common.lib.auth.SAML2IdPAuthModuleConf;
import org.apache.syncope.common.lib.auth.StaticAuthModuleConf;
import org.apache.syncope.common.lib.auth.SyncopeAuthModuleConf;
-import org.apache.syncope.common.lib.auth.U2FAuthModuleConf;
import org.apache.syncope.common.lib.to.AuthModuleTO;
import org.apache.syncope.common.lib.to.Item;
import org.apache.syncope.common.rest.api.service.AuthModuleService;
@@ -63,7 +62,6 @@ public class AuthModuleITCase extends AbstractITCase {
LDAP,
JAAS,
JDBC,
- U2F,
OIDC,
OAUTH20;
@@ -166,11 +164,6 @@ public class AuthModuleITCase extends AbstractITCase {
SyncopeAuthModuleConf.class.cast(conf).setDomain(SyncopeConstants.MASTER_DOMAIN);
break;
- case U2F:
- conf = new U2FAuthModuleConf();
- U2FAuthModuleConf.class.cast(conf).setExpireDevices(50);
- break;
-
case STATIC:
default:
conf = new StaticAuthModuleConf();
@@ -230,12 +223,9 @@ public class AuthModuleITCase extends AbstractITCase {
assertTrue(authModuleTOs.stream().anyMatch(
authModule -> isSpecificConf(authModule.getConf(),
SyncopeAuthModuleConf.class)
&& authModule.getKey().equals("DefaultSyncopeAuthModule")));
- assertTrue(authModuleTOs.stream().anyMatch(
- authModule -> isSpecificConf(authModule.getConf(),
U2FAuthModuleConf.class)
- && authModule.getKey().equals("DefaultU2FAuthModule")));
assertTrue(authModuleTOs.stream().anyMatch(
authModule -> isSpecificConf(authModule.getConf(),
OAuth20AuthModuleConf.class)
- &&
authModule.getKey().equals("DefaultOAuth20AuthModule")));
+ && authModule.getKey().equals("DefaultOAuth20AuthModule")));
}
@Test
@@ -334,17 +324,6 @@ public class AuthModuleITCase extends AbstractITCase {
assertNotNull(authModuleTO);
assertTrue(StringUtils.isNotBlank(authModuleTO.getDescription()));
assertTrue(isSpecificConf(authModuleTO.getConf(),
SyncopeAuthModuleConf.class));
- assertFalse(isSpecificConf(authModuleTO.getConf(),
U2FAuthModuleConf.class));
- }
-
- @Test
- public void getU2FAuthModule() {
- AuthModuleTO authModuleTO =
AUTH_MODULE_SERVICE.read("DefaultU2FAuthModule");
-
- assertNotNull(authModuleTO);
- assertTrue(StringUtils.isNotBlank(authModuleTO.getDescription()));
- assertTrue(isSpecificConf(authModuleTO.getConf(),
U2FAuthModuleConf.class));
- assertFalse(isSpecificConf(authModuleTO.getConf(),
LDAPAuthModuleConf.class));
}
@Test
@@ -566,29 +545,6 @@ public class AuthModuleITCase extends AbstractITCase {
assertEquals(2,
StaticAuthModuleConf.class.cast(conf).getUsers().size());
}
- @Test
- public void updateU2fAuthModule() {
- AuthModuleTO u2fAuthModuleTO =
AUTH_MODULE_SERVICE.read("DefaultU2FAuthModule");
- assertNotNull(u2fAuthModuleTO);
-
- AuthModuleTO newU2fAuthModuleTO =
buildAuthModuleTO(AuthModuleSupportedType.U2F);
- newU2fAuthModuleTO = createAuthModule(newU2fAuthModuleTO);
- assertNotNull(newU2fAuthModuleTO);
-
- AuthModuleConf conf = u2fAuthModuleTO.getConf();
- assertNotNull(conf);
- U2FAuthModuleConf.class.cast(conf).setExpireDevices(24);
- newU2fAuthModuleTO.setConf(conf);
-
- // update new auth module
- AUTH_MODULE_SERVICE.update(newU2fAuthModuleTO);
- newU2fAuthModuleTO =
AUTH_MODULE_SERVICE.read(newU2fAuthModuleTO.getKey());
- assertNotNull(newU2fAuthModuleTO);
-
- conf = newU2fAuthModuleTO.getConf();
- assertEquals(24,
U2FAuthModuleConf.class.cast(conf).getExpireDevices());
- }
-
@Test
public void updateSyncopeAuthModule() {
AuthModuleTO syncopeAuthModuleTO =
AUTH_MODULE_SERVICE.read("DefaultSyncopeAuthModule");
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/wa/U2FRegistrationITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/wa/U2FRegistrationITCase.java
deleted file mode 100644
index 0a5bc9183b..0000000000
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/wa/U2FRegistrationITCase.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.fit.core.wa;
-
-import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-import java.time.OffsetDateTime;
-import java.util.List;
-import java.util.UUID;
-import org.apache.syncope.common.lib.wa.U2FDevice;
-import org.apache.syncope.common.rest.api.beans.U2FDeviceQuery;
-import org.apache.syncope.fit.AbstractITCase;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-public class U2FRegistrationITCase extends AbstractITCase {
-
- private static U2FDevice createDeviceRegistration() {
- return new U2FDevice.Builder()
- .issueDate(OffsetDateTime.now())
- .id(System.currentTimeMillis())
-
.record("{\"keyHandle\":\"2_QYgDSPYcOgYBGBe8c9PVCunjigbD-3o5HcliXhu-Up_GKckYMxxVF6AgSPWubqfWy8WmJNDYQE"
- + "J1QKZe343Q\","
- +
"\"publicKey\":\"BMj46cH-lHkRMovZhrusmm_fYL_sFausDPJIDZfx4pIiRqRNtasd4vU3yJyrTXXbdxyD36GZLx1"
- + "WKLHGmApv7Nk\""
- + ",\"counter\":-1,\"compromised\":false}")
- .build();
- }
-
- @BeforeEach
- public void setup() {
- U2F_REGISTRATION_SERVICE.delete(new U2FDeviceQuery.Builder().build());
- }
-
- @Test
- public void create() {
- assertDoesNotThrow(() -> U2F_REGISTRATION_SERVICE.create(
- UUID.randomUUID().toString(), createDeviceRegistration()));
- }
-
- @Test
- public void count() {
- String owner = UUID.randomUUID().toString();
- U2FDevice device = createDeviceRegistration();
- U2F_REGISTRATION_SERVICE.create(owner, device);
-
- List<U2FDevice> devices = U2F_REGISTRATION_SERVICE.search(new
U2FDeviceQuery.Builder().
- owner(owner).
- expirationDate(OffsetDateTime.now().minusDays(1)).
- build()).getResult();
- assertEquals(1, devices.size());
-
- U2F_REGISTRATION_SERVICE.delete(new
U2FDeviceQuery.Builder().id(device.getId()).build());
-
- devices = U2F_REGISTRATION_SERVICE.search(new
U2FDeviceQuery.Builder().build()).getResult();
- assertTrue(devices.isEmpty());
- }
-
- @Test
- public void delete() {
- U2FDevice device = createDeviceRegistration();
- String owner = UUID.randomUUID().toString();
- U2F_REGISTRATION_SERVICE.create(owner, device);
-
- U2F_REGISTRATION_SERVICE.delete(new
U2FDeviceQuery.Builder().owner(owner).build());
- assertTrue(U2F_REGISTRATION_SERVICE.search(
- new
U2FDeviceQuery.Builder().owner(owner).build()).getResult().isEmpty());
-
- OffsetDateTime date = OffsetDateTime.now().plusDays(1);
-
- U2F_REGISTRATION_SERVICE.delete(new
U2FDeviceQuery.Builder().expirationDate(date).build());
-
- assertTrue(U2F_REGISTRATION_SERVICE.search(
- new
U2FDeviceQuery.Builder().expirationDate(date).build()).getResult().isEmpty());
- }
-}
diff --git a/pom.xml b/pom.xml
index 458ebaf74b..8f58856ea7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -411,10 +411,10 @@ under the License.
<cxf.version>4.0.2</cxf.version>
<bouncycastle.version>1.76</bouncycastle.version>
- <nimbus-jose-jwt.version>9.31</nimbus-jose-jwt.version>
+ <nimbus-jose-jwt.version>9.34</nimbus-jose-jwt.version>
- <spring-boot.version>3.1.3</spring-boot.version>
- <spring-cloud-gateway.version>4.0.7</spring-cloud-gateway.version>
+ <spring-boot.version>3.2.0-M2</spring-boot.version>
+ <spring-cloud-gateway.version>4.1.0-M1</spring-cloud-gateway.version>
<openjpa.version>4.0.0-SNAPSHOT</openjpa.version>
@@ -430,7 +430,7 @@ under the License.
<commons-jexl.version>3.3</commons-jexl.version>
<commons-text.version>1.10.0</commons-text.version>
- <pac4j.version>6.0.0-RC8-SNAPSHOT</pac4j.version>
+ <pac4j.version>6.0.0-RC9-SNAPSHOT</pac4j.version>
<cas.version>7.0.0-SNAPSHOT</cas.version>
<cas-client.version>4.0.2</cas-client.version>
@@ -527,7 +527,7 @@ under the License.
<sonar.junit.reportPaths>${project.build.directory}/surefire-reports</sonar.junit.reportPaths>
<sonar.coverage.jacoco.xmlReportPaths>target/site/jacoco/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
- <targetJdk>17</targetJdk>
+ <targetJdk>21</targetJdk>
<rootpom.basedir>${basedir}</rootpom.basedir>
<maven.multiModuleProjectDirectory>${rootpom.basedir}</maven.multiModuleProjectDirectory>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -873,7 +873,7 @@ under the License.
<dependency>
<groupId>com.icegreen</groupId>
<artifactId>greenmail</artifactId>
- <version>2.0.0</version>
+ <version>2.1.0-alpha-2</version>
<exclusions>
<exclusion>
<groupId>com.sun.mail</groupId>
@@ -958,12 +958,22 @@ under the License.
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ </exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.pac4j</groupId>
<artifactId>pac4j-oidc</artifactId>
<version>${pac4j.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<!-- PAC4J -->
@@ -1211,8 +1221,7 @@ under the License.
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-wiremock</artifactId>
- <!-- TMP, it should be ${spring-cloud-gateway.version} -->
- <version>4.0.4</version>
+ <version>${spring-cloud-gateway.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
@@ -1248,8 +1257,8 @@ under the License.
</repository>
<!-- TMP -->
<repository>
- <id>shibboleth-snapshots</id>
-
<url>https://build.shibboleth.net/nexus/content/repositories/snapshots</url>
+ <id>projectlombok.org</id>
+ <url>https://projectlombok.org/edge-releases</url>
<releases>
<enabled>false</enabled>
</releases>
@@ -1623,7 +1632,7 @@ under the License.
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
- <version>3.9.1.2184</version>
+ <version>3.10.0.2594</version>
</plugin>
</plugins>
</pluginManagement>
@@ -1656,7 +1665,7 @@ under the License.
<plugin>
<groupId>org.gaul</groupId>
<artifactId>modernizer-maven-plugin</artifactId>
- <version>2.6.0</version>
+ <version>2.7.0-SNAPSHOT</version>
<configuration>
<javaVersion>${targetJdk}</javaVersion>
<ignorePackages>
@@ -1725,7 +1734,7 @@ under the License.
<dependency>
<groupId>org.apache.groovy</groupId>
<artifactId>groovy-ant</artifactId>
- <version>4.0.14</version>
+ <version>4.0.15</version>
</dependency>
</dependencies>
<executions>
diff --git a/sra/pom.xml b/sra/pom.xml
index fd90d5c26a..9130ea3a73 100644
--- a/sra/pom.xml
+++ b/sra/pom.xml
@@ -378,5 +378,4 @@ under the License.
</build>
</profile>
</profiles>
-
</project>
diff --git
a/sra/src/main/java/org/apache/syncope/sra/ApplicationContextUtils.java
b/sra/src/main/java/org/apache/syncope/sra/ApplicationContextUtils.java
index e042b2663f..8cef538983 100644
--- a/sra/src/main/java/org/apache/syncope/sra/ApplicationContextUtils.java
+++ b/sra/src/main/java/org/apache/syncope/sra/ApplicationContextUtils.java
@@ -19,7 +19,6 @@
package org.apache.syncope.sra;
import org.springframework.beans.factory.config.BeanDefinition;
-import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.context.ApplicationListener;
@@ -37,14 +36,12 @@ public final class ApplicationContextUtils {
bean = type.cast(ctx.getBeanFactory().getSingleton(actualClazz));
} else {
if (ApplicationListener.class.isAssignableFrom(type)) {
- RootBeanDefinition bd = new RootBeanDefinition(
- Class.forName(actualClazz),
AbstractBeanDefinition.AUTOWIRE_BY_TYPE, false);
+ RootBeanDefinition bd = new
RootBeanDefinition(Class.forName(actualClazz));
bd.setScope(BeanDefinition.SCOPE_SINGLETON);
((BeanDefinitionRegistry)
ctx.getBeanFactory()).registerBeanDefinition(actualClazz, bd);
bean = ctx.getBean(type);
} else {
- bean = type.cast(ctx.getBeanFactory().
- createBean(Class.forName(actualClazz),
AbstractBeanDefinition.AUTOWIRE_BY_TYPE, false));
+ bean =
type.cast(ctx.getBeanFactory().createBean(Class.forName(actualClazz)));
ctx.getBeanFactory().registerSingleton(actualClazz, bean);
}
}
diff --git
a/sra/src/main/java/org/apache/syncope/sra/security/cas/CASUtils.java
b/sra/src/main/java/org/apache/syncope/sra/security/cas/CASUtils.java
index 392d133c9e..6f7eff47b8 100644
--- a/sra/src/main/java/org/apache/syncope/sra/security/cas/CASUtils.java
+++ b/sra/src/main/java/org/apache/syncope/sra/security/cas/CASUtils.java
@@ -24,7 +24,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.http.HttpMethod;
import
org.springframework.security.web.server.util.matcher.ServerWebExchangeMatcher;
import org.springframework.web.server.ServerWebExchange;
-import org.springframework.web.util.UriComponentsBuilder;
+import org.springframework.web.util.ForwardedHeaderUtils;
import reactor.core.publisher.Mono;
public final class CASUtils {
@@ -54,7 +54,8 @@ public final class CASUtils {
}
public static String constructServiceUrl(final ServerWebExchange exchange,
final Protocol protocol) {
- return UriComponentsBuilder.fromHttpRequest(exchange.getRequest()).
+ return ForwardedHeaderUtils.
+ adaptFromForwardedHeaders(exchange.getRequest().getURI(),
exchange.getRequest().getHeaders()).
replaceQueryParam(protocol.getArtifactParameterName()).
build().
toUriString();
diff --git
a/sra/src/main/java/org/apache/syncope/sra/security/pac4j/ServerWebExchangeContext.java
b/sra/src/main/java/org/apache/syncope/sra/security/pac4j/ServerWebExchangeContext.java
index d728094ccb..ff2d76dc64 100644
---
a/sra/src/main/java/org/apache/syncope/sra/security/pac4j/ServerWebExchangeContext.java
+++
b/sra/src/main/java/org/apache/syncope/sra/security/pac4j/ServerWebExchangeContext.java
@@ -32,7 +32,7 @@ import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseCookie;
import org.springframework.util.MultiValueMap;
import org.springframework.web.server.ServerWebExchange;
-import org.springframework.web.util.UriComponentsBuilder;
+import org.springframework.web.util.ForwardedHeaderUtils;
public class ServerWebExchangeContext implements WebContext {
@@ -139,17 +139,23 @@ public class ServerWebExchangeContext implements
WebContext {
@Override
public String getServerName() {
- return
UriComponentsBuilder.fromHttpRequest(exchange.getRequest()).build().getHost();
+ return ForwardedHeaderUtils.
+ adaptFromForwardedHeaders(exchange.getRequest().getURI(),
exchange.getRequest().getHeaders()).
+ build().getHost();
}
@Override
public int getServerPort() {
- return
UriComponentsBuilder.fromHttpRequest(exchange.getRequest()).build().getPort();
+ return ForwardedHeaderUtils.
+ adaptFromForwardedHeaders(exchange.getRequest().getURI(),
exchange.getRequest().getHeaders()).
+ build().getPort();
}
@Override
public String getScheme() {
- return
UriComponentsBuilder.fromHttpRequest(exchange.getRequest()).build().getScheme();
+ return ForwardedHeaderUtils.
+ adaptFromForwardedHeaders(exchange.getRequest().getURI(),
exchange.getRequest().getHeaders()).
+ build().getScheme();
}
@Override
@@ -159,7 +165,9 @@ public class ServerWebExchangeContext implements WebContext
{
@Override
public String getFullRequestURL() {
- return
UriComponentsBuilder.fromHttpRequest(exchange.getRequest()).build().toUriString();
+ return ForwardedHeaderUtils.
+ adaptFromForwardedHeaders(exchange.getRequest().getURI(),
exchange.getRequest().getHeaders()).
+ build().toUriString();
}
@Override
diff --git
a/src/main/asciidoc/reference-guide/concepts/authenticationmodules.adoc
b/src/main/asciidoc/reference-guide/concepts/authenticationmodules.adoc
index 3e3e5c40ba..becac0352f 100644
--- a/src/main/asciidoc/reference-guide/concepts/authenticationmodules.adoc
+++ b/src/main/asciidoc/reference-guide/concepts/authenticationmodules.adoc
@@ -35,7 +35,6 @@ Several authentication modules are provided:
**
https://apereo.github.io/cas/6.6.x/integration/Delegate-Authentication-Azure-AD.html[Azure
Active Directory^]
* MFA:
**
https://apereo.github.io/cas/6.6.x/mfa/DuoSecurity-Authentication.html[Duo
Security^]
- **
https://apereo.github.io/cas/6.6.x/mfa/FIDO-U2F-Authentication.html[Fido U2F^]
**
https://apereo.github.io/cas/6.6.x/mfa/GoogleAuthenticator-Authentication.html[Google
Authenticator^]
[TIP]
diff --git
a/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/AuthModulePropertySourceMapper.java
b/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/AuthModulePropertySourceMapper.java
index 28667f974f..7f035c0cf0 100644
---
a/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/AuthModulePropertySourceMapper.java
+++
b/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/mapping/AuthModulePropertySourceMapper.java
@@ -21,7 +21,6 @@ package org.apache.syncope.wa.bootstrap.mapping;
import java.util.List;
import java.util.Map;
import java.util.Optional;
-import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.lib.SyncopeClient;
@@ -42,7 +41,6 @@ import
org.apache.syncope.common.lib.auth.SAML2IdPAuthModuleConf;
import org.apache.syncope.common.lib.auth.SimpleMfaAuthModuleConf;
import org.apache.syncope.common.lib.auth.StaticAuthModuleConf;
import org.apache.syncope.common.lib.auth.SyncopeAuthModuleConf;
-import org.apache.syncope.common.lib.auth.U2FAuthModuleConf;
import org.apache.syncope.common.lib.to.AuthModuleTO;
import org.apache.syncope.common.lib.to.Item;
import org.apache.syncope.common.lib.types.AuthModuleState;
@@ -59,7 +57,6 @@ import
org.apereo.cas.configuration.model.support.mfa.duo.DuoSecurityMultifactor
import
org.apereo.cas.configuration.model.support.mfa.gauth.GoogleAuthenticatorMultifactorProperties;
import
org.apereo.cas.configuration.model.support.mfa.gauth.LdapGoogleAuthenticatorMultifactorProperties;
import
org.apereo.cas.configuration.model.support.mfa.simple.CasSimpleMultifactorAuthenticationProperties;
-import
org.apereo.cas.configuration.model.support.mfa.u2f.U2FMultifactorAuthenticationProperties;
import
org.apereo.cas.configuration.model.support.pac4j.oauth.Pac4jOAuth20ClientProperties;
import
org.apereo.cas.configuration.model.support.pac4j.oidc.BasePac4jOidcClientProperties;
import
org.apereo.cas.configuration.model.support.pac4j.oidc.Pac4jAppleOidcClientProperties;
@@ -346,19 +343,6 @@ public class AuthModulePropertySourceMapper extends
PropertySourceMapper impleme
return prefix("cas.authn.mfa.duo.",
CasCoreConfigurationUtils.asMap(props));
}
- @Override
- public Map<String, Object> map(final AuthModuleTO authModuleTO, final
U2FAuthModuleConf conf) {
- U2FMultifactorAuthenticationProperties props = new
U2FMultifactorAuthenticationProperties();
- props.setName(authModuleTO.getKey());
- props.setOrder(authModuleTO.getOrder());
- props.getCore().setExpireDevices(conf.getExpireDevices());
-
props.getCore().setExpireDevicesTimeUnit(TimeUnit.valueOf(conf.getExpireDevicesTimeUnit()));
- props.getCore().setExpireRegistrations(conf.getExpireRegistrations());
-
props.getCore().setExpireRegistrationsTimeUnit(TimeUnit.valueOf(conf.getExpireRegistrationsTimeUnit()));
-
- return prefix("cas.authn.mfa.u2f.",
CasCoreConfigurationUtils.asMap(props));
- }
-
@Override
public Map<String, Object> map(final AuthModuleTO authModuleTO, final
SimpleMfaAuthModuleConf conf) {
CasSimpleMultifactorAuthenticationProperties props = new
CasSimpleMultifactorAuthenticationProperties();
diff --git a/wa/starter/pom.xml b/wa/starter/pom.xml
index ec9753feb2..9b1c7a3c60 100644
--- a/wa/starter/pom.xml
+++ b/wa/starter/pom.xml
@@ -249,14 +249,6 @@ under the License.
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-aup-webflow</artifactId>
</dependency>
- <dependency>
- <groupId>org.apereo.cas</groupId>
- <artifactId>cas-server-support-u2f</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apereo.cas</groupId>
- <artifactId>cas-server-support-u2f-core</artifactId>
- </dependency>
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-webauthn</artifactId>
diff --git
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/config/WAContext.java
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/config/WAContext.java
index 9451b94c4d..2fff3eb073 100644
---
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/config/WAContext.java
+++
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/config/WAContext.java
@@ -19,15 +19,12 @@
package org.apache.syncope.wa.starter.config;
import com.github.benmanes.caffeine.cache.Cache;
-import com.github.benmanes.caffeine.cache.Caffeine;
-import com.github.benmanes.caffeine.cache.LoadingCache;
import com.warrenstrange.googleauth.IGoogleAuthenticator;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.security.SecurityScheme;
import java.io.Serializable;
-import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@@ -66,16 +63,13 @@ import
org.apache.syncope.wa.starter.saml.idp.metadata.WASamlIdPMetadataGenerato
import
org.apache.syncope.wa.starter.saml.idp.metadata.WASamlIdPMetadataLocator;
import org.apache.syncope.wa.starter.services.WAServiceRegistry;
import
org.apache.syncope.wa.starter.surrogate.WASurrogateAuthenticationService;
-import org.apache.syncope.wa.starter.u2f.WAU2FDeviceRepository;
import org.apache.syncope.wa.starter.webauthn.WAWebAuthnCredentialRepository;
-import org.apereo.cas.adaptors.u2f.storage.U2FDeviceRepository;
import org.apereo.cas.audit.AuditTrailExecutionPlanConfigurer;
import org.apereo.cas.authentication.AuthenticationEventExecutionPlan;
import org.apereo.cas.authentication.MultifactorAuthenticationProvider;
import org.apereo.cas.authentication.surrogate.SurrogateAuthenticationService;
import org.apereo.cas.configuration.CasConfigurationProperties;
import
org.apereo.cas.configuration.model.support.mfa.gauth.LdapGoogleAuthenticatorMultifactorProperties;
-import
org.apereo.cas.configuration.model.support.mfa.u2f.U2FCoreMultifactorAuthenticationProperties;
import
org.apereo.cas.gauth.credential.LdapGoogleAuthenticatorTokenCredentialRepository;
import org.apereo.cas.oidc.jwks.generator.OidcJsonWebKeystoreGeneratorService;
import
org.apereo.cas.otp.repository.credentials.OneTimeTokenCredentialRepository;
@@ -92,7 +86,6 @@ import
org.apereo.cas.support.saml.idp.metadata.locator.SamlIdPMetadataLocator;
import
org.apereo.cas.support.saml.services.idp.metadata.SamlIdPMetadataDocument;
import
org.apereo.cas.trusted.authentication.api.MultifactorAuthenticationTrustRecordKeyGenerator;
import
org.apereo.cas.trusted.authentication.api.MultifactorAuthenticationTrustStorage;
-import org.apereo.cas.util.DateTimeUtils;
import org.apereo.cas.util.LdapUtils;
import org.apereo.cas.util.crypto.CipherExecutor;
import org.apereo.cas.webauthn.storage.WebAuthnCredentialRepository;
@@ -366,20 +359,6 @@ public class WAContext {
return new WAWebAuthnCredentialRepository(casProperties, waRestClient);
}
- @Bean
- public U2FDeviceRepository u2fDeviceRepository(
- final CasConfigurationProperties casProperties,
- final WARestClient waRestClient) {
-
- U2FCoreMultifactorAuthenticationProperties u2f =
casProperties.getAuthn().getMfa().getU2f().getCore();
- OffsetDateTime expirationDate = OffsetDateTime.now().
- minus(u2f.getExpireDevices(),
DateTimeUtils.toChronoUnit(u2f.getExpireDevicesTimeUnit()));
- LoadingCache<String, String> requestStorage = Caffeine.newBuilder().
- expireAfterWrite(u2f.getExpireRegistrations(),
u2f.getExpireRegistrationsTimeUnit()).
- build(key -> StringUtils.EMPTY);
- return new WAU2FDeviceRepository(casProperties, requestStorage,
waRestClient, expirationDate);
- }
-
@Bean
public SurrogateAuthenticationService surrogateAuthenticationService(final
WARestClient waRestClient) {
return new WASurrogateAuthenticationService(waRestClient);
diff --git
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/config/WARefreshContextJob.java
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/config/WARefreshContextJob.java
index 06a7203064..620c29f754 100644
---
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/config/WARefreshContextJob.java
+++
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/config/WARefreshContextJob.java
@@ -61,8 +61,8 @@ public class WARefreshContextJob implements Job {
LOG.info("Generated SAML2 IdP metadata for {}",
document.getAppliesTo());
advertiseReady();
- } catch (final Exception e) {
- throw new JobExecutionException("While generating SAML2 IdP
metadata", e);
+ } catch (Throwable t) {
+ throw new JobExecutionException("While generating SAML2 IdP
metadata", t);
}
}
diff --git
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/saml/idp/metadata/WASamlIdPMetadataGenerator.java
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/saml/idp/metadata/WASamlIdPMetadataGenerator.java
index c9644b930c..7e5ff63ca9 100644
---
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/saml/idp/metadata/WASamlIdPMetadataGenerator.java
+++
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/saml/idp/metadata/WASamlIdPMetadataGenerator.java
@@ -53,11 +53,6 @@ public class WASamlIdPMetadataGenerator extends
BaseSamlIdPMetadataGenerator {
orElse(SAML2IdPEntityService.DEFAULT_OWNER);
}
- @Override
- public SamlIdPMetadataDocument generate(final
Optional<SamlRegisteredService> registeredService) throws Exception {
- return super.generate(registeredService);
- }
-
@Override
protected SamlIdPMetadataDocument finalizeMetadataDocument(
final SamlIdPMetadataDocument doc,
diff --git
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/u2f/WAU2FDeviceRepository.java
b/wa/starter/src/main/java/org/apache/syncope/wa/starter/u2f/WAU2FDeviceRepository.java
deleted file mode 100644
index 178392603c..0000000000
---
a/wa/starter/src/main/java/org/apache/syncope/wa/starter/u2f/WAU2FDeviceRepository.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.wa.starter.u2f;
-
-import com.github.benmanes.caffeine.cache.LoadingCache;
-import java.time.OffsetDateTime;
-import java.time.ZoneId;
-import java.util.Collection;
-import java.util.Objects;
-import java.util.stream.Collectors;
-import org.apache.syncope.common.lib.SyncopeClientException;
-import org.apache.syncope.common.lib.types.ClientExceptionType;
-import org.apache.syncope.common.lib.wa.U2FDevice;
-import org.apache.syncope.common.rest.api.beans.U2FDeviceQuery;
-import org.apache.syncope.common.rest.api.service.wa.U2FRegistrationService;
-import org.apache.syncope.wa.bootstrap.WARestClient;
-import org.apereo.cas.adaptors.u2f.storage.BaseU2FDeviceRepository;
-import org.apereo.cas.adaptors.u2f.storage.U2FDeviceRegistration;
-import org.apereo.cas.configuration.CasConfigurationProperties;
-import org.apereo.cas.util.crypto.CipherExecutor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.util.CollectionUtils;
-
-public class WAU2FDeviceRepository extends BaseU2FDeviceRepository {
-
- private static final Logger LOG =
LoggerFactory.getLogger(WAU2FDeviceRepository.class);
-
- protected static U2FDeviceRegistration parseRegistrationRecord(final
String owner, final U2FDevice device) {
- try {
- return U2FDeviceRegistration.builder().
- id(device.getId()).
- username(owner).
- record(device.getRecord()).
-
createdDate(device.getIssueDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate()).
- build();
- } catch (Exception e) {
- LOG.error(e.getMessage(), e);
- }
- return null;
- }
-
- protected final WARestClient waRestClient;
-
- protected final OffsetDateTime expirationDate;
-
- public WAU2FDeviceRepository(
- final CasConfigurationProperties casProperties,
- final LoadingCache<String, String> requestStorage,
- final WARestClient waRestClient,
- final OffsetDateTime expirationDate) {
-
- super(casProperties, requestStorage,
CipherExecutor.noOpOfSerializableToString());
- this.waRestClient = waRestClient;
- this.expirationDate = expirationDate;
- }
-
- protected U2FRegistrationService service() {
- return waRestClient.getService(U2FRegistrationService.class);
- }
-
- @Override
- public Collection<? extends U2FDeviceRegistration>
getRegisteredDevices(final String owner) {
- return service().
- search(new
U2FDeviceQuery.Builder().owner(owner).expirationDate(expirationDate).build()).getResult().
- stream().
- map(device -> parseRegistrationRecord(owner, device)).
- filter(Objects::nonNull).
- collect(Collectors.toList());
- }
-
- @Override
- public Collection<? extends U2FDeviceRegistration> getRegisteredDevices() {
- return service().search(new
U2FDeviceQuery.Builder().expirationDate(expirationDate).build()).getResult().
- stream().
- map(device -> parseRegistrationRecord("", device)).
- filter(Objects::nonNull).
- collect(Collectors.toList());
- }
-
- @Override
- public U2FDeviceRegistration registerDevice(final U2FDeviceRegistration
registration) {
- U2FDevice record = new U2FDevice.Builder().
- issueDate(OffsetDateTime.of(
- registration.getCreatedDate().atStartOfDay(),
OffsetDateTime.now().getOffset())).
- record(registration.getRecord()).
- id(registration.getId()).
- build();
- service().create(registration.getUsername(), record);
- return parseRegistrationRecord(registration.getUsername(), record);
- }
-
- @Override
- public void deleteRegisteredDevice(final U2FDeviceRegistration
registration) {
- service().delete(new
U2FDeviceQuery.Builder().id(registration.getId()).build());
- }
-
- @Override
- public boolean isDeviceRegisteredFor(final String owner) {
- try {
- Collection<? extends U2FDeviceRegistration> devices =
getRegisteredDevices(owner);
- return !CollectionUtils.isEmpty(devices);
- } catch (final SyncopeClientException e) {
- if (e.getType() == ClientExceptionType.NotFound) {
- LOG.info("Could not locate account for owner {}", owner);
- } else {
- LOG.error(e.getMessage(), e);
- }
- }
- return false;
- }
-
- @Override
- public void clean() {
- service().delete(new
U2FDeviceQuery.Builder().expirationDate(expirationDate).build());
- }
-
- @Override
- public void removeAll() {
- service().delete(new U2FDeviceQuery.Builder().build());
- }
-}
diff --git
a/wa/starter/src/test/java/org/apache/syncope/wa/starter/surrogate/WASurrogateAuthenticationServiceTest.java
b/wa/starter/src/test/java/org/apache/syncope/wa/starter/surrogate/WASurrogateAuthenticationServiceTest.java
index cea5f004cb..9e20d12dce 100644
---
a/wa/starter/src/test/java/org/apache/syncope/wa/starter/surrogate/WASurrogateAuthenticationServiceTest.java
+++
b/wa/starter/src/test/java/org/apache/syncope/wa/starter/surrogate/WASurrogateAuthenticationServiceTest.java
@@ -41,7 +41,7 @@ public class WASurrogateAuthenticationServiceTest extends
AbstractTest {
private SurrogateAuthenticationService surrogateService;
@Test
- public void verifyImpersonation() {
+ public void verifyImpersonation() throws Throwable {
String owner = "syncope-principal";
ImpersonationAccount account = new ImpersonationAccount.Builder().
impersonated("impersonatee").build();