يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات
Apigee X. المعلومات
المعلومات التي تحتاج إلى معرفتها حول سياسات أذونات Java
عند تطوير سياسات وسائل شرح Java، ستحتاج إلى معرفة سياسات الأذونات السارية في Edge JVM وكيفية تأثيرها في التعليمات البرمجية. على سبيل المثال، لا يملك رمز Java المخصَّص إمكانية وصول غير محدودة إلى نظام الملفات. ومع ذلك، في حال الوصول إلى نظام الملفات، يمكنك قراءة ملفات معيّنة، مثل ملفات موارد السياسة. ولكن يتم حظر معظم الوصول إلى أنظمة الملفات الأخرى. يسرد هذا الموضوع جميع أنواع أذونات JDK والأهداف أو الإجراءات الخاصة بها. بالنسبة إلى كل هدف أو إجراء، نحدّد سياسة الأذونات وأي استثناءات يجب أن تعرفها.
لمعرفة المزيد من المعلومات عن أنواع أذونات JDK وما يسمح به كل إذن، يمكنك الاطّلاع على الأذونات في مجموعة أدوات تطوير Java (JDK).
تفعيل قيود الأمان
في Edge لـ Private Cloud، يتم إيقاف قيود الأمان تلقائيًا. وهذا يعني أنّه يمكن لرمز وسيلة الشرح المخصّص في Java الوصول إلى جميع الموارد بدون قيود. لتفعيل قيود الأمان في تثبيت Edge for Private Cloud، يُرجى اتّباع الإجراء التالي:
- في عُقدة معالج الرسائل الأولى، افتح الملف
$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.FilePermission إمكانية الوصول إلى ملف أو دليل. ويتكون FilePermission من اسم مسار ومجموعة من الإجراءات الصالحة لاسم المسار هذا. |
قراءة | نعم، ولكن تنطبق القيود. يُرجى الاطّلاع على القيود. |
كتابة | لا | |
execute | لا | |
حذف | لا | |
readLink | نعم | |
java.io.SerializingPermission يحتوي SerialablePermission على اسم (يُشار إليه أيضًا باسم "اسم الهدف") ولكنّه لا يتضمّن قائمة إجراءات، فإما أن يكون لديك الإذن المحدَّد أو ليس لديك الإذن بذلك. |
enableSubclassImplementation | نعم |
enableSubstitution | لا | |
java.lang.management.ManagementPermission الطرق المحددة في واجهة الإدارة لمنصة Java |
تحكم | لا |
الشاشة | لا | |
java.lang.reflect.ReflectPermission للعمليات الانعكاسية ReflectPermission هو إذن مُسمّى وليس له أي إجراءات. |
suppressAccessChecks | لا |
newProxyInPackage.{package name} | لا | |
java.lang.RuntimePermission يحتوي على اسم (يُشار إليه أيضًا باسم "اسم الهدف") ولكن لا يحتوي على قائمة إجراءات، إمّا أنّه لديك الإذن المحدّد أو ليس لديك. |
createClassLoader | لا |
getClassLoader | نعم | |
setContextClassLoader | نعم | |
enableContextClassLoaderOverride | نعم | |
closeClassLoader | لا | |
setSecurityManager | لا | |
createSecurityManager | لا | |
getenv.{variable name} | لا | |
exitVM.{exit status} | لا | |
shutdownHooks | لا | |
setFactory | لا | |
setIO | لا | |
modifyThread | نعم | |
stopThread | نعم | |
modifyThreadGroup | نعم | |
getProtectionDomain | نعم | |
getFileSystemAttributes | لا | |
readFileDescriptor | نعم | |
writeFileDescriptor | لا | |
loadLibrary.{library name} | لا | |
AccessClassInPackage. {package name} | نعم | |
selectClassInPackage. {package name} | لا | |
accessDeclaredMembers | لا | |
queuePrintJob | لا | |
getStackTrace | لا | |
setDefaultUncaughtExceptionHandler | لا | |
التفضيلات | لا | |
usePolicy | لا | |
java.net.NetPermission يحتوي NetPermission على اسم ولكن ليس لديك قائمة إجراءات، وقد يكون لديك الإذن المسمى أو ليس لديك الإذن بذلك. |
setDefaultAuthenticator | لا |
requestPasswordAuthentication | لا | |
specifyStreamHandler | نعم | |
setProxySelector | لا | |
getProxySelector | لا | |
setCookieHandler | لا | |
getCookieHandler | لا | |
setResponseCache | لا | |
getResponseCache | لا | |
getNetworkInformation | لا | |
java.net.SocketPermission يمثل إمكانية الوصول إلى شبكة عبر المقابس. يتكون SocketPermission من مواصفات المضيف ومجموعة "الإجراءات" التي تحدّد طرق الاتصال بهذا المضيف. المضيف = (hostname | IPaddress)[:portrange] المنفذ = رقم المنفذ | -portnumber | رقم المنفذ-[portnumber] الطرق الممكنة للاتصال بالمضيف هي قبول اتصال استماع حل يكون إجراء "الاستماع" مفيدًا فقط عند استخدامه مع "localhost". يكون الإجراء "الحل" (عمليات البحث عن خدمة اسم المضيف/عنوان IP) ضمنيًا عند توفُّر أي من الإجراءات الأخرى. |
resolve | نعم |
اتصل |
نعم، ولكن تنطبق القيود. يُرجى الاطّلاع على القيود. تحظر Apigee الوصول إلى عناوين sitelocal وأي عنوان محلي واسترجاع وlinklocal. |
|
استماع، أقبل |
لا | |
java.net.URLPermission يمثّل هذا الإذن للوصول إلى مورد أو مجموعة من الموارد تم تحديدها بواسطة عنوان URL معيّن، ومجموعة معيّنة من طرق الطلبات ورؤوس الطلبات التي يمكن للمستخدم إعدادها. واسم الإذن هو سلسلة عنوان URL. سلسلة الإجراءات هي سلسلة من طرق الطلب وعناوينه. لا تحظر هذه الفئة نطاق أسماء الطرق والعناوين. |
نعم | |
LinkPermission فئة الإذن لعمليات إنشاء الروابط. |
صعب | لا |
رمزي | لا | |
java.security.SecurityPermission يحتوي SecurityPermission على اسم (يُشار إليه أيضًا باسم "اسم الهدف")، ولكنّه لا يتضمّن قائمة إجراءات، إمّا أنّك تملك الإذن المحدّد أو ليس لديك. الاسم المستهدف هو اسم مَعلمة ضبط الأمان (انظر أدناه). في الوقت الحالي، يتم استخدام كائن SecurityPermission لحماية الوصول إلى كائنات السياسة والأمان ومقدِّم الخدمة والموقِّع والهوية. |
createAccessControlContext | لا |
getDomainCombiner | لا | |
getPolicy | لا | |
setPolicy | لا | |
createPolicy.{policy type} | لا | |
getProperty.{key} | لا | |
setProperty.{key} | لا | |
insertProvider | لا | |
removeProvider.{provider name} | لا | |
clearProviderProperties.{provider name} | لا | |
setProviderProperty.{provider name} | لا | |
removeProviderProperty.{provider name} | لا | |
SQLPermission | setLog | لا |
callAbort | لا | |
setSyncFactory | لا | |
setNetworkTimeout | لا | |
deregisterDriver | لا | |
java.util.logging.LoggingPermission سيتحقّق مدير الأمان من الكائن java.util.logging.LoggingPermission عند تشغيل الرمز باستخدام SecurityManager، وذلك عند استدعاء إحدى طرق التحكّم في التسجيل (مثل Logger.setLevel). |
تحكم | لا |
java.util.PropertyPermission الاسم هو اسم الموقع الإلكتروني ("java.home" أو "os.name" أو غير ذلك). ويتّبع اصطلاح التسمية اصطلاح تسمية المواقع الإلكترونية على التسلسل الهرمي. بالإضافة إلى ذلك، قد تظهر علامة النجمة في نهاية الاسم، بعد علامة "."، أو وحدها للدلالة على مطابقة حرف بدل. على سبيل المثال: "java.*" أو "*" غير صالح، أو "*java" أو "a*b" غير صالح. يتم تمرير الإجراءات التي سيتم منحها إلى الدالة الإنشائية في سلسلة تحتوي على قائمة تحتوي على صفر أو أكثر من الكلمات الرئيسية المفصولة بفواصل. |
قراءة | نعم |
كتابة | لا | |
javax.xml.ws.WebServicePermission
|
publishEndpoint | لا |
javax.xml.bind.JAXBPermission | setDatatypeConverter | لا |
javax.sound.sampled.audioPermission أذونات الوصول إلى موارد نظام الصوت |
تشغيل | لا |
تسجيل | لا | |
javax.security.auth.privateCredentialPermission يمكنك حماية الوصول إلى بيانات الاعتماد الخاصة التي تنتمي إلى موضوع معيّن. ويتم تمثيل "الموضوع" من خلال مجموعة من المديرين. يحدِّد الاسم الهدف لهذا الإذن اسم فئة "بيانات الاعتماد" ومجموعة من المديرين. القيمة الوحيدة الصالحة لإجراءات هذا الإذن هي "read". |
CredentialClass {PrincipalClass "PrincipalName"}* | لا |
javax.security.auth.kerberos.ServicePermission عليك حماية خدمات Kerberos وبيانات الاعتماد اللازمة للوصول إلى تلك الخدمات. |
initiate | لا |
قبول | لا | |
javax.security.auth.kerberos.DelegationPermission يُستخدم لتقييد استخدام نموذج تفويض Kerberos، أي التذاكر القابلة لإعادة التوجيه والتي يمكن إنشاء خادم وكيل لها. يحدِّد الاسم الهدف لهذا الإذن زوجًا من العناصر الرئيسية لخدمة kerberos. الأول هو مدير الخدمة التابع الذي يتم تكليفه باستخدام "تذكرة منح التذاكر" (TGT). يحدد الخدمة الأساسية الثانية الخدمة المستهدفة التي يتم التفاعل معها بالنيابة عن مدير KerberosPrincipal المبدئي. |
initiate | لا |
قبول | لا | |
javax.security.auth.AuthPermission يُستخدم كائن AuthPermission حاليًا لتأمين الوصول إلى كائنات Subject وSubjectDomainModifyr وLogContext و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 تتطلب أن تتضمن أذونات المتصل استخدام MBeanPermission المناسب للعملية. action className#member[objectName] إذا كان لديك MBeanPermission، يسمح بإجراء العمليات فقط إذا تطابقت العناصر الأربعة جميعها. |
addNotificationListener | لا |
getAttribute | لا | |
getClassLoader | لا | |
getClassLoaderFor | لا | |
getClassLoaderRepository | لا | |
getDomains | لا | |
getMBeanInfo | لا | |
getObjectInstance | لا | |
إنشاء مثيل | لا | |
استدعاء | لا | |
isInstanceOf | لا | |
queryMBeans | لا | |
queryNames | لا | |
registerMBean | لا | |
removeNotificationListener | لا | |
setAttribute | لا | |
unregisterMBean | لا | |
javax.management.MBeanServerPermission |
createMBeanServer | لا |
findMBeanServer | لا | |
newMBeanServer | لا | |
releaseMBeanServer | لا | |
javax.management.MBeanTrustPermission يمثّل هذا الإذن "الثقة" في موقِّع أو قاعدة رموز. |
register | لا |
* | لا | |
javax.management.remote.SubjectDelegationPermission
|
لا |