מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
מה צריך לדעת על הרשאת Java למדיניות שלה
אם אתם מפתחים מדיניות יתרונות מרכזיים של Java, אתם צריכים לדעת אילו כללי מדיניות הרשאות חלים ב-Edge JVM ואיך הם ישפיעו על הקוד. לדוגמה, קוד Java מותאם אישית אין גישה בלתי מוגבלת למערכת הקבצים. עם זאת, במקרה של גישה למערכת הקבצים, אפשר לקרוא קבצים מסוימים, כמו קובצי משאבים של מדיניות. אבל רוב הגישה למערכת הקבצים חסמת. בנושא הזה מפורטים כל סוגי ההרשאות של JDK והיעדים או הפעולות המתאימים להם. לכל יעד או פעולה אנחנו מציינים את מדיניות ההרשאות ואת כל החריגים שצריך שאתם מכירים.
מידע נוסף על סוגי ההרשאות של JDK ועל מה שכל הרשאה מאפשרת, זמין במאמר הרשאות ב- the Java Development Kit (JDK).
הפעלת הגבלות אבטחה
ב-Edge for Private Cloud פרטי, הגבלות האבטחה מושבתות כברירת מחדל. המשמעות היא לקוד ההסבר המותאם אישית של Java יש גישה לכל המשאבים ללא הגבלות. כדי להפעיל הגבלות אבטחה שקיימות ב-Edge להתקנת ענן פרטי, פועלים לפי התהליך הבא:
- בצומת הראשון של מעבד ההודעות, פותחים את הקובץ.
$APIGEE_ROOT/customer/application/message-processor.properties
בעורך/ת. אם הקובץ לא קיים, יוצרים אותו. - מוסיפים את השורה הבאה לקובץ:
conf_security-policy_enable.security.manager=true
- Save the file and ensure the file is owned by the
apigee
user:chown apigee:apigee $APIGEE_ROOT/customer/application/message-processor.properties
- מפעילים מחדש את מעבד ההודעות:
apigee-service message-processor restart
- חוזרים על השלבים האלה בכל מעבדי ההודעות שנותרו.
סוג הרשאה | שם היעד או הפעולה | ניתנה הרשאה |
java.awt.AWTPermission | ||
accessClipboard | לא | |
accessEventQueue | לא | |
accessSystemTray | לא | |
createRobot | לא | |
fullScreenExclusive | לא | |
listenToAllAWTEvents | לא | |
readDisplayPixels | לא | |
replaceKeyboardFocusManager | לא | |
setAppletStub | לא | |
setWindowsAlwaysOnTop | לא | |
showWindowWithoutWarningBanner | לא | |
toolkitModality | לא | |
watchMousePointer | לא | |
java.io.FilePermission השדה Java.io.FilePermissions מייצג גישה לקובץ או לספרייה. הרשאות לקובץ מורכב משם נתיב ומקבוצה של פעולות תקפות לאותו שם נתיב. |
קריאה | כן, אבל בכפוף להגבלות. להגבלות |
כתיבה | לא | |
לבצע | לא | |
delete | לא | |
readLink | כן | |
java.io.SerializablePermission הרשאה שניתן להשתמש בה באופן טורי מכילה שם (נקרא גם 'שם יעד') אבל לא רשימת פעולות; שיש לכם הרשאה בעלת שם, או שאין לכם אותה. |
enableSubclassImplementation | כן |
enableSubstitution | לא | |
java.lang.management.ManagementPermission שיטות שהוגדרו בממשק הניהול של פלטפורמת Java |
עוצמת הקול | לא |
מעקב | לא | |
java.lang.reflect.ReflectPermission לפעולות רפלקטיביות. ReflectPermissions היא הרשאה בעלת שם ואין לה פעולות |
suppressAccessChecks | לא |
newProxyInPackage.{package name} | לא | |
java.lang.RuntimePermission מכיל שם (נקרא גם 'שם יעד') אבל אין רשימת פעולות. שיש לכם את ההרשאה בעלת השם, או שלא. |
createClassLoader | לא |
getClassLoader | כן | |
setContextClassLoader | כן | |
enableContextClassLoaderOverride | כן | |
closeClassLoader | לא | |
setSecurityManager | לא | |
createSecurityManager | לא | |
getenv.{variable name} | לא | |
exportVM.{exit status} | לא | |
shutdownHooks | לא | |
setFactory | לא | |
setIO | לא | |
modifyThread | כן | |
stopThread | כן | |
modifyThreadGroup | כן | |
getProtectionDomain | כן | |
getFileSystemAttributes | לא | |
readFileDescriptor | כן | |
writeFileDescriptor | לא | |
loadLibrary.{library name} | לא | |
accessClassInPackage. {package name} | כן | |
defineClassInPackage. {package name} | לא | |
accessDeclaredMembers | לא | |
queuePrintJob | לא | |
getStackTrace, getStackTrace | לא | |
setDefaultUncaughtExceptionHandler | לא | |
העדפות | לא | |
usePolicy | לא | |
java.net.NetPermission הרשאה נטו מכילה שם אך לא רשימת פעולות; יש לכם הרשאה בעלת שם או שלא. |
setDefaultAuthenticator | לא |
requestPasswordAuthentication | לא | |
specifyStreamHandler | כן | |
setProxySelector | לא | |
getProxySelector | לא | |
setCookieHandler | לא | |
getCookieHandler | לא | |
setResponseCache | לא | |
getResponseCache | לא | |
getNetworkInformation | לא | |
java.net.SocketPermission מייצג גישה לרשת דרך שקעים. הרשאת Socket מורכבת ממארח המפרט וקבוצה של "פעולות" שמציין דרכים להתחבר למארח הזה. Host = (hostname | IPaddress)[:portrange] Portrange = Portnumber | -portnumber | Portnumber-[portnumber] הדרכים האפשריות להתחבר למארח הן אישור חיבור האזנה סימון הדיון כסגור הקובץ "listen" הפעולה הזו משמעותית רק כשמשתמשים בה יחד עם "localhost". "הפתרון" (פתרון חיפושי שירות שם מארח/IP) משתמעת כשאחת מהפעולות האחרות כיום. |
התאמת נתונים (resolve) | כן |
חיבור |
כן, אבל בכפוף להגבלות. להגבלות ב-Apigee יש הגבלה על הגישה לכתובות sitelocal, anylocal, לולאה חוזרת ו-linklocal. |
|
האזנה, אישור |
לא | |
java.net.URLPermission מייצג את הרשאת הגישה למשאב או לקבוצת משאבים שהוגדרו על ידי כתובת URL נתונה, וגם עבור קבוצה נתונה של שיטות בקשה הניתנות להגדרה על ידי המשתמש וכותרות בקשות. השם של היא המחרוזת של כתובת ה-URL. מחרוזת הפעולות היא שרשור של שיטות הבקשה וכותרות. המחלקה הזו לא מגבילה את הטווח של שמות השיטות והכותרות. |
כן | |
LinkPermission מחלקה של הרשאות לפעולות של יצירת קישורים. |
קשה | לא |
סימבולי | לא | |
java.security.SecurityPermission הרשאת אבטחה מכילה שם (נקרא גם 'שם יעד') אבל אין בה פעולות list; שיש לכם הרשאה בעלת שם, או שאין לכם אותה. שם היעד הוא השם של פרמטר הגדרת אבטחה (ראו בהמשך). כרגע האובייקט Security Allow משמש כדי להגן על הגישה למדיניות, לאבטחה, לספק, אובייקטים של 'חתימה' ו'זהות'. |
createAccessControlContext | לא |
getDomainCombiner | לא | |
getPolicy | לא | |
setPolicy | לא | |
createPolicy.{policy type} | לא | |
getProperty.{key} | לא | |
setProperty.{key} | לא | |
insertProvider | לא | |
removeProvider.{provider name} | לא | |
clearProviderProperties.{provider name} | לא | |
putProviderProperty.{provider name} | לא | |
removeProviderProperty.{provider name} | לא | |
SQLPermission | setLog | לא |
callAbort | לא | |
setSyncFactory | לא | |
setNetworkTimeout | לא | |
deregisterDriver | לא | |
java.util.logging.LoggingPermission מנהל SecurityManager יבדוק את האובייקט Java.util.logging.LoggingAuthor כאשר יש קוד פועלת עם SecurityManager קורא לאחת משיטות הבקרה לרישום ביומן (למשל Logger.setLevel). |
עוצמת הקול | לא |
java.util.PropertyPermission השם הוא שם הנכס (JavaScript.home, os.name וכו'). המוסכמה למתן שמות תואם למוסכמות לגבי מתן שמות לנכסים בהיררכיה. בנוסף, ייתכן שתופיע כוכבית בסוף השם, אחרי '.' או עצמו, כדי לציין התאמה לתווים כלליים לחיפוש. מוצרים לדוגמה: "java.*" או '*' הוא חוקי, "*Java" או 'a*b' אינו חוקי. הפעולות שיוענקו מועברות ל-constructor במחרוזת שמכילה רשימה של אפס מילות מפתח או יותר שמופרדות בפסיקים. |
קריאה | כן |
כתיבה | לא | |
javax.xml.ws.WebServicePermission
|
publishEndpoint | לא |
javax.xml.bind.JAXBPermission | setDatatypeConverter | לא |
javax.sound.sampled.AudioPermission הרשאות גישה למשאבי מערכת האודיו. |
הפעלה | לא |
רשומה | לא | |
javax.security.auth.PrivateCredentialPermission הגנה על הגישה לפרטי כניסה פרטיים ששייכים לנושא מסוים. הנושא הוא שמיוצגים על ידי קבוצת משתמשים. שם היעד של ההרשאה הזו מציין השם של מחלקה של פרטי כניסה, וקבוצת חשבונות משתמשים. הערך החוקי היחיד להרשאה זו הפעולות הן "קריאה". |
CredentialClass {PrincipalClass "PrincipalName"}* | לא |
javax.security.auth.kerberos.ServicePermission להגן על שירותי Kerberos ועל פרטי הכניסה שנחוצים כדי לגשת לשירותים האלה. |
ליזום | לא |
אישור | לא | |
javax.security.auth.kerberos.DelegationPermission משמש להגבלת השימוש במודל הענקת הגישה של Kerberos. כלומר, ניתן להעברה וניתן להעברה כרטיסים. שם היעד של ההרשאה הזו מציין צמד חשבונות משתמשים ב-kerberos. הראשון הוא חשבון השירות המשני שמופקד לשימוש בשירות הענקת הכרטיס כרטיס (TGT). חשבון המשתמש השני מגדיר את שירות היעד חשבון המשתמש בשירות הוא לקיים אינטראקציה עם חשבון KerberosPrincipal. |
ליזום | לא |
אישור | לא | |
javax.security.auth.AuthPermission נכון לעכשיו, האובייקט AuthAuthor משמש כדי להגן על הגישה לנושא, אובייקטים מסוג SubjectDomainCombiner, LoginContext ו-Configuration. |
doAs | לא |
doAsPrivileged | לא | |
getSubject | לא | |
getSubjectFromDomainCombiner | לא | |
setReadOnly | לא | |
modifyPrincipals | לא | |
modifyPublicCredentials | לא | |
modifyPrivateCredentials | לא | |
refreshCredential | לא | |
destroyCredential | לא | |
createLoginContext.{name} | לא | |
getLoginConfiguration | לא | |
setLoginConfiguration | לא | |
createLoginConfiguration.{configuration type} | לא | |
refreshLoginConfiguration | לא | |
javax.net.ssl.SSLPermission |
setHostnameVerifier | לא |
getSSLSessionContext | לא | |
setDefaultSSLContext | לא | |
javax.management.MBeanPermission הרשאות לבקרת גישה לפעולות MBeanServer. אם הוגדר מנהל אבטחה באמצעות System.setSecurityManager(java.lang.SecurityManager), רוב הפעולות מערכת MBeanServer דורשת שההרשאות של המתקשר/ת ירמזו על כך שנדרשת הרשאה המתאימה את הפעולה. action className#member[objectName] אם יש לך MBeanPermissions, אפשר לבצע פעולות רק אם כל ארבעת הפריטים הם להתאים לבחירה. |
addNotificationListener | לא |
getAttribute | לא | |
getClassLoader | לא | |
getClassLoaderFor | לא | |
getClassLoaderRepository | לא | |
getDomains | לא | |
getMBeanInfo | לא | |
getObjectInstance | לא | |
יצירת אובייקט (instantiate) | לא | |
להפעיל | לא | |
isInstanceOf | לא | |
queryMBeans | לא | |
queryNames | לא | |
registerMBean | לא | |
removeNotificationListener | לא | |
setAttribute | לא | |
unregisterMBean | לא | |
javax.management.MBeanServerPermission |
createMBeanServer | לא |
findMBeanServer | לא | |
newMBeanServer | לא | |
releaseMBeanServer | לא | |
javax.management.MBeanTrustPermission ההרשאה הזו מייצגת את הערך 'Trust' (לתת אמון). בחותם או ב-codebase. |
להירשם | לא |
* | לא | |
javax.management.remote.SubjectDelegationPermission
|
לא |