Skip to content

Commit

Permalink
Corretta autorizzazione lettura RT da parte del cittadino.
Browse files Browse the repository at this point in the history
  • Loading branch information
pintorig committed Sep 19, 2019
1 parent 8947eb6 commit 3093e4d
Show file tree
Hide file tree
Showing 6 changed files with 21 additions and 8 deletions.
11 changes: 11 additions & 0 deletions jars/core/src/main/java/it/govpay/core/dao/pagamenti/RptDAO.java
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,17 @@ public LeggiRicevutaDTOResponse leggiRt(LeggiRicevutaDTO leggiRicevutaDTO) throw
RptBD rptBD = new RptBD(bd);
Rpt rpt = rptBD.getRpt(leggiRicevutaDTO.getIdDominio(), leggiRicevutaDTO.getIuv(), leggiRicevutaDTO.getCcp());
rpt.getPagamentoPortale(bd).getApplicazione(bd);
VersamentoIncasso versamento = rpt.getVersamentoIncasso(bd);
response.setVersamento(versamento);
versamento.getTipoVersamentoDominio(bd);
versamento.getTipoVersamento(bd);
List<SingoloVersamento> singoliVersamenti = versamento.getSingoliVersamenti(bd);
for (SingoloVersamento singoloVersamento : singoliVersamenti) {
singoloVersamento.getCodContabilita(bd);
singoloVersamento.getIbanAccredito(bd);
singoloVersamento.getTipoContabilita(bd);
singoloVersamento.getTributo(bd);
}

if(rpt.getXmlRt() == null)
throw new RicevutaNonTrovataException(null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
import org.openspcoop2.utils.json.ValidationException;
import org.springframework.security.core.Authentication;

import it.govpay.bd.model.Tributo;
import it.govpay.bd.model.UtenzaCittadino;
import it.govpay.core.autorizzazione.beans.GovpayLdapUserDetails;
import it.govpay.core.autorizzazione.utils.AutorizzazioneUtils;
Expand All @@ -19,7 +18,6 @@
import it.govpay.core.dao.pagamenti.dto.PagamentiPortaleDTO;
import it.govpay.core.dao.pagamenti.dto.PagamentiPortaleDTOResponse;
import it.govpay.core.exceptions.RequestValidationException;
import it.govpay.core.utils.GovpayConfig;
import it.govpay.core.utils.UriBuilderUtils;
import it.govpay.core.utils.rawutils.ConverterUtils;
import it.govpay.model.Utenza.TIPO_UTENZA;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import it.gov.digitpa.schemas._2011.pagamenti.CtRichiestaPagamentoTelematico;
import it.govpay.bd.model.PagamentoPortale;
import it.govpay.bd.model.Rpt;
import it.govpay.bd.viste.model.VersamentoIncasso;
import it.govpay.core.autorizzazione.AuthorizationManager;
import it.govpay.core.autorizzazione.beans.GovpayLdapUserDetails;
import it.govpay.core.autorizzazione.utils.AutorizzazioneUtils;
Expand Down Expand Up @@ -329,11 +330,13 @@ public Response rppIdDominioIuvCcpGET(Authentication user, UriInfo uriInfo, Http

private void checkAutorizzazioniUtenza(Authentication user, Rpt rpt) throws ServiceException, NotFoundException, NotAuthorizedException {
PagamentoPortale pagamentoPortale = rpt.getPagamentoPortale(null);
VersamentoIncasso versamento = rpt.getVersamentoIncasso(null);

GovpayLdapUserDetails details = AutorizzazioneUtils.getAuthenticationDetails(user);
if(details.getTipoUtenza().equals(TIPO_UTENZA.CITTADINO)) {
if(pagamentoPortale.getVersanteIdentificativo() == null || !pagamentoPortale.getVersanteIdentificativo().equals(details.getUtenza().getIdentificativo())) {
throw AuthorizationManager.toNotAuthorizedException(user);
if((pagamentoPortale.getVersanteIdentificativo() == null || !pagamentoPortale.getVersanteIdentificativo().equals(details.getUtenza().getIdentificativo()))
&& !versamento.getAnagraficaDebitore().getCodUnivoco().equals(details.getUtenza().getIdentificativo())) {
throw AuthorizationManager.toNotAuthorizedException(user, "la transazione riferisce un pagamento che non appartiene al cittadino chiamante");
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import org.openspcoop2.utils.json.ValidationException;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonRawValue;

import it.govpay.core.beans.JSONSerializable;
@com.fasterxml.jackson.annotation.JsonPropertyOrder({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import org.openspcoop2.utils.json.ValidationException;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonRawValue;

import it.govpay.core.beans.JSONSerializable;
@com.fasterxml.jackson.annotation.JsonPropertyOrder({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import it.gov.digitpa.schemas._2011.pagamenti.CtRichiestaPagamentoTelematico;
import it.govpay.bd.model.PagamentoPortale;
import it.govpay.bd.model.Rpt;
import it.govpay.bd.viste.model.VersamentoIncasso;
import it.govpay.core.autorizzazione.AuthorizationManager;
import it.govpay.core.autorizzazione.beans.GovpayLdapUserDetails;
import it.govpay.core.autorizzazione.utils.AutorizzazioneUtils;
Expand Down Expand Up @@ -329,11 +330,13 @@ public Response rppIdDominioIuvCcpGET(Authentication user, UriInfo uriInfo, Http

private void checkAutorizzazioniUtenza(Authentication user, Rpt rpt) throws ServiceException, NotFoundException, NotAuthorizedException {
PagamentoPortale pagamentoPortale = rpt.getPagamentoPortale(null);
VersamentoIncasso versamento = rpt.getVersamentoIncasso(null);

GovpayLdapUserDetails details = AutorizzazioneUtils.getAuthenticationDetails(user);
if(details.getTipoUtenza().equals(TIPO_UTENZA.CITTADINO)) {
if(pagamentoPortale.getVersanteIdentificativo() == null || !pagamentoPortale.getVersanteIdentificativo().equals(details.getUtenza().getIdentificativo())) {
throw AuthorizationManager.toNotAuthorizedException(user);
if((pagamentoPortale.getVersanteIdentificativo() == null || !pagamentoPortale.getVersanteIdentificativo().equals(details.getUtenza().getIdentificativo()))
&& !versamento.getAnagraficaDebitore().getCodUnivoco().equals(details.getUtenza().getIdentificativo())) {
throw AuthorizationManager.toNotAuthorizedException(user, "la transazione riferisce un pagamento che non appartiene al cittadino chiamante");
}
}

Expand Down

0 comments on commit 3093e4d

Please sign in to comment.