AutorizzazioneUtilities.java
- /*
- * GovWay - A customizable API Gateway
- * https://govway.org
- *
- * Copyright (c) 2005-2025 Link.it srl (https://link.it).
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3, as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- package org.openspcoop2.web.ctrlstat.core;
- import java.util.ArrayList;
- import java.util.List;
- import org.openspcoop2.core.config.constants.StatoFunzionalita;
- import org.openspcoop2.core.config.constants.TipoAutorizzazione;
- import org.openspcoop2.core.registry.constants.RuoloTipologia;
- /**
- * AutorizzazioneUtilities
- *
- * @author Andrea Poli (apoli@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- *
- */
- public class AutorizzazioneUtilities {
-
- private AutorizzazioneUtilities() {}
- public static final String STATO_ABILITATO = StatoFunzionalita.ABILITATO.getValue();
- public static final String STATO_DISABILITATO = StatoFunzionalita.DISABILITATO.getValue();
- public static final String STATO_XACML_POLICY = "xacml-Policy";
- public static final String STATO_SIGNAL_HUB_PUSH_SIGNALS = "signal-Hub";
- public static List<String> getStati(boolean signalHub){
- List<String> l = new ArrayList<>();
- l.add(STATO_DISABILITATO);
- l.add(STATO_ABILITATO);
- l.add(STATO_XACML_POLICY);
- if(signalHub) {
- l.add(STATO_SIGNAL_HUB_PUSH_SIGNALS);
- }
- return l;
- }
- public static String convertToStato(String autorizzazione){
- return convertToStato(TipoAutorizzazione.toEnumConstant(autorizzazione));
- }
- public static String convertToStato(TipoAutorizzazione autorizzazione){
- if(TipoAutorizzazione.isXacmlPolicyRequired(autorizzazione)){
- return STATO_XACML_POLICY;
- }
- else if(TipoAutorizzazione.DISABILITATO.equals(autorizzazione)){
- return STATO_DISABILITATO;
- }
- else if(TipoAutorizzazione.TOKEN.equals(autorizzazione)){
- return STATO_ABILITATO;
- }
- else if(TipoAutorizzazione.SIGNAL_HUB_PUSH.equals(autorizzazione)){
- return STATO_SIGNAL_HUB_PUSH_SIGNALS;
- }
- else{
- return STATO_ABILITATO;
- }
- }
-
- public static RuoloTipologia convertToRuoloTipologia(String autorizzazione){
- return convertToRuoloTipologia(TipoAutorizzazione.toEnumConstant(autorizzazione));
- }
- public static RuoloTipologia convertToRuoloTipologia(TipoAutorizzazione autorizzazione){
- if(autorizzazione==null){
- return RuoloTipologia.QUALSIASI;
- }
- switch (autorizzazione) {
- case AUTHENTICATED_EXTERNAL_ROLES:
- case EXTERNAL_ROLES:
- case EXTERNAL_XACML_POLICY:
- return RuoloTipologia.ESTERNO;
- case AUTHENTICATED_INTERNAL_ROLES:
- case INTERNAL_ROLES:
- case INTERNAL_XACML_POLICY:
- return RuoloTipologia.INTERNO;
- case AUTHENTICATED_ROLES:
- case ROLES:
- case XACML_POLICY:
- return RuoloTipologia.QUALSIASI;
- default:
- return RuoloTipologia.QUALSIASI;
- }
-
- }
- public static TipoAutorizzazione convertToTipoAutorizzazione(String stato,boolean authenticated,boolean roles,
- boolean tokenAuthenticated, boolean tokenRoles,
- boolean scopes,String autorizzazioneTokenOptions,
- RuoloTipologia tipologia){
- if(STATO_DISABILITATO.equals(stato)){
- return TipoAutorizzazione.DISABILITATO;
- }
- else if(STATO_XACML_POLICY.equals(stato)){
- switch (tipologia) {
- case ESTERNO:
- return TipoAutorizzazione.EXTERNAL_XACML_POLICY;
- case INTERNO:
- return TipoAutorizzazione.INTERNAL_XACML_POLICY;
- case QUALSIASI:
- return TipoAutorizzazione.XACML_POLICY;
- }
- }
- else if(STATO_SIGNAL_HUB_PUSH_SIGNALS.equals(stato)){
- return TipoAutorizzazione.SIGNAL_HUB_PUSH;
- }
- else {
- if(roles){
- switch (tipologia) {
- case ESTERNO:
- if(authenticated){
- return TipoAutorizzazione.AUTHENTICATED_EXTERNAL_ROLES;
- }
- else{
- return TipoAutorizzazione.EXTERNAL_ROLES;
- }
- case INTERNO:
- if(authenticated){
- return TipoAutorizzazione.AUTHENTICATED_INTERNAL_ROLES;
- }
- else{
- return TipoAutorizzazione.INTERNAL_ROLES;
- }
- case QUALSIASI:
- if(authenticated){
- return TipoAutorizzazione.AUTHENTICATED_ROLES;
- }
- else{
- return TipoAutorizzazione.ROLES;
- }
- }
- }
- else if(authenticated){
- return TipoAutorizzazione.AUTHENTICATED;
- }
- else if(tokenAuthenticated || tokenRoles || scopes || (autorizzazioneTokenOptions!=null && !"".equals(autorizzazioneTokenOptions))) {
- return TipoAutorizzazione.TOKEN;
- }
- }
- return TipoAutorizzazione.DISABILITATO; // ??
- }
- public static String convertToTipoAutorizzazioneAsString(String stato,boolean authenticated,boolean roles,
- boolean tokenAuthenticated, boolean tokenRoles,
- boolean scopes,String autorizzazioneTokenOptions,
- RuoloTipologia tipologia){
- return convertToTipoAutorizzazione(stato, authenticated, roles,
- tokenAuthenticated, tokenRoles,
- scopes, autorizzazioneTokenOptions,
- tipologia).getValue();
- }
-
- }