עבודה עם Secure Vault
הגדרה ראשונית
על מנת שנוכל לשמור סיסמאות או כל ערך שאנחנו לא רוצים להציג בצורה נקייה (plain text), יש צורך להשתמש ביכולת מובנית של EI – Secure Vault.
היכולת לא פועלת כברירת מחדל ויש להפעיל אותה. אם ננסה להיכנס דרך ה Console בתפריט השמאלי למסך ניהול סיסמאות -> הוספת סיסמא חדשה, ניתקל בשגיאה:



כדי לפתור את הבעיה יש להיכנס לקובץ ההגדרות <EI_HOME>\conf\security\secret-conf.properties כל הקובץ מסומן בהערות אז בסוף הקובץ נוסיף את ההגדרות הבאות:
keystore.identity.location=repository/resources/security/wso2carbon.jks
keystore.identity.type=JKS
keystore.identity.alias=wso2carbon
keystore.identity.store.password=wso2carbon
keystore.identity.key.password=wso2carbon
secretRepositories.file.provider=org.wso2.securevault.secret.repository.FileBaseSecretRepositoryProvider
secretRepositories.file.location=repository/conf/security/cipher-text.properties
secretRepositories=file
carbon.secretProvider=org.wso2.securevault.secret.handler.SecretManagerSecretCallbackHandler
נבצע שמירה לקובץ ולאחר מכן נפעיל מחדש את השרת. כעת המערכת עובדת וניתן לשמור סיסמאות.
מגבלות ברירת מחדל
במידה ונרצה להכניס סיסמא לדוגמה: 1234 לא נוכל מכיוון שברירת המחדל של המערכת היא הגבלה של מינימום 5 תווים עד 30 תווים (^[\\S]{5,30}$). אם ניסינו להכניס סיסמא שלא לפי ההגדרות נקבל שגיאה:

<EI_HOME>\conf\carbon.properties
נוסיף שורה חדשה בקובץ, לדוגמה:
org.wso2.SecureVaultPasswordRegEx=^[\\S]{4,60}$
שורת דוגמה זו מגדירה שמבנה ברירת המחדל של SecureVault הוא מינימום 4 תווים ומקסימום 60.
קריאת ערכים מתוך Integration Studio
ניצור סיסמא חדשה תחת השם demopassword
על מנת לקרוא את הערך שנמצא שם ולהשתמש בו יש להשתמש בפונקציה vault-lookup בצורה הזו לדוגמה:
<log>
<property expression="wso2:vault-lookup('demopassword')" name="passwordvault"/>
</log>
בהפעלה נוכל לראות את הערך האמיתי ב Console Log
Naming Convention
מציע שניתן שמות שכולנו מכירים ויחזרו על עצמם, כמו סיסמת חיבור לדוקסי "doxi_password", סיסמת גישה ל DB ב connection string db_password וכן הלאה.