تکلونوژی

All posts tagged تکلونوژی

مخفی کردن کلمه عبور و نام کاربری از URL‌ در گزارشات

در فایل cgicmd (که در داخل سرور گزارش است با جستجو این فایل را پیدا کنید )
یک خط مانند زیر اضافه نمایید.
compact:userid=test/test@test 

حال برای فراخوانی گزارش در آدرس مقدار زیر را اضافه نمایید.

http://neptune.world.com:80/jsp/myreport.jsp?&report=myreport.jsp&destype=cache&cmdkey=compact

توجه نمایید که پارامتر ها تغییر نمیکند فقط یک پارامتر اضافه میگردد.
cmdkey=compact

کلمه compact دلخواه است.

خواندن بیشتر
royal visionمخفی کردن کلمه عبور و نام کاربری از URL‌ در گزارشات

نحوه کار کردن با یک SVN آنلاین

بسیاری از سایت ها به شما امکان ساخت یک SVN آنلاین را میدهند مانند سایت زیر
سایت ایجاد SVN رایگان
پس از ساخت اکانت در سایت فوق یک Repository برای SVN در همان اکانت بسازید و آدرس آن را ذخیره کنید
حال وارد JDeveloper شوید و اکانت فوق را وارد نمایید.از منوی View بخش team و سپس Version Navigator را انتخاب نمایید.سپس بر روی پنجره Version Navigator رفته بر روی Subversion کلیک راست نموده و گزینه New Repository را انتخاب نمایید.

سپس در پنجره باز شده اطلاعات گرفته شده از سایت unfuddle را پر مینمایید مانند شکل زیر

Repository URL–> از سایت unfuddle در بخش Repository برداشته شود. مانند شکل زیر

Connection Name–> یک نام مشخص و دلخواه
Username–> نام کاربری سایت Unfuddle.com
Password–>کلمه عبور سایت Unfuddle.com
s سپس دکمه Test را فشار دهید تا عبارت Access Granted ظاهر شود سپس ok نمایید
حال هر پروژهای را که خواستید سوسرش بصورت آنلاین نگهداری شود بر روی Application کلیک راست نمایید و گزینه Version Application را انتخاب نمایید مانند شکل زیر

 

توجه نمایید اگر پروژه شما از jar فایلهای مختلف استفاده میکند باید تمام jar فایلها در داخل فلدر پروژه باشد مثلاً در داخل فلدر پروژه Model یک فلدر به نام lib ایجاد کنید و jar فایلها هه در آنجا باشد که زمان ورژن خوردن آنها نیز همراه پروژه منتقل گردند.

فایل پیوست:
esvn - نحوه کار کردن با یک SVN آنلاین
svn working copy view large - نحوه کار کردن با یک SVN آنلاین
SVNClientBig - نحوه کار کردن با یک SVN آنلاین
خواندن بیشتر
royal visionنحوه کار کردن با یک SVN آنلاین

بازیابی رکورد جاری پس از Rollback

توضیح مساله:
در برنامه‌های ADF پس از آن که عملیات rollback انجام میگیرد تمام اطلاعات refresh می شوند و ردیف جاری به اولین رکورد view باز می گردد. حال شرایطی را درنظر بگیرید که کاربر ردیفی را انتخاب کرده است و در این لحظه نیاز به ایجاد رکوردی جدید می باشد و با زدن دکمه ایجاد رکورد خالی را ایجاد می نماید اما پس از آن منصرف می شود و دکمه انصراف را می فشارد و در اینجا نیاز به انجام عملیات rollback می باشد تا رکورد جدید خالی حذف گردد. پس از عملیات rollback کاربر به ردیف قبل از عملیات ایجاد باز نخواهد گشت و اولین رکورد view به عنوان ردیف جاری انتخاب خواهد شد و کاربر مجبور خواهد بود تا دوباره ردیف مورد نظر را جستجو و انتخاب نمایید. این موضوع از دیدگاه کاربر بسیار وحشتناک می باشد و قصد دارم در ادامه روشی را بیان کنم که کاربر را به ردیف قبلی خود باز گرداند.
توضیح راه حل:
در ابتدا باید قبل از انجام هر عملیات ردیف جاری را در scope مناست ذخیره نماییم. در صورتی که تمام عملیات شما در یک صفحه انجام می شود از viewScope استفاده نمایید که من فرض را بر این حالت قرار داده ام. در backing bean خود فیلد و متد زیر را تعریف نمایید

final String OLD_CURR_KEY_VIEWSCOPE_ATTR = "__oldCurrentRowKey__";<br />
public BindingContainer getBindings() {<br />
return BindingContext.getCurrent().getCurrentBindingsEntry();<br />
}

برای ذخیره ردیف جاری متد زیر را اجرا نمایید.

 public void saveCurrentRow() {<br />
BindingContainer bindings = getBindings();<br />
DCIteratorBinding dciter =<br />
(DCIteratorBinding)bindings.get("Your view iterator name");<br />
if (dciter != null) {<br />
Row oldCcurrentRow = dciter.getCurrentRow();<br />
ADFContext adfCtx = ADFContext.getCurrent();<br />
adfCtx.getScope("pageFlowScope").put(OLD_CURR_KEY_VIEWSCOPE_ATTR,<br />
oldCcurrentRow.getKey().toStringFormat(true));<br />
}<br />
}

حال ردیف جاری در pageFlowScope ذخیره شده است و می توانید عملیات rollback را انجام دهید و پس از آن متد زیر را اجرا نمایید تا ردیف قبلی را بازیابی و به عنوان ردیف جاری انتخاب

public void restoreCurrentRow() {<br />
BindingContainer bindings = getBindings();<br />
DCIteratorBinding dciter = (DCIteratorBinding) bindings.get("Your view iterator name");<br />
ADFContext adfCtx = ADFContext.getCurrent();<br />
String oldCurrentRowKey = (String) adfCtx.getViewScope().get(OLD_CURR_KEY_VIEWSCOPE_ATTR);<br />
if ( oldCurrentRowKey != null){<br />
dciter.setCurrentRowWithKey(oldCurrentRowKey);<br />
FacesContext fctx = FacesContext.getCurrentInstance();<br />
fctx.renderResponse();<br />
}</p>
<p>}
فایل ضمیمه شده مثال کامل می باشد.
فایل پیوست:
داانلود
خواندن بیشتر
royal visionبازیابی رکورد جاری پس از Rollback

نمایش عنوان به جای شناسه در کامپوننت کمبو در صفحات

مشکل
تمام افرادی که فرم‌های شامل فیلد لیست مقادیر(LOV) در صفحات وب ایجاد کرده اند با این مساله روبرو بوده‌اند که کامپوننت کمبو استفاده شده برای این‌گونه فیلدها شناسه را به جای یک عنوان نشان می‌دهد.راه حل
در این مقاله راه‌حلی ارائه می‌گردد تا عنوان به جای شناسه انتخاب شده از لیست مقادیر نشان داده شود. به طور کلی از یک فیلد کمکی دیگر که به صورت موقت (transient) تعریف شده است استفاده می‌کنیم. مقدار این فیلد را درفرم در اختیار قرار می‌دهیم تا آن را تغییر دهد و با تغییر آن در پس زمینه مقدار فیلد اصلی تغییر داد می‌شود.

توضیح راه حل
برای ارائه این راه حل از مثال معروف کارمند و دپارتمان استفاده می‌نماییم. در این مثال فیلد انتخاب دپارتمان در فرم کارمند را با استفاده از این روش درست می‌نماییم تا عنوان دپارتمان به جای شناسه آن در فرم کارمند نمایش داده شود.
http://blogs.oracle.com/adf/resource/adf-faces/Combo_LOV.png

در ابتدا یک فیلد موقت(transient) به ویو کارمند اضافه نمایید.

http://blogs.oracle.com/adf/resource/adf-faces/Transient_Dname_Attr.png

یک لیست مقادیر کمبو بر اساس هر دو فیلد اسم دپارتمان و شناسه آن ایجاد کنید. استفاده از شناسه دپارتمان به ما برای مقداردهی کردن فیلد اصلی شناسه دپارتمان در رکورد کارمند کمک می‌کند.
برای لیست دیتا سورس از یک عنوان خوب و خوانا استفاده کنید و آنرا به خاطر بسپارید. به عنوان مثال DeptViewAccessor همانند تصویر زیر

در پایان عبارت groovy داخل تصویر را به عنوان مقدار پیش فرض فیلد موقت ایجاد شده در مراحل قبل قرار دهید.

افرادی که دوست ندارند از groovy استفاده نمایند می‌توانند کلاس جاوای آنرا پیاده‌سازی و کد بالا را در متد set فیلد موقت قرار دهند

حال دیگر باید پس از اجرا عنوان دپارتمان را به جای شناسه آن ملاحظه نمایید و با تغییر آن دپارتمان نیز به صورت خودکار برای کارمند تغییر نماید.

منبع

فایل پیوست:
ComboLOV.zip
خواندن بیشتر
royal visionنمایش عنوان به جای شناسه در کامپوننت کمبو در صفحات

نحوه فعال سازی ADF Security

در این مقاله در چند گام ساده نحوه فعال سازی ADF Security در برنامه‌های تحت وب ADF را تشریح می‌نمایم. مثال استفاده شده برای این مقاله به این شرح می‌باشد که یک task flow ساده که شامل یک صفحه می‌باشد را ایجاد نموده و پس از آن یک role به نام myRole در ADF Security ایجاد نموده و task flow را برای افرادی که این role را دارند مجاز می‌نماییم. سپس یک کاربر به نام usr برای ورود ایجاد می‌نماییم و به آن مجوز myRole را اختصاص می‌دهیم تا بتواند task flow را اجرا نماید.

شرح
۱. ابتدا پروژه را ایجاد و task flow با نام secureTF ایجاد می‌نماییم. دقت فرمایید که این task flow از نوع bounded task flow می‌باشد. سپس یک صفحه نیز با نام main ایجاد می‌نماییم و درون secureTF قرار می‌دهیم.

۲. حال نوبت آن شده تا ADF Security را فعال نماییم. برای این منظور همانند تصویر زیر از application menu گزینه Secure منوی Configure ADF Security را کلیک نمایید تا ویزارد مخصوص برای فعال‌سازی ADF Security اجرا گردد

ویزارد فعال سازی ADF Security

۳. در مرحله اول گزینه پیش فرض آن را بدون تغییر باقی گذاشته و دکمه Next را میزنیم. در مرحله بعد برنامه تحت وبی را که می‌خواهیم برای آن ورود و خروج قرار دهیم را باید انتخاب نموده و پس از آن نوع مکانیسم اعتبارسنجی مورد استفاده را مشخص نماییم. در نوع اعتبارسنجی همانند تصویر زیر گزینه Form-Based Authentication را انتخاب می‌نماییم و گزینه Generate Default Pages را در حالت انتخاب قرار می‌دهیم. این گزینه باعث می‌شود تا فرم ورود و فرم خطا در ورود پیش فرض به صورت خودکار ساخته شود. سپس دکمه Next را کلیک می‌نماییم.

۴. این مرحله این امکان را می‌دهد تا به صورت خودکار بتوان به تمام صفحات و task flowهای موجود در برنامه مجوزدهی کرد که ما انتخاب اول آن را تغییر نداده تا خودمان به صورت دستی این مجوزدهی را با توجه به نیازمان انجام دهیم. دکمه Next را برای رفتن به مرحله بعد کلیک نمایید.

۵. در این مرحله می‌توان تنظیم کرد که پس از ورود موفق کاربر، او را به یک صفحه خاص مثلا صفحه اصلی برنامه فرستاد. ما این قسمت را به صورت پیش فرض رها کرده و این امکان را فعال نخواهیم کرد تا مکانیسم پیش‌فرض ADF پس از ورود موفق کاربر را بر هم نزنیم. ADF به صورت پیش فرض کاربر را مجددا به همان صفحه‌ای که از آنجا برای ورود به صفحه ورود هدایت شده، باز می‌گرداند.کلیک دکمه Next برای ورود به مرحله بعد تنها کاریست که باید انجام دهید.

۶. در این مرحله خلاصه‌ای از اتفاقاتی که قرار است با زدن دکمه Finish رخ دهد را برای شما به نمایش می‌گذارد. دکمه finish را کلیک نمایید تا تغییرات نهایی و ADF Security فعال گردد.

۷. پس از فعال‌سازی ADF Security نوبت به تنظیم آن با توجه به نیازمان می‌باشد. در ابتدا باید یک role با نام myRole ایجاد نماییم. برای این کار از منوی application menu داخل گزینه Secure منوی Application Roles را کلیک نمایید تا صفحه مربوطه باز گردد.

۸. با زدن دکمه مثبت سبز رنگ (‌شماره یک در تصویر) یک role جدید ایجاد نموده و عنوان ( شماره دو در تصویر)آن‌را به myRole و یا هرچیز دیگری که مایل هستید تغییر دهید و یا مقدار آنرا بدون تغییر رها کنید.

۹. برای ورود به برنامه نیاز به یک نام کاربری و رمز عبور داریم که برای ایجاد آن باید از Application Menu در گزینه Secure منوی Users را کلیک نماییم تا صفحه مربوطه باز شود.

۱۰. دکمه مثبت سبز ( شماره یک در تصویر زیر ) را کلیک نمایید تا کاربر جدید ایجاد گردد. نام کاربری(شماره دو در تصویر زیر) usr (دلخواه بوده و هرچیز دیگری می‌تواند باشد) را برای آن وارد نمایید . رمز عبور را نیز وارد نموده و در انتها دکمه مثبت سبز ( شماره سه در تصویر) را کلیک نموده و role که در مرحله قبل ایجاد کردید را برای کاربر انتخاب نمایید.

۱1. در انتها باید منابع برنامه را با توجه به سیاست‌های امنیتی مورد نیاز مجوزدهی نمود . در این برنامه ما تنها یک role و یک task flow داریم و تنها تنظیمی که لازم می‌باشد دادن مجوز اجرای task flow به کسانی که مجوز myRole را دارند. برای این کار از Application Menu و گزینه Secure منوی ADF Policies را کلیک نمایید تا صفحه مربوطه باز شود.

۱۲. درtask flow ساخته شده را در صفحه باز شده ملاحظه خواهید نمود. آن را انتخاب نمایید و دکمه مثبت سبز(شماره یک در تصویر) را کلیک نمایید. لیست تمام roleهای موجود در برنامه چه آنهایی که خودتان ساخته‌اید و یا به صورت پیش فرض وجود دارند نمایش داده می‌شود. myRole را انتخاب نمایید تا task flow توسط کاربرانی که این مجوز را دارند قابل اجرا گردد.

تبریک می‌گویم تمام مراحل را به خوبی به پایان رساندید و حال کافیست برنامه را اجرا نمایید و ملاحظه نمایید که برنامه در ابتدا از شما نام کاربری و رمزعبور میخواهد و سپس صفحه main را به شما نمایش می‌دهد. دقت نمایید که برای اجرا بر روی main درون SecureTF کلیک نموده و اجرا را کلیک نمایید.

برای تست صحت عملکرد myRole را از کاربر خود بگیرد یا به عبارت دیگر آنرا از لیست roleهای کاربر در منوی Users گزینه Secure حذف نمایید و سپس برنامه را اجرا نمایید و با تصویر زیر یا به عبارت دقیق‌تر با خطای زیر روبرو خواهید شد.

نکته آخر اینکه برای حذف ADF Security کافیست همانند مرحله ۲ ویزارد آنرا اجرا نمایید و این بار گزینه آخر Remove ADF Security Configuration را انتخاب نمایید و دکمه Finish را کلیک نمایید تا تمام تنظیمات امنیتی برنامه با چند کلیک ساده حذف گردد.

در پایان اشاره می‌شود که می‌توان نام کاربری و رمزعبور را از فراهم کنندگان دیگری همچون LDAP، پایگاه داده و سایر مواردی که وجود دارد بدست آورد و از صحت آن اطمینان حاصل نمود که در آینده نحوه استفاده از پایگاه داده را شرح خواهم داد.

فایل مثال

فایل PDF

با تشکر

فایل پیوست:
خواندن بیشتر
royal visionنحوه فعال سازی ADF Security