Cerca nel blog

mercoledì 12 dicembre 2012

Autenticazione Custom in Oracle Apex - Custom Authentication

Le modalità di autenticazione per accedere alle web application sviluppate mediante Oracle Apex sono sostanzialmente le tre seguenti:
- Autenticazione mediante user/credenziali di Oracle Apex
- Autenticazione mediante utenti di Database
- Custom Authentication mediante credenziali di accesso memorizzate in tabella di database.
In questo breve tutorial parleremo della Custom Authentication che risulta utile in diverse realizzazioni di web app per profilare l'accesso all'applicazione mediante le credenziali di utenti memorizzati in tabella di Database.
Realizziamo quindi nello schema del Database, dove punta la nostra Workspace, la tabella utenti nella quale verranno memorizzati i dati relativi agli utenti che hanno diritto di accesso alla generica web application.
Possiamo agevolmente creare la tabella utenti mediante l'interfaccia di SQL Workshop e la sezione Object Navigator--> create table
Di seguito lo script relativo al DDL della nostra tabella utenti:

CREATE TABLE  "UTENTI" 
   ( "ID_UTENTE" NUMBER(5,0) NOT NULL ENABLE, 
 "COGNOME" VARCHAR2(50), 
 "NOME" VARCHAR2(30), 
 "USERNAME" VARCHAR2(30) NOT NULL , 
 "PASSWORD" VARCHAR2(10) NOT NULL , 
  CONSTRAINT "UTENTI_PK" PRIMARY KEY ("ID_UTENTE") ENABLE
   )

Definiamo anche la funzione plsql myauth che ci consente di verificare se la combinazione username/password che l'utente inserisce nella fase di login si congrua rispetto alle credenziali memorizzate nella tabella Utenti e quindi consenta o meno l'accesso alla web application:

create or replace FUNCTION myauth (
p_username IN VARCHAR2,
p_password IN VARCHAR2
)
RETURN BOOLEAN
IS
conta NUMBER;
BEGIN
SELECT COUNT(*
into conta 
from utenti 
WHERE Username p_username 
AND Password p_password;
IF conta THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
END;

Creiamo una generica web application che chiameremo CustomApp ed  all'interno della nostra applicazione definiamo una pagina di tipo Blank che sarà raggiunta dopo il login nel caso le credenziali saranno, mediante la funzione myauth, autenticate valide.
Step successivo sarà quello di modificare all'interno della web application CustomApp l'authentication schema, sarà quindi necessario selezionare la web application CustomApp, cliccare su Shared Components  e quindi selezionare Authentication Schemes:

 












Definiamo quindi un nuovo authentication schemes che chiameremo myauth











e nel wizard di creazione nella sezione Create Authentication Scheme inseriamo sotto la voce authentication function il seguente codice:

 return myauth

















Procediamo quindi nel completare wizard cliccando sempre su next sino al termine della creazione del nuovo schema di autenticazione.
Adesso come step finale non resta che associare alla web application CustomApp il nuovo schema di autenticazione, per fare ciò sempre da Shared Components --> Authenitication Schemes e selezioniamo la tab Change Currents e dal menu a discesa selezioniamo la voce myauth :














Eseguendo la web application CustomApp  avremo quindi in fase di login il controllo delle credenziali effettuate attraverso il nuovo schema di autenticazione myauth.
Questa modalità di autenticazione può essere resa fortemente più sicura utilizzando delle funzioni per criptare le password (come può ad esempio essere un algoritmo MD5), in tale circostanza memorizziamo password cifrate nel campo password della  tabella Utenti rendendo la nostra applicazione più sicura e robusta in fase di autenticazione.

Al prox post su Oracle Apex.


Salvatore Bartucci

mercoledì 21 novembre 2012

Applicazione mobile in Oracle Apex 4.2

Punto di forza della versione Oracle Application Express 4.2 è senz' altro il supporto per lo sviluppo di applicazioni mobile. 
La versione 4.2 supporta il framework jquery mobile e consente quindi lo sviluppo di applicazioni web mobile garantendo il supporto ad un largo numero di dispositivi e sistemi operativi mobile. Disponibile qui l’insieme dei dispositivi e sistemi operativi compatibili con il framework jquery mobile.
Vediamo come realizzare una semplice applicazione web mobile in Oracle Apex 4.2. 

Per la realizzazione utilizzeremo la nostra workspace di lavoro disponibile su apex.oracle.com (qui è ben discusso come iniziare a muovere i primi passi con Apex 4.2 utilizzando l'ambiente su apex.oracle.com)Definiamo la nuova web app che chiameremo Mobile_App e che avrà come user interface jquery mobile smartphone:


Creiamo nella nostra applicazione Mobile_App la pagina 1 (di tipo blank page ) che chiameremo P_Mobile e creiamo all'interno della pagina P_Mobile la html region R_Mobile la cui proprietà source sarà valorizzata con il seguente codice:




Nella proprietà region source abbiamo inserito il codice HTML5 per creare una nested list mediante il framework jquery mobile, di seguito la schermata che appare sulla piattaforma android 4.2 con smartphone galaxy nexus:





Step successivo è quello di realizzare le pagine per visualizzare la lista dei clienti ed il dettaglio del singolo cliente, utilizzeremo per tale scopo la creazione di una nuova pagina di tipo Form ed in particolare una form on table with List view.

Definiamo quindi una nuova pagina che conterrà una list view basata su di una tabella d'esempio presente (Emp, demo_customers,etc) nello schema della workspace . 
Partiamo quindi con il definire una nuova page di tipo Form-->Form on a table with List view:



inseriamo le colonne da visualizzare nella pagina che mostrerà la list view dei Clienti:




Clicchiamo su Next e ci verrà proposto di definire la detail page che conterrà il dettaglio dati relativi al cliente selezionato nella nested list view:



Non ci resta che indicare i campi da visualizzare e cliccare su Create Page 
Di seguito le schermate relative al funzionamento della web app su dispositivo mobile (Android 4.2, samsung nexus, opera browser):

Nested List relativa ai Clienti:





Dettaglio dello specifico Cliente:


Al prossimo post su............. Oracle Apex.

Salvatore Bartucci






martedì 13 novembre 2012

Realizzare un menu fisheye in Oracle Apex


Il legame Oracle Apex e Javascript permette l'utilizzo di molteplici script per realizzare differenti tipologie di menù. Un semplice e funzionale menu da implementare riguarda il FishEye menu o menu ad 'occhio di pesce'  che risulta anche molto utile nel caso di numero di icone elevato dal momento che consente di focalizzare sempre l'icona in primo piano.
Lo script necessario all'implementazione del menù FishEye è scaricabile da qui.
Realizziamo una semplice web application in Oracle Apex che chiameremo AppFishEye e creiamo la Html page P_AppFishEye. 

Editiamo le proprietà della page P_AppFishEye ed in particolare nella form Html header inseriamo il seguente codice che localizza lo script interface.js per l'animazione del menu fisheye: 
------------------------------------------------------------------------------------------------------------
<html>
<head>
   <script src=#WORKSPACE_IMAGES#interface.js" type="text/javascript"></script>
</head>
<html>

-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Mediante la sezione Shared Components procediamo quindi al caricamento nella Workspace del file interface.js e del file interface-fisheye.css:

Alla nostra applicazione aggiungiamo la  region R_AppFishEye, editiamo quindi le proprietà ed inseriamo nella parte source il seguente codice:
------------------------------------------------------------------------------------------------------

<HTML>
<head>
<meta http-equiv="Content-Language" content="en" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Apex and Fisheye menù </title>
<script type="text/javascript" src="#WORKSPACE_IMAGES#interface.js"></script>
    <link   type="text/css"       href="#WORKSPACE_IMAGES#interface-fisheye.css" rel="stylesheet"> 
</head>
<body>
<div id="fisheye" class="fisheye">
<div class="fisheyeContainter">
<a href="#" class="fisheyeItem"><img src="#WORKSPACE_IMAGES#appf_1.jpg" width="30" /><span>Home</span></a>
<a href="#" class="fisheyeItem"><img src="#WORKSPACE_IMAGES# appf_2.jpg " width="30" /><span>Email</span></a>
<a href="#" class="fisheyeItem"><img src="#WORKSPACE_IMAGES# appf_3.jpg " width="30" /><span>Display</span></a>
<a href="#" class="fisheyeItem"><img src="#WORKSPACE_IMAGES# appf_4.jpg " width="30" /><span>Clock</span></a>
<a href="#" class="fisheyeItem"><img src="#WORKSPACE_IMAGES# appf_5.jpg " width="30" /><span>Web</span></a>
<a href="f?p=103:2:&APP_SESSION." class="fisheyeItem"><img src="#WORKSPACE_IMAGES#home.png" width="30" /><span>Home</span></a>
<a href="#" class="fisheyeItem"><img src="#WORKSPACE_IMAGES# appf_6.jpg " width="30" /><span>Email</span></a>
</div>
<script type="text/javascript">
$(document).ready(
function()
{
$('#fisheye').Fisheye(
{
maxWidth: 50,
items: 'a',
itemsText: 'span',
container: '.fisheyeContainter',
itemWidth: 40,
proximity: 90,
halign : 'center'
}
)
}
);
</script>
</body>
</HTML>
----------------------------------------------------------------------------------------------------------
Il codice inserito definisce il div della html region dove saranno richiamate in modalità fisheye menù le icone (caricate nella Workspace sempre attraverso la sezione Shared Components) indicate nel codice, appf_1.jpg, appf_2.jpg,etc.
Qui è visibile il semplice menu Fisheye realizzato.

Al prossimo post.....su Apex

Salvatore Bartucci


mercoledì 7 novembre 2012

Validazione input item in Oracle Apex

Oracle Apex, per garantire il controllo formale dei dati inseriti nei text item della nostra web application, permette attraverso la proprietà di Validation della sezione Page Processing di definire una vasta tipologia di controlli che verificano il formale contenuto inserito.
Di seguito i tipi di controlli validazione disponibili:


Come caso di esempio mostriamo il semplice ma utilissimo controllo per la validazione del codice fiscale attraverso l’uso delle espressioni regolari. Definito nella nostra web app l’item P6_COD_FISC destinato a contenere il codice fiscale inserito in fase di input dall’utente, andiamo nella sezione page processing e sotto la voce validation creiamo un nuovo validatore:




Definito a livello di Item:


Scegliamo l’Item su cui effettuare la validazione:


Definiamo il tipo di validazione, nel nostro caso Espressione regolare:



Nel campo error Display location possiamo indicare la posizione dove indicare il messaggio di errore nel caso il codice inserito non sia validato:


In questa schermata inseriamo l’espressione regolare per la validazione del codice fiscale ed il messaggio che sarà mostrato nel caso di codice fiscale non corretto:




Definiamo nella proprietà When Button Pressed il button P6_INSERISCI che farà scattare il controllo di validità del codice fiscale:



Quindi facciamo click su Create per terminare la definizione del validation.
Eseguendo la nostra generica web application , durante l’evento di pressione del bottone Inserisci se il codice fiscale risulta non rispettare il controllo dell' espressione regolare avremo la segnalazione di errore sull'item relativo:



Al prossimo post su......Apex

Salvatore Bartucci

domenica 28 ottobre 2012

Oracle Application Express (Apex) release 4.2

Il 13 Ottobre 2012 è stata ufficialmente rilasciata da Oracle la release 4.2 di Apex. Oracle Application Express 4.2 è scaricabile all'indirizzo link.
La principale caratteristica della versione 4.2 riguarda la possibilità di utilizzare il motore dell'Application Builder  per lo sviluppo mobile mediante il framework jquery mobile, sono stati introdotti nuovi temi per la transizione tra mobile page,  touch sensitive e responsive design per l'auto-resize delle pagine a seconda della visualizzazione desktop, tablet, mobile.
Il video seguente mostra una overview sullo sviluppo mobile.

Altre caratteristiche introdotte nella versione Apex 4.2 riguardano:

  • Packaged Applications
  • Html 5 support: Charts, Item type
  • Restful web services
  • Mobile Calendar
All'indirizzo seguente è disponibile una breve overview delle nuove features mentre la documentazione è scaricabile dal sito OTN.
Apex 4.2 è installabile in locale sul proprio pc oppure è utilizzabile online registrandosi sul sito apex.oracle.com dov'è possibile creare la proprie tabelle e testare le web application sviluppate con Apex 4.2
Altra "succulenta" possibilità è quella di richiedere un free account presso Oracle Cloud e poi di testare le proprie web application sviluppate in Oracle Apex direttamente nell'universo CLOUD.

Al prossimo post......su Apex

Salvatore Bartucci

giovedì 25 ottobre 2012

Utilizzo di Oracle Application Express Apex

Dopo aver sviluppato codice Pl/Sql per diversi anni, creato diverse applicazioni con Oracle Form&Report, ho deciso tempo fà di intraprendere il viaggio all'interno del mondo di Oracle Application Express (Apex). Dapprima ho incrociato Apex quando era denominato Html DB (release 1.6) e devo dire l'ho molto apprezzato per la facilità di utilizzo nell'importazione/manipolazione dei fogli di calcolo all'interno del Database. Con la versione 4.1 di questo prodotto presente all'interno della versione free di Oracle Database Express Edition (corrente versione11XE), Oracle  ha immesso sul mercato una piattaforma per lo sviluppo di web-application dalle innumerevoli potenzialità e dalla semplicità di sviluppo. La nascita di questo blog vuole essere punto di incontro per condividere idee, approfondimenti, spunti tecnici,etc su Oracle Apex sperando in una crescente futura community  Apex Italia (già molto densa e vasta la community mondiale). Ma vediamo quali sono i principali contesti dove l'utilizzo di Apex diventa efficace ed efficiente in fase di sviluppo di web-application:

  • Realizzazione di web-application con operazioni di CRUD (Create, Read,Update e Delete) all'interno del Database e conseguente volume di transazioni
  • Utilizzo del Database Oracle 
  • Sviluppo delle web-application in tempi rapidi e con semplicità di sviluppo
  • Utilizzo di linguaggi di sviluppo quali Pl/Sql (componente di businnes logic) e JavaScript (componente di scripting)
  • Strumenti di sviluppo minimali: Browser e database
Le applicazioni sviluppate mediante Apex sono quindi interamente memorizzate nel Database attraverso codice Pl/Sql per la componente di Businnes Logic, metadati memorizzati nelle tabelle per la parte di form,report, scripting code.
Utilizzando la versione gratuita del Database Oracle 11G XE, Apex è già installato e pronto all'uso per cui sviluppare applicazioni web significa solo utilizzare il Browser web.....zero necessità di altre piattaforme software!!
Per Provare online le funzionalità di Apex ci si può registrare direttamente sulla seguente url web
http://apex.oracle.com dove è già attiva la release 4.2 rilasciata il 14 Ottobre 2012 con la nuova feature del supporto per il mobile development.
Molto interessante visitare anche il seguente link:
racchiude le applicazioni/siti web realizzati con Oracle Apex e censiti nel sito ufficiale di Oracle.

Al prossimo post su....... Apex

Salvatore Bartucci