Skip to content

Commit

Permalink
Merge branch 'main' into fido2_cancel
Browse files Browse the repository at this point in the history
  • Loading branch information
yurem committed Jan 31, 2023
2 parents 0a83f83 + f342c7e commit a475628
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ private Filter getExpiredRegistrationFilter(String baseDn) {
final Date unfinishedRequestExpirationDate = calendar.getTime();

// Build unfinished request expiration filter
Filter registrationStatusFilter = Filter.createNOTFilter(Filter.createEqualityFilter("jansStatus", Fido2RegistrationStatus.pending.getValue()));
Filter registrationStatusFilter = Filter.createNOTFilter(Filter.createEqualityFilter("jansStatus", Fido2RegistrationStatus.registered.getValue()));

Filter exirationDateFilter = Filter.createLessOrEqualFilter("creationDate",
persistenceEntryManager.encodeTime(baseDn, unfinishedRequestExpirationDate));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;


import org.apache.commons.lang3.ArrayUtils;
import org.slf4j.Logger;


import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
Expand Down Expand Up @@ -42,6 +45,9 @@
@ApplicationScoped
public class AssertionSuperGluuController {

@Inject
private Logger log;

@Inject
private AssertionService assertionService;

Expand Down Expand Up @@ -104,6 +110,8 @@ public JsonNode startAuthentication(String userName, String keyHandle, String ap
params.put("username", userName);
params.put("session_id", sessionId);

log.debug("Prepared U2F_V2 assertions options request: {}", params.toString());

ObjectNode result = assertionService.options(params);

// Build start authentication response
Expand Down Expand Up @@ -209,6 +217,8 @@ public JsonNode finishAuthentication(String userName, String authenticateRespons
throw new Fido2RuntimeException("Failed to prepare attestationObject");
}

log.debug("Prepared U2F_V2 assertion verify request: {}", params.toString());

ObjectNode result = assertionService.verify(params);

result.put("status", "success");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import java.security.cert.CertificateEncodingException;

import org.apache.commons.lang3.ArrayUtils;
import org.slf4j.Logger;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
Expand Down Expand Up @@ -47,6 +48,9 @@
@ApplicationScoped
public class AttestationSuperGluuController {

@Inject
private Logger log;

@Inject
private AttestationService attestationService;

Expand Down Expand Up @@ -124,6 +128,8 @@ public JsonNode startRegistration(String userName, String appId, String sessionI
// Required parameters
params.put("attestation", "direct");

log.debug("Prepared U2F_V2 attestation options request: {}", params.toString());

ObjectNode result = attestationService.options(params);

// Build start registration response
Expand Down Expand Up @@ -242,6 +248,8 @@ public JsonNode finishRegistration(String userName, String registerResponseStrin
throw new Fido2RuntimeException("Failed to prepare attestationObject");
}

log.debug("Prepared U2F_V2 attestation verify request: {}", params.toString());

ObjectNode result = attestationService.verify(params);

result.put("status", "success");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,36 +7,17 @@
package io.jans.fido2.ws.rs.controller;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import com.fasterxml.jackson.databind.AnnotationIntrospector;
import org.slf4j.Logger;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.fasterxml.jackson.databind.type.TypeFactory;
import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector;

import io.jans.as.model.fido.u2f.message.RawAuthenticateResponse;
import io.jans.as.model.fido.u2f.protocol.AuthenticateResponse;
import io.jans.as.model.fido.u2f.protocol.ClientData;

import io.jans.fido2.exception.Fido2RpRuntimeException;
import io.jans.fido2.exception.Fido2RuntimeException;
import io.jans.fido2.model.conf.AppConfiguration;
import io.jans.fido2.service.AuthenticatorDataParser;
import io.jans.fido2.service.Base64Service;
import io.jans.fido2.service.DataMapperService;
import io.jans.fido2.service.operation.AssertionService;
import io.jans.fido2.service.sg.RawAuthenticationService;
import io.jans.fido2.service.sg.converter.AssertionSuperGluuController;
import io.jans.fido2.service.verifier.CommonVerifiers;
import io.jans.fido2.sg.SuperGluuMode;
import io.jans.util.StringHelper;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.ws.rs.Consumes;
Expand All @@ -59,6 +40,9 @@
@Path("/assertion")
public class AssertionController {

@Inject
private Logger log;

@Inject
private AssertionService assertionService;

Expand Down Expand Up @@ -127,9 +111,16 @@ public Response startAuthentication(@QueryParam("username") String userName, @Qu
if ((appConfiguration.getFido2Configuration() == null) && !appConfiguration.isSuperGluuEnabled()) {
return Response.status(Status.FORBIDDEN).build();
}
log.debug("Start authentication: username = {}, keyhandle = {}, application = {}, session_id = {}", userName, keyHandle, appId, sessionId);

log.debug("Start authentication: username = {}, keyhandle = {}, application = {}, session_id = {}", userName, keyHandle, appId, sessionId);

log.debug("Start authentication: username = {}, keyhandle = {}, application = {}, session_id = {}", userName, keyHandle, appId, sessionId);

JsonNode result = assertionSuperGluuController.startAuthentication(userName, keyHandle, appId, sessionId);

log.debug("Prepared U2F_V2 authentication options request: {}", result.toString());

ResponseBuilder builder = Response.ok().entity(result.toString());
return builder.build();
}
Expand All @@ -142,8 +133,12 @@ public Response finishAuthentication(@FormParam("username") String userName, @Fo
return Response.status(Status.FORBIDDEN).build();
}

log.debug("Finish authentication: username = {}, tokenResponse = {}", userName, authenticateResponseString);

JsonNode result = assertionSuperGluuController.finishAuthentication(userName, authenticateResponseString);

log.debug("Prepared U2F_V2 authentication verify request: {}", result.toString());

ResponseBuilder builder = Response.ok().entity(result.toString());
return builder.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

import java.io.IOException;

import org.slf4j.Logger;

import com.fasterxml.jackson.databind.JsonNode;

import io.jans.fido2.exception.Fido2RpRuntimeException;
Expand Down Expand Up @@ -38,6 +40,9 @@
@Path("/attestation")
public class AttestationController {

@Inject
private Logger log;

@Inject
private AttestationService attestationService;

Expand Down Expand Up @@ -107,8 +112,12 @@ public Response startRegistration(@QueryParam("username") String userName, @Quer
return Response.status(Status.FORBIDDEN).build();
}

log.debug("Start registration: username = {}, application = {}, session_id = {}, enrollment_code = {}", userName, appId, sessionId, enrollmentCode);

JsonNode result = attestationSuperGluuController.startRegistration(userName, appId, sessionId, enrollmentCode);

log.debug("Prepared U2F_V2 registration options request: {}", result.toString());

ResponseBuilder builder = Response.ok().entity(result.toString());
return builder.build();
}
Expand All @@ -121,8 +130,12 @@ public Response finishRegistration(@FormParam("username") String userName, @Form
return Response.status(Status.FORBIDDEN).build();
}

log.debug("Finish registration: username = {}, tokenResponse = {}", userName, registerResponseString);

JsonNode result = attestationSuperGluuController.finishRegistration(userName, registerResponseString);

log.debug("Prepared U2F_V2 registration verify request: {}", result.toString());

ResponseBuilder builder = Response.ok().entity(result.toString());
return builder.build();

Expand Down

0 comments on commit a475628

Please sign in to comment.