use of io.getlime.security.powerauth.rest.api.base.exception.PowerAuthActivationException in project powerauth-restful-integration by lime-company.
the class ActivationController method getActivationStatus.
/**
* Get activation status.
* @param request PowerAuth RESTful request with {@link ActivationStatusRequest} payload.
* @return PowerAuth RESTful response with {@link ActivationStatusResponse} payload.
* @throws RemoteException In case SOAP communication fails
*/
@POST
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
@Path("status")
public ObjectResponse<ActivationStatusResponse> getActivationStatus(ObjectRequest<ActivationStatusRequest> request) throws RemoteException, PowerAuthActivationException {
if (request.getRequestObject() == null) {
throw new PowerAuthActivationException();
}
try {
String activationId = request.getRequestObject().getActivationId();
PowerAuthPortServiceStub.GetActivationStatusResponse soapResponse = powerAuthClient.getActivationStatus(activationId);
ActivationStatusResponse response = new ActivationStatusResponse();
response.setActivationId(soapResponse.getActivationId());
response.setEncryptedStatusBlob(soapResponse.getEncryptedStatusBlob());
if (applicationConfiguration != null) {
response.setCustomObject(applicationConfiguration.statusServiceCustomObject());
}
return new ObjectResponse<>(response);
} catch (Exception e) {
throw new PowerAuthActivationException();
}
}
use of io.getlime.security.powerauth.rest.api.base.exception.PowerAuthActivationException in project powerauth-restful-integration by lime-company.
the class ActivationController method createActivation.
/**
* Create a new activation.
* @param request PowerAuth RESTful request with {@link ActivationCreateRequest} payload.
* @return PowerAuth RESTful response with {@link ActivationCreateResponse} payload.
*/
@RequestMapping(value = "create", method = RequestMethod.POST)
@ResponseBody
public ObjectResponse<ActivationCreateResponse> createActivation(@RequestBody ObjectRequest<ActivationCreateRequest> request) throws PowerAuthActivationException {
try {
String activationIDShort = request.getRequestObject().getActivationIdShort();
String activationNonce = request.getRequestObject().getActivationNonce();
String cDevicePublicKey = request.getRequestObject().getEncryptedDevicePublicKey();
String activationName = request.getRequestObject().getActivationName();
String extras = request.getRequestObject().getExtras();
String applicationKey = request.getRequestObject().getApplicationKey();
String applicationSignature = request.getRequestObject().getApplicationSignature();
String clientEphemeralKey = request.getRequestObject().getEphemeralPublicKey();
PrepareActivationResponse soapResponse = powerAuthClient.prepareActivation(activationIDShort, activationName, activationNonce, clientEphemeralKey, cDevicePublicKey, extras, applicationKey, applicationSignature);
ActivationCreateResponse response = new ActivationCreateResponse();
response.setActivationId(soapResponse.getActivationId());
response.setActivationNonce(soapResponse.getActivationNonce());
response.setEncryptedServerPublicKey(soapResponse.getEncryptedServerPublicKey());
response.setEncryptedServerPublicKeySignature(soapResponse.getEncryptedServerPublicKeySignature());
response.setEphemeralPublicKey(soapResponse.getEphemeralPublicKey());
return new ObjectResponse<>(response);
} catch (Exception ex) {
throw new PowerAuthActivationException();
}
}
use of io.getlime.security.powerauth.rest.api.base.exception.PowerAuthActivationException in project powerauth-restful-integration by lime-company.
the class ActivationController method getActivationStatus.
/**
* Get activation status.
* @param request PowerAuth RESTful request with {@link ActivationStatusRequest} payload.
* @return PowerAuth RESTful response with {@link ActivationStatusResponse} payload.
*/
@RequestMapping(value = "status", method = RequestMethod.POST)
@ResponseBody
public ObjectResponse<ActivationStatusResponse> getActivationStatus(@RequestBody ObjectRequest<ActivationStatusRequest> request) throws PowerAuthActivationException {
try {
String activationId = request.getRequestObject().getActivationId();
GetActivationStatusResponse soapResponse = powerAuthClient.getActivationStatus(activationId);
ActivationStatusResponse response = new ActivationStatusResponse();
response.setActivationId(soapResponse.getActivationId());
response.setEncryptedStatusBlob(soapResponse.getEncryptedStatusBlob());
if (applicationConfiguration != null) {
response.setCustomObject(applicationConfiguration.statusServiceCustomObject());
}
return new ObjectResponse<>(response);
} catch (Exception ex) {
throw new PowerAuthActivationException();
}
}
use of io.getlime.security.powerauth.rest.api.base.exception.PowerAuthActivationException in project powerauth-restful-integration by lime-company.
the class CustomActivationController method createNewActivation.
@RequestMapping(value = "create", method = RequestMethod.POST)
@ResponseBody
public ObjectResponse<NonPersonalizedEncryptedPayloadModel> createNewActivation(@RequestBody ObjectRequest<NonPersonalizedEncryptedPayloadModel> object) throws PowerAuthAuthenticationException, PowerAuthActivationException {
try {
// Check if there is any user provider to be autowired
if (userProvider == null) {
throw new PowerAuthActivationException();
}
// Prepare an encryptor
final PowerAuthNonPersonalizedEncryptor encryptor = encryptorFactory.buildNonPersonalizedEncryptor(object);
if (encryptor == null) {
throw new PowerAuthActivationException();
}
// Decrypt the request object
ActivationCreateCustomRequest request = encryptor.decrypt(object, ActivationCreateCustomRequest.class);
if (request == null) {
throw new PowerAuthActivationException();
}
// Lookup user ID using a provided identity
final Map<String, String> identity = request.getIdentity();
String userId = userProvider.lookupUserIdForAttributes(identity);
// If no user was found, return error
if (userId == null) {
throw new PowerAuthActivationException();
}
// Create activation for a looked up user and application related to the given application key
ActivationCreateRequest acr = request.getPowerauth();
CreateActivationResponse response = powerAuthClient.createActivation(acr.getApplicationKey(), userId, acr.getActivationIdShort(), acr.getActivationName(), acr.getActivationNonce(), acr.getEphemeralPublicKey(), acr.getEncryptedDevicePublicKey(), acr.getExtras(), acr.getApplicationSignature());
// Process custom attributes using a custom logic
final Map<String, Object> customAttributes = request.getCustomAttributes();
userProvider.processCustomActivationAttributes(customAttributes);
// Prepare the created activation response data
ActivationCreateResponse createResponse = new ActivationCreateResponse();
createResponse.setActivationId(response.getActivationId());
createResponse.setEphemeralPublicKey(response.getEphemeralPublicKey());
createResponse.setActivationNonce(response.getActivationNonce());
createResponse.setEncryptedServerPublicKey(response.getEncryptedServerPublicKey());
createResponse.setEncryptedServerPublicKeySignature(response.getEncryptedServerPublicKeySignature());
// Encrypt response object
final ObjectResponse<NonPersonalizedEncryptedPayloadModel> powerAuthApiResponse = encryptor.encrypt(createResponse);
// Check if activation should be committed instantly and if yes, perform commit
if (userProvider.shouldAutoCommitActivation(identity, customAttributes)) {
powerAuthClient.commitActivation(response.getActivationId());
}
// Return response
return powerAuthApiResponse;
} catch (IOException e) {
throw new PowerAuthActivationException();
}
}
use of io.getlime.security.powerauth.rest.api.base.exception.PowerAuthActivationException in project powerauth-restful-integration by lime-company.
the class ActivationController method removeActivation.
/**
* Get activation status.
* @param signatureHeader PowerAuth signature HTTP header.
* @return PowerAuth RESTful response with {@link ActivationRemoveResponse} payload.
* @throws PowerAuthActivationException In case activation access fails.
* @throws PowerAuthAuthenticationException In case the signature validation fails.
*/
@RequestMapping(value = "remove", method = RequestMethod.POST)
@ResponseBody
public ObjectResponse<ActivationRemoveResponse> removeActivation(@RequestHeader(value = PowerAuthSignatureHttpHeader.HEADER_NAME) String signatureHeader) throws PowerAuthActivationException, PowerAuthAuthenticationException {
try {
PowerAuthApiAuthentication apiAuthentication = authenticationProvider.validateRequestSignature("POST", null, "/pa/activation/remove", signatureHeader);
if (apiAuthentication != null && apiAuthentication.getActivationId() != null) {
RemoveActivationResponse soapResponse = powerAuthClient.removeActivation(apiAuthentication.getActivationId());
ActivationRemoveResponse response = new ActivationRemoveResponse();
response.setActivationId(soapResponse.getActivationId());
return new ObjectResponse<>(response);
} else {
throw new PowerAuthAuthenticationException("USER_NOT_AUTHENTICATED");
}
} catch (PowerAuthAuthenticationException ex) {
throw ex;
} catch (Exception ex) {
throw new PowerAuthActivationException();
}
}
Aggregations