Monday, December 10, 2007

To implement authentication in PL/SQL :

CREATE OR REPLACE PACKAGE authentication AS

FUNCTION getUserId RETURN VARCHAR2;

PROCEDURE setUserId(id varchar2 DEFAULT NULL);

FUNCTION UserIdOk RETURN BOOLEAN;

END;
/

CREATE OR REPLACE PACKAGE BODY authentication AS

FUNCTION getUserId RETURN VARCHAR2 IS
c_Cookie OWA_COOKIE.COOKIE;
BEGIN
c_Cookie := OWA_COOKIE.GET('uid');
IF c_Cookie.VALS.COUNT < 1 THEN
RETURN NULL;
END IF;
IF c_Cookie.VALS(1) = '' THEN
RETURN NULL;
END IF;
RETURN c_Cookie.VALS(1);
END;

PROCEDURE setUserId(id varchar2 DEFAULT NULL) IS

BEGIN
OWA_UTIL.MIME_HEADER('text/html', FALSE);
OWA_COOKIE.SEND('uid',id);
OWA_UTIL.HTTP_HEADER_CLOSE;
END;

FUNCTION UserIdOk RETURN BOOLEAN IS
BEGIN
IF getUserId IS NOT NULL THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
END;

END;
/

No comments: