Mule4: Autenticazione di un end-point con Spring

Mulesoft è uno degli ESB (Enternet Service Bus) più utilizzati in ambito commerciale. Una delle tante funzionalità offerte da un ESB è quella di  pubblicare delle API per la gestione di servizi o dei semplici end-point per recuperare o inviare dati da o a un  microservizio.  Questi end-point sono accessibili tramite il protocolo HTTP e i metodi: GET, POST, PUT, PATH, DELETE.

Nei giorni scorsi ho dovuto implementare dei semplici end-point che raccogliessero dati da varie fonti e li rendessero disponibili a una applicazione che stavo modificando. Non è stato difficile, e il passaggio più elaborato è stato quello di aggiungere l’autenticazione, in modo che i servizi fossero invocabili attraverso la Basic Authentication.

Questi sono i passaggi da seguire all’interno di Anypoint Studio 7.9.0:

  1. Creare un nuovo progetto Mule: “spring-basic-auth“.
  2. Trascinare dalla Mule Palette al nuovo flusso i seguenti nodi:
    • Listener
    • Basic security filter
    • Set Payload
  3. Configurare il Listener nel modo seguente:
    • Aggiungere la configurazione di un nuovo connettore cliccando sul simbolo “+” del campo Connector configurations e scrivere “/” nel campo Base path della maschera che si apre.
    • Assicurarsi che nel campo Connector configurations sia selezionato connettore appena creato, che ha come nome di default “HTTP_Listener_config“.
    • Nel campo Path indicare come nome dell’end point: “/getData“. 
  1. Configurare il nodo Base security filter in questo modo:
    • Nel campo Security Filter–>Realm scrivere: “esb-realm
  2. Configurare il campo Set Payload in questo modo:
    • Scrivere “Forza azzurri !!” nel campo Settings–>Value.
    • Assicurarsi che il pulsante fx sia deselezionato come nell’immagine seguente.
  3. Nella Mule palette cliccare su “Add module” e trascinare il modulo Spring nella colonna dei moduli di questa app.
  4. Aggiungere in src/main/resources un file chiamato beans.xml con il contenuto seguente (scrivere {noop} prima della password dell’account per indicare che quella è la password non criptata):
  5. In Global Elements cliccare su Create, aggiungere gli elementi Spring Security manager e Spring Config e configurarli nel modo seguente.
  6. Spring Security manager, compilare i seguenti campi:
    • Name: auth-provider
    • Delegate reference: authenticationManager
  7. Spring config, compilare i seguenti campi:
    • Name: beans.xml
  8. Eseguire il progetto: Project–>Run as –> Mule application.
  9. Aprire un browser e visitarle l’url: http://localhost:8081/getData
  10. Inserirendo l’account configurato nel file beans.xml: user1 / test, comparirà il seguente messaggio:
  11. Inserendo un account sbagliato l’accesso all’end-point sarà negato.

 

Progetto su BitBucket:

Questo è il progetto su BitBucket che contiene l’esempio di questo post: spring-basic-auth. In particolare, questo è il file file beans.xml usato in questo esempio.

 

Fonti e riferimenti:

 

 

 

3 years ago

Leave a Reply

Your email address will not be published. Required fields are marked *