
org.ojbc.bundles.utilities.auditing.AuditRestImpl Maven / Gradle / Ivy
The newest version!
/*
* Unless explicitly acquired and licensed from Licensor under another license, the contents of
* this file are subject to the Reciprocal Public License ("RPL") Version 1.5, or subsequent
* versions as allowed by the RPL, and You may not copy or use this file in either source code
* or executable form, except in compliance with the terms and conditions of the RPL
*
* All software distributed under the RPL is provided strictly on an "AS IS" basis, WITHOUT
* WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, AND LICENSOR HEREBY DISCLAIMS ALL SUCH
* WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
* PARTICULAR PURPOSE, QUIET ENJOYMENT, OR NON-INFRINGEMENT. See the RPL for specific language
* governing rights and limitations under the RPL.
*
* http://opensource.org/licenses/RPL-1.5
*
* Copyright 2012-2017 Open Justice Broker Consortium
*/
package org.ojbc.bundles.utilities.auditing;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.ojbc.audit.enhanced.dao.EnhancedAuditDAO;
import org.ojbc.audit.enhanced.dao.model.FederalRapbackNotification;
import org.ojbc.audit.enhanced.dao.model.FederalRapbackSubscription;
import org.ojbc.audit.enhanced.dao.model.FederalRapbackSubscriptionDetail;
import org.ojbc.audit.enhanced.dao.model.FirearmsSearchRequest;
import org.ojbc.audit.enhanced.dao.model.IncidentSearchRequest;
import org.ojbc.audit.enhanced.dao.model.NotificationSent;
import org.ojbc.audit.enhanced.dao.model.PersonSearchRequest;
import org.ojbc.audit.enhanced.dao.model.PrintResults;
import org.ojbc.audit.enhanced.dao.model.QueryRequestByDateRange;
import org.ojbc.audit.enhanced.dao.model.UserAcknowledgement;
import org.ojbc.audit.enhanced.dao.model.UserInfo;
import org.ojbc.audit.enhanced.dao.model.VehicleSearchRequest;
import org.ojbc.audit.enhanced.dao.model.auditsearch.AuditSearchRequest;
import org.ojbc.audit.enhanced.dao.model.auditsearch.UserAuthenticationSearchRequest;
import org.ojbc.audit.enhanced.dao.model.auditsearch.UserAuthenticationSearchResponse;
import org.ojbc.intermediaries.sn.dao.SubscriptionSearchQueryDAO;
import org.ojbc.util.model.rapback.AgencyProfile;
import org.ojbc.util.model.rapback.ExpiringSubscriptionRequest;
import org.ojbc.util.model.rapback.Subscription;
import org.springframework.stereotype.Service;
@Service
public class AuditRestImpl implements AuditInterface {
private static final Log log = LogFactory.getLog(AuditRestImpl.class);
@Resource
private EnhancedAuditDAO enhancedAuditDao;
@Resource
private SubscriptionSearchQueryDAO subscriptionSearchQueryDAO;
@Resource
Map notificationSystemToTriggeringEvent;
private static final String LOGIN_ACTION="login";
private static final String LOGOUT_ACTION="logout";
@Override
public Response auditPrintResults(PrintResults printResults) {
log.info("Print Results: " + printResults.toString());
enhancedAuditDao.savePrintResults(printResults);
return Response.status(Status.OK).entity(printResults).build();
}
@Override
public Response auditUserLogin(UserInfo userInfo) {
log.info("Auditing user login info: " + userInfo.toString());
Integer userInfoPk = null;
//Look up user info here
List userInfoEntries = enhancedAuditDao.retrieveUserInfoFromFederationId(userInfo.getFederationId());
if (userInfoEntries != null && userInfoEntries.size() > 0)
{
userInfoPk = userInfoEntries.get(0).getUserInfoId();
}
else
{
userInfoPk = enhancedAuditDao.saveUserInfo(userInfo);
}
enhancedAuditDao.saveUserAuthentication(userInfoPk, LOGIN_ACTION);
return Response.status(Status.OK).entity(userInfo).build();
}
@Override
public Response auditUserLogout(UserInfo userInfo) {
log.info("Auditing user logout info: " + userInfo.toString());
Integer userInfoPk = null;
//Look up user info here
List userInfoEntries = enhancedAuditDao.retrieveUserInfoFromFederationId(userInfo.getFederationId());
if (userInfoEntries != null && userInfoEntries.size() > 0)
{
userInfoPk = userInfoEntries.get(0).getUserInfoId();
}
else
{
userInfoPk = enhancedAuditDao.saveUserInfo(userInfo);
}
enhancedAuditDao.saveUserAuthentication(userInfoPk, LOGOUT_ACTION);
return Response.status(Status.OK).entity(userInfo).build();
}
@Override
public Response auditUserAcknowledgement(
UserAcknowledgement userAcknowledgement) {
log.info("Audit user acknowledgement: " + userAcknowledgement.toString());
Integer userInfoPk = null;
//Look up user info here
List userInfoEntries = enhancedAuditDao.retrieveUserInfoFromFederationId(userAcknowledgement.getUserInfo().getFederationId());
if (userInfoEntries != null && userInfoEntries.size() > 0)
{
userInfoPk = userInfoEntries.get(0).getUserInfoId();
}
else
{
userInfoPk = enhancedAuditDao.saveUserInfo(userAcknowledgement.getUserInfo());
}
userAcknowledgement.getUserInfo().setUserInfoId(userInfoPk);
enhancedAuditDao.saveuserAcknowledgement(userAcknowledgement);
return Response.status(Status.OK).entity(userAcknowledgement).build();
}
@Override
public List searchForFederalRapbackSubscriptions(String subscriptionId) {
log.info("Subscription ID: " + subscriptionId);
List federalRapbackSubscriptions = enhancedAuditDao.retrieveFederalRapbackSubscriptionFromStateSubscriptionId(subscriptionId);
return federalRapbackSubscriptions;
}
@Override
public List retrieveExpiringSubscriptions(ExpiringSubscriptionRequest request) {
log.info("Days until expiration: " + request.getDaysUntilExpiry());
log.info("ORIs: " + request.getOris());
List subscriptions = subscriptionSearchQueryDAO.searchForExpiringAndInvalidSubscriptions(request.getOris(), request.getDaysUntilExpiry(), request.getSystemName());
return subscriptions;
}
@Override
public List retrieveExpiredSubscriptions(
ExpiringSubscriptionRequest request) {
log.info("Days until expiration: " + request.getDaysUntilExpiry());
log.info("ORIs: " + request.getOris());
List subscriptions = subscriptionSearchQueryDAO.searchForExpiredAndInvalidSubscriptions(request.getOris(), request.getDaysUntilExpiry(), request.getSystemName());
return subscriptions;
}
@Override
public List retrieveAllAgencies() {
List agencyProfiles = subscriptionSearchQueryDAO.returnAllAgencies();
return agencyProfiles;
}
@Override
public List retrieveRapbackNotifications(QueryRequestByDateRange queryRequestByDateRange) {
List federalRapbackNotifications = enhancedAuditDao.retrieveFederalNotifications(queryRequestByDateRange.getStartDate(), queryRequestByDateRange.getEndDate());
return federalRapbackNotifications;
}
@Override
public List retrieveNotificationsSent(QueryRequestByDateRange queryRequestByDateRange) {
List notificationSents = enhancedAuditDao.retrieveNotifications(queryRequestByDateRange.getStartDate(), queryRequestByDateRange.getEndDate());
for (NotificationSent notificationSent : notificationSents)
{
if (StringUtils.isNotBlank(notificationSent.getNotifyingSystemName()))
{
if (notificationSystemToTriggeringEvent.containsKey(notificationSent.getNotifyingSystemName()))
{
ArrayList triggeringEvents = new ArrayList();
triggeringEvents.add(notificationSystemToTriggeringEvent.get(notificationSent.getNotifyingSystemName()));
notificationSent.setTriggeringEvents(triggeringEvents);
}
}
}
return notificationSents;
}
@Override
public List searchForFederalRapbackNotifications(
String subscriptionId) {
List federalRapbackNotifications = enhancedAuditDao.retrieveFederalNotificationsBySubscriptionId(subscriptionId);
return federalRapbackNotifications;
}
@Override
public List retrieveFederalRapbackSubscriptionErrors() {
log.info("Retrieve Federal Subscription Errors.");
List federalRapbackSubscriptions = enhancedAuditDao.retrieveFederalRapbackSubscriptionErrors();
return federalRapbackSubscriptions;
}
@Override
public FederalRapbackSubscriptionDetail returnFederalRapbackSubscriptionDetail(
String subscriptionId) {
FederalRapbackSubscriptionDetail federalRapbackSubscriptionDetail = new FederalRapbackSubscriptionDetail();
//Return all federal subscription info for the state subscription
List federalRapbackSubscriptions = enhancedAuditDao.retrieveFederalRapbackSubscriptionFromStateSubscriptionId(subscriptionId);
federalRapbackSubscriptionDetail.setFederalRapbackSubscriptions(federalRapbackSubscriptions);
boolean latestMaintenanceRequestFound = false;
//Results come back sorted in descending order by timestamp
for (FederalRapbackSubscription federalRapbackSubscription : federalRapbackSubscriptions)
{
if ("RBSCVL".equals(federalRapbackSubscription.getTransactionCategoryCodeRequest()))
{
federalRapbackSubscriptionDetail.setFbiSubscriptionSent(true);
if (StringUtils.isNotBlank(federalRapbackSubscription.getTransactionCategoryCodeResponse()) && federalRapbackSubscription.getTransactionCategoryCodeResponse().equals("RBSR") && StringUtils.isNotBlank(federalRapbackSubscription.getFbiSubscriptionId()))
{
federalRapbackSubscriptionDetail.setFbiSubscriptionCreated(true);
}
if (StringUtils.isNotBlank(federalRapbackSubscription.getTransactionStatusText()))
{
federalRapbackSubscriptionDetail.setFbiSubscriptionErrorText(federalRapbackSubscription.getTransactionStatusText());
}
}
if ("RBSCRM".equals(federalRapbackSubscription.getTransactionCategoryCodeRequest()))
{
federalRapbackSubscriptionDetail.setFbiSubscriptionSent(true);
if (StringUtils.isNotBlank(federalRapbackSubscription.getTransactionCategoryCodeResponse()) && federalRapbackSubscription.getTransactionCategoryCodeResponse().equals("RBSR") && StringUtils.isNotBlank(federalRapbackSubscription.getFbiSubscriptionId()))
{
federalRapbackSubscriptionDetail.setFbiSubscriptionCreated(true);
}
if (StringUtils.isNotBlank(federalRapbackSubscription.getTransactionStatusText()))
{
federalRapbackSubscriptionDetail.setFbiSubscriptionErrorText(federalRapbackSubscription.getTransactionStatusText());
}
}
if (!latestMaintenanceRequestFound)
{
if ("RBMNT".equals(federalRapbackSubscription.getTransactionCategoryCodeRequest()))
{
federalRapbackSubscriptionDetail.setFbiRapbackMaintenanceSent(true);
if (StringUtils.isNotBlank(federalRapbackSubscription.getTransactionCategoryCodeResponse()) && federalRapbackSubscription.getTransactionCategoryCodeResponse().equals("RBMNTR") && StringUtils.isNotBlank(federalRapbackSubscription.getFbiSubscriptionId()))
{
federalRapbackSubscriptionDetail.setFbiRapbackMaintenanceConfirmed(true);
}
if (StringUtils.isNotBlank(federalRapbackSubscription.getTransactionStatusText()))
{
federalRapbackSubscriptionDetail.setFbiRapbackMaintenanceErrorText(federalRapbackSubscription.getTransactionStatusText());
}
latestMaintenanceRequestFound = true;
}
}
}
return federalRapbackSubscriptionDetail;
}
@Override
public List retrieveUserAuthentications(
UserAuthenticationSearchRequest authenticationSearchRequest) {
log.info("User Authentication Search Request: " + authenticationSearchRequest.toString());
List userAuthenticationSearchResponses = enhancedAuditDao.retrieveUserAuthentication(authenticationSearchRequest);
return userAuthenticationSearchResponses;
}
@Override
public List retrievePersonSearchRequest(AuditSearchRequest auditSearchRequest) {
log.info("Person Audit Search Request: " + auditSearchRequest.toString());
List personSearchRequests = enhancedAuditDao.retrievePersonSearchRequest(auditSearchRequest);
return personSearchRequests;
}
@Override
public List retrieveFirearmSearchRequest(AuditSearchRequest auditSearchRequest) {
log.info("Firearm Audit Search Request: " + auditSearchRequest.toString());
List firearmsSearchRequests = enhancedAuditDao.retrieveFirearmSearchRequest(auditSearchRequest);
return firearmsSearchRequests;
}
@Override
public List retrieveVehicleSearchRequest(AuditSearchRequest auditSearchRequest) {
log.info("Vehicle Audit Search Request: " + auditSearchRequest.toString());
List vehicleSearchRequests = enhancedAuditDao.retrieveVehicleSearchRequest(auditSearchRequest);
return vehicleSearchRequests;
}
@Override
public List retrieveIncidentSearchRequest(AuditSearchRequest auditSearchRequest) {
log.info("Incident Audit Search Request: " + auditSearchRequest.toString());
List incidentSearchRequests = enhancedAuditDao.retrieveIncidentSearchRequest(auditSearchRequest);
return incidentSearchRequests;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy