diff --git a/src/main/java/org/eclipse/tractusx/managedidentitywallets/domain/BusinessPartnerNumber.java b/src/main/java/org/eclipse/tractusx/managedidentitywallets/domain/BusinessPartnerNumber.java new file mode 100644 index 000000000..94be8dc46 --- /dev/null +++ b/src/main/java/org/eclipse/tractusx/managedidentitywallets/domain/BusinessPartnerNumber.java @@ -0,0 +1,30 @@ +/* + * ******************************************************************************* + * Copyright (c) 2021,2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://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. + * + * SPDX-License-Identifier: Apache-2.0 + * ****************************************************************************** + */ + +package org.eclipse.tractusx.managedidentitywallets.domain; + +public record BusinessPartnerNumber(String bpn) { + + public String toString() { + return bpn; + } + +} diff --git a/src/main/java/org/eclipse/tractusx/managedidentitywallets/domain/DID.java b/src/main/java/org/eclipse/tractusx/managedidentitywallets/domain/DID.java new file mode 100644 index 000000000..f43ab3683 --- /dev/null +++ b/src/main/java/org/eclipse/tractusx/managedidentitywallets/domain/DID.java @@ -0,0 +1,30 @@ +/* + * ******************************************************************************* + * Copyright (c) 2021,2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://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. + * + * SPDX-License-Identifier: Apache-2.0 + * ****************************************************************************** + */ + +package org.eclipse.tractusx.managedidentitywallets.domain; + +public record DID(String did) { + + public String toString() { + return did; + } + +} diff --git a/src/main/java/org/eclipse/tractusx/managedidentitywallets/domain/IdpTokenResponse.java b/src/main/java/org/eclipse/tractusx/managedidentitywallets/domain/IdpTokenResponse.java new file mode 100644 index 000000000..4735a8b54 --- /dev/null +++ b/src/main/java/org/eclipse/tractusx/managedidentitywallets/domain/IdpTokenResponse.java @@ -0,0 +1,64 @@ +/* + * ******************************************************************************* + * Copyright (c) 2021,2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://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. + * + * SPDX-License-Identifier: Apache-2.0 + * ****************************************************************************** + */ + +package org.eclipse.tractusx.managedidentitywallets.domain; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.nimbusds.jwt.JWT; +import com.nimbusds.jwt.JWTParser; +import lombok.SneakyThrows; + +import java.text.ParseException; + + +@JsonIgnoreProperties(ignoreUnknown = true) +public class IdpTokenResponse { + private JWT idToken; + + @JsonProperty("id_token") + public JWT idToken() { + return idToken; + } + + public void setIdToken(String idToken) throws ParseException { + // todo bri: add validation for the id token + this.idToken = JWTParser.parse(idToken); + } + + @SneakyThrows + public String bpnClaim() { + return this.idToken.getJWTClaimsSet().getClaim("BPN").toString(); + } + + @SneakyThrows + public BusinessPartnerNumber bpn() { + return new BusinessPartnerNumber(this.bpnClaim()); + } + + @Override + @SneakyThrows + public String toString() { + return "IdpResponse{" + + "id_token='" + idToken.getJWTClaimsSet().toString() + '\'' + + '}'; + } +} diff --git a/src/main/java/org/eclipse/tractusx/managedidentitywallets/domain/KeyPair.java b/src/main/java/org/eclipse/tractusx/managedidentitywallets/domain/KeyPair.java new file mode 100644 index 000000000..31b29da1c --- /dev/null +++ b/src/main/java/org/eclipse/tractusx/managedidentitywallets/domain/KeyPair.java @@ -0,0 +1,25 @@ +/* + * ******************************************************************************* + * Copyright (c) 2021,2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://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. + * + * SPDX-License-Identifier: Apache-2.0 + * ****************************************************************************** + */ + +package org.eclipse.tractusx.managedidentitywallets.domain; + +public record KeyPair(String keyId, String privateKey, String publicKey) { +} diff --git a/src/main/java/org/eclipse/tractusx/managedidentitywallets/domain/StsTokenErrorResponse.java b/src/main/java/org/eclipse/tractusx/managedidentitywallets/domain/StsTokenErrorResponse.java new file mode 100644 index 000000000..0ec307d63 --- /dev/null +++ b/src/main/java/org/eclipse/tractusx/managedidentitywallets/domain/StsTokenErrorResponse.java @@ -0,0 +1,34 @@ +/* + * ******************************************************************************* + * Copyright (c) 2021,2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://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. + * + * SPDX-License-Identifier: Apache-2.0 + * ****************************************************************************** + */ + +package org.eclipse.tractusx.managedidentitywallets.domain; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@NoArgsConstructor +@Getter +@Setter +public class StsTokenErrorResponse { + private String error; + private String errorDescription; +} diff --git a/src/main/java/org/eclipse/tractusx/managedidentitywallets/domain/StsTokenResponse.java b/src/main/java/org/eclipse/tractusx/managedidentitywallets/domain/StsTokenResponse.java new file mode 100644 index 000000000..2e78cfff0 --- /dev/null +++ b/src/main/java/org/eclipse/tractusx/managedidentitywallets/domain/StsTokenResponse.java @@ -0,0 +1,38 @@ +/* + * ******************************************************************************* + * Copyright (c) 2021,2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://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. + * + * SPDX-License-Identifier: Apache-2.0 + * ****************************************************************************** + */ + +package org.eclipse.tractusx.managedidentitywallets.domain; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class StsTokenResponse { + private String token; + private long expiresAt; +}