Edit D:\app\Administrator\product\11.2.0\dbhome_1\apex\images\doc\AEAPI\apex_util083.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=us-ascii" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <title>STRONG_PASSWORD_CHECK Procedure</title> <meta name="generator" content="Oracle DARB XHTML Converter (Mode = ohj/ohw) - Version 5.1" /> <meta name="date" content="2009-04-14T17:32:16Z" /> <meta name="robots" content="noarchive" /> <meta name="doctitle" content="STRONG_PASSWORD_CHECK Procedure" /> <meta name="relnum" content="Release 3.2" /> <meta name="partnum" content="E12510-01" /> <link rel="copyright" href="../dcommon/html/cpyr.htm" title="Copyright" type="text/html" /> <link rel="stylesheet" href="../dcommon/css/blafdoc.css" title="Oracle BLAFDoc" type="text/css" /> <link rel="contents" href="toc.htm" title="Contents" type="text/html" /> <link rel="up" href="preface" title="Home" type="text/html" /> <link rel="up" href="apex_util.htm" title="APEX_UTIL" type="text/html" /> <link rel="up" href="apex_util083.htm" title="STRONG_PASSWORD" type="text/html" /> <link rel="prev" href="apex_util082.htm" title="Previous" type="text/html" /> <link rel="next" href="apex_util084.htm" title="Next" type="text/html" /> </head> <body> <p id="BREADCRUMBING"><a href="preface" title="Home">Home</a> > <a href="apex_util.htm" title="APEX_UTIL">APEX_UTIL</a> > STRONG_PASSWORD�</p> <table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%"> <col width="86%" /> <col width="*" /> <tr valign="bottom"> <td align="left"></td> <td align="center"><a href="apex_util082.htm"><img src="../dcommon/gifs/leftnav.gif" alt="Previous" /><br /> <span class="icon">Previous</span></a> </td> <td align="center"><a href="apex_util084.htm"><img src="../dcommon/gifs/rightnav.gif" alt="Next" /><br /> <span class="icon">Next</span></a></td> </tr> </table> <p><a id="CHDDHGCB" name="CHDDHGCB"></a></p> <hr /> <div class="refsect1"> <h1><a name="AEAPI183" id="AEAPI183"></a>STRONG_PASSWORD_CHECK <a id="sthref445" name="sthref445"></a>Procedure</h1> <p>This procedure returns <code>Boolean OUT</code> values based on whether or not a proposed password meets the password strength requirements as defined by the Oracle Application Express site administrator.</p> <a id="sthref446" name="sthref446"></a> <p class="subhead2">Syntax</p> <pre xml:space="preserve" class="oac_no_warn"> APEX_UTIL.STRONG_PASSWORD_CHECK( p_username IN VARCHAR2, p_password IN VARCHAR2, p_old_password IN VARCHAR2, p_workspace_name IN VARCHAR2, p_use_strong_rules IN BOOLEAN, p_min_length_err OUT BOOLEAN, p_new_differs_by_err OUT BOOLEAN, p_one_alpha_err OUT BOOLEAN, p_one_numeric_err OUT BOOLEAN, p_one_punctuation_err OUT BOOLEAN, p_one_upper_err OUT BOOLEAN, p_one_lower_err OUT BOOLEAN, p_not_like_username_err OUT BOOLEAN, p_not_like_workspace_name_err OUT BOOLEAN, p_not_like_words_err OUT BOOLEAN, p_not_reusable_err OUT BOOLEAN); </pre> <a id="sthref447" name="sthref447"></a> <p class="subhead2">Parameters</p> <p><a href="#CHDJCCHC">Table: STRONG_PASSWORD_CHECK Parameters</a> describes the parameters available in the <code>STRONG_PASSWORD_CHECK</code> procedure.</p> <div class="tblformal"><a id="sthref448" name="sthref448"></a><a id="CHDJCCHC" name="CHDJCCHC"></a> <p class="titleintable">STRONG_PASSWORD_CHECK Parameters</p> <table class="Formal" title="STRONG_PASSWORD_CHECK Parameters" summary="This table describes the parameters available in the STRONG_PASSWORD_CHECKprocedure." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t129">Parameter</th> <th align="left" valign="bottom" id="r1c2-t129">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t129" headers="r1c1-t129"> <p><code>p_username</code></p> </td> <td align="left" headers="r2c1-t129 r1c2-t129"> <p>Username that identifies the account in the current workspace</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t129" headers="r1c1-t129"> <p><code>p_password</code></p> </td> <td align="left" headers="r3c1-t129 r1c2-t129"> <p>Password to be checked against password strength rules</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t129" headers="r1c1-t129"> <p><code>p_old_password</code></p> </td> <td align="left" headers="r4c1-t129 r1c2-t129"> <p>Current password for the account. Used only to enforce "new password must differ from old" rule</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t129" headers="r1c1-t129"> <p><code>p_workspace_name</code></p> </td> <td align="left" headers="r5c1-t129 r1c2-t129"> <p>Current workspace name, used only to enforce "password must not contain workspace name" rule</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r6c1-t129" headers="r1c1-t129"> <p><code>p_use_strong_rules</code></p> </td> <td align="left" headers="r6c1-t129 r1c2-t129"> <p>Pass <code>FALSE</code> when calling this API</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r7c1-t129" headers="r1c1-t129"> <p><code>p_min_length_err</code></p> </td> <td align="left" headers="r7c1-t129 r1c2-t129"> <p>Result returns <code>True</code> or <code>False</code> depending upon whether the password meets minimum length requirement</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r8c1-t129" headers="r1c1-t129"> <p><code>p_new_differs_by_err</code></p> </td> <td align="left" headers="r8c1-t129 r1c2-t129"> <p>Result returns <code>True</code> or <code>False</code> depending upon whether the password meets "new password must differ from old" requirements</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r9c1-t129" headers="r1c1-t129"> <p><code>p_one_alpha_err</code></p> </td> <td align="left" headers="r9c1-t129 r1c2-t129"> <p>Result returns <code>True</code> or <code>False</code> depending upon whether the password meets requirement to contain at least one alphabetic character</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r10c1-t129" headers="r1c1-t129"> <p><code>p_one_numeric_err</code></p> </td> <td align="left" headers="r10c1-t129 r1c2-t129"> <p>Result returns <code>True</code> or <code>False</code> depending upon whether the password meets requirements to contain at least one numeric character</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r11c1-t129" headers="r1c1-t129"> <p><code>p_one_punctuation_err</code></p> </td> <td align="left" headers="r11c1-t129 r1c2-t129"> <p>Result returns <code>True</code> or <code>False</code> depending upon whether the password meets requirements to contain at least one punctuation character</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r12c1-t129" headers="r1c1-t129"> <p><code>p_one_upper_err</code></p> </td> <td align="left" headers="r12c1-t129 r1c2-t129"> <p>Result returns <code>True</code> or <code>False</code> depending upon whether the password meets requirements to contain at least one upper-case character</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r13c1-t129" headers="r1c1-t129"> <p><code>p_one_lower_err</code></p> </td> <td align="left" headers="r13c1-t129 r1c2-t129"> <p>Result returns <code>True</code> or <code>False</code> depending upon whether the password meets requirements to contain at least one lower-case character</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r14c1-t129" headers="r1c1-t129"> <p><code>p_not_like_username_err</code></p> </td> <td align="left" headers="r14c1-t129 r1c2-t129"> <p>Result returns <code>True</code> or <code>False</code> depending upon whether the password meets requirements that it not contain the username</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r15c1-t129" headers="r1c1-t129"> <p><code>p_not_like_workspace_name_err</code></p> </td> <td align="left" headers="r15c1-t129 r1c2-t129"> <p>Result returns <code>True</code> or <code>False</code> whether upon whether the password meets requirements that it not contain the workspace name</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r16c1-t129" headers="r1c1-t129"> <p><code>p_not_like_words_err</code></p> </td> <td align="left" headers="r16c1-t129 r1c2-t129"> <p>Result returns <code>True</code> or <code>False</code> whether the password meets requirements that it not contain specified simple words</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r17c1-t129" headers="r1c1-t129"> <p><code>p_not_reusable_err</code></p> </td> <td align="left" headers="r17c1-t129 r1c2-t129"> <p>Result returns <code>True</code> or <code>False</code> whether the password can be reused based on password history rules</p> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --> <a id="sthref449" name="sthref449"></a> <p class="subhead2">Example</p> <p>The following example shows how to use the <code>STRONG_PASSWORD_CHECK</code> procedure. It checks the new password '<code>foo</code>' for the user '<code>SOMEBODY</code>' meets all the password strength requirements defined by the Oracle Application Express site administrator. If any of the checks fail (the associated OUT parameter returns <code>TRUE</code>), then the example outputs a relevant message. For example, if the Oracle Application Express site administrator has defined that passwords must have at least one numeric character and the password '<code>foo</code>' was checked, then the <code>p_one_numeric_err</code> OUT parameter would return <code>TRUE</code> and the message 'Password must contain at least one numeric character' would be output.</p> <pre xml:space="preserve" class="oac_no_warn"> DECLARE l_username varchar2(30); l_password varchar2(30); l_old_password varchar2(30); l_workspace_name varchar2(30); l_min_length_err boolean; l_new_differs_by_err boolean; l_one_alpha_err boolean; l_one_numeric_err boolean; l_one_punctuation_err boolean; l_one_upper_err boolean; l_one_lower_err boolean; l_not_like_username_err boolean; l_not_like_workspace_name_err boolean; l_not_like_words_err boolean; l_not_reusable_err boolean; l_password_history_days pls_integer; BEGIN l_username := 'SOMEBODY'; l_password := 'foo'; l_old_password := 'foo'; l_workspace_name := 'XYX_WS'; l_password_history_days := apex_instance_admin.get_parameter ('PASSWORD_HISTORY_DAYS'); APEX_UTIL.STRONG_PASSWORD_CHECK( p_username => l_username, p_password => l_password, p_old_password => l_old_password, p_workspace_name => l_workspace_name, p_use_strong_rules => false, p_min_length_err => l_min_length_err, p_new_differs_by_err => l_new_differs_by_err, p_one_alpha_err => l_one_alpha_err, p_one_numeric_err => l_one_numeric_err, p_one_punctuation_err => l_one_punctuation_err, p_one_upper_err => l_one_upper_err, p_one_lower_err => l_one_lower_err, p_not_like_username_err => l_not_like_username_err, p_not_like_workspace_name_err => l_not_like_workspace_name_err, p_not_like_words_err => l_not_like_words_err, p_not_reusable_err => l_not_reusable_err); IF l_min_length_err THEN htp.p('Password is too short'); END IF; IF l_new_differs_by_err THEN htp.p('Password is too similar to the old password'); END IF; IF l_one_alpha_err THEN htp.p('Password must contain at least one alphabetic character'); END IF; IF l_one_numeric_err THEN htp.p('Password must contain at least one numeric character'); END IF; IF l_one_punctuation_err THEN htp.p('Password must contain at least one punctuation character'); END IF; IF l_one_upper_err THEN htp.p('Password must contain at least one upper-case character'); END IF; IF l_one_lower_err THEN htp.p('Password must contain at least one lower-case character'); END IF; IF l_not_like_username_err THEN htp.p('Password may not contain the username'); END IF; IF l_not_like_workspace_name_err THEN htp.p('Password may not contain the workspace name'); END IF; IF l_not_like_words_err THEN htp.p('Password contains one or more prohibited common words'); END IF; IF l_not_reusable_err THEN htp.p('Password cannot be used because it has been used for the account within the last '||l_password_history_days||' days.'); END IF; END; </pre> <div align="center"> <div class="inftblnotealso"><br /> <table class="NoteAlso oac_no_warn" summary="" cellpadding="3" cellspacing="0"> <tbody> <tr> <td align="left"> <p class="notep1">See Also:</p> <a href="../AEADM/adm_env.htm">"About Password Policies"</a> in <a href="../AEADM/preface.htm"><span class="italic">Oracle Application Express Administration Guide</span></a></td> </tr> </tbody> </table> <br /></div> <!-- class="inftblnotealso" --></div> </div> <!-- class="refsect1" --> <!-- Start Footer --> <div class="footer"> <table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%"> <col width="86%" /> <col width="*" /> <tr> <td align="left"><span class="copyrightlogo">Copyright © 2003, 2009, Oracle and/or its affiliates. All rights reserved.</span><br /> <a href="../dcommon/html/cpyr.htm"><span class="copyrightlogo">Legal Notices</span></a></td> <td align="center"><a href="apex_util082.htm"><img src="../dcommon/gifs/leftnav.gif" alt="Previous" /><br /> <span class="icon">Previous</span></a> </td> <td align="center"><a href="apex_util084.htm"><img src="../dcommon/gifs/rightnav.gif" alt="Next" /><br /> <span class="icon">Next</span></a></td> </tr> </table> </div> <!-- class="footer" --> </body> </html>
Ms-Dos/Windows
Unix
Write backup
jsp File Browser version 1.2 by
www.vonloesch.de