مرجع أذونات Java

أنت تعرض مستندات Apigee Edge.
انتقل إلى مستندات Apigee X.
معلومات

ما تحتاج إلى معرفته عن إذن Java سياسات

إذا كنت تطوّر سياسات Java للتوضيح، عليك معرفة سياسات الأذونات المتّبَعة في في Edge JVM وكيف ستؤثر على التعليمة البرمجية. على سبيل المثال، رمز Java المخصص ليس لديه وصول غير محدود إلى نظام الملفات. ومع ذلك، في حالة الوصول إلى نظام الملفات، يمكنك قراءة ملفات معيّنة، مثل ملفات موارد السياسات. ولكن معظم الوصول إلى نظام الملفات الآخر محظور. يسرد هذا الموضوع جميع أنواع أذونات JDK وأهدافها أو إجراءاتها ذات الصلة. لكل هدف أو إجراء، نحدد سياسة الأذونات وأي استثناءات تحتاج إلى تعرفها.

لمزيد من المعلومات عن أنواع أذونات JDK وما يسمح به كل إذن، يمكنك الاطّلاع على الأذونات في مجموعة أدوات تطوير Java (JDK).

تفعيل قيود الأمان

في Edge for Private Cloud، يتم إيقاف قيود الأمان تلقائيًا. هذا يعني أنّ ويمكن لرمز وسيلة شرح Java المخصص الوصول إلى جميع الموارد بدون قيود. للتفعيل قيود الأمان في تثبيت Edge for Private Cloud، يُرجى اتّباع الإجراء أدناه:

  1. في عقدة "معالج الرسائل" الأولى، افتح الملف $APIGEE_ROOT/customer/application/message-processor.properties في المحرِّر. إذا لم يكن الملف متوفّرًا، أنشئه.
  2. أضِف السطر التالي إلى الملف:
    conf_security-policy_enable.security.manager=true
  3. Save the file and ensure the file is owned by the apigee user:
    chown apigee:apigee $APIGEE_ROOT/customer/application/message-processor.properties
  4. إعادة تشغيل معالج الرسائل:
    apigee-service message-processor restart
  5. كرر هذه الخطوات على كل معالِجات الرسائل المتبقية.
نوع الإذن اسم الهدف أو الإجراء تم منح الإذن
java.awt.AWTPermission
accessClipboard لا
accessEventQueue لا
accessSystemTray لا
createRobot لا
fullScreenExclusive لا
listenToAllAWTEvents لا
readDisplayPixels لا
replaceKeyboardFocusManager لا
setAppletStub لا
setWindowsAlwaysOnTop لا
showWindowWithoutWarningBanner لا
toolkitModality لا
watchMousePointer لا
java.io.FilePermission

يمثل java.io.FilePermission الوصول إلى ملف أو دليل. إذن ملف من اسم مسار ومجموعة من الإجراءات الصالحة لاسم المسار هذا.
قراءة نعم، ولكن تنطبق بعض القيود. يمكنك الاطّلاع على القيود.
كتابة لا
التنفيذ لا
حذف لا
readLink نعم
java.io.SerializablePermission

يحتوي الحقل SerializingPermission على اسم (يُشار إليه أيضًا باسم "اسم الهدف") ولكن لا قائمة الإجراءات إما أن يكون لديك الإذن المحدد أو ليس لديك ذلك.
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} نعم
defineClassInPackage. {package name} لا
accessDeclaredMembers لا
queuePrintJob لا
أمر getStackTrace لا
setDefaultUncaughtExceptionHandler لا
التفضيلات لا
usePolicy لا
java.net.NetPermission

يحتوي NetPermission على اسم ولكن لا يحتوي على قائمة إجراءات، لديك إما الإذن بالاسم أو لا تفعل ذلك.
setDefaultAuthenticator لا
requestPasswordAuthentication لا
specifyStreamHandler نعم
setProxySelector لا
getProxySelector لا
setCookieHandler لا
getCookieHandler لا
setResponseCache لا
getResponseCache لا
getNetworkInformation لا
java.net.SocketPermission

يمثل الوصول إلى الشبكة عبر المقابس. يتكون إذن المقبس من مضيف والمواصفات ومجموعة "الإجراءات" لتحديد طرق الاتصال بهذا المضيف.
المضيف = (اسم المضيف | عنوان IP)[:portrange]
نطاق المنفذ = رقم المنفذ | -رقم المنفذ | رقم المنفذ-[portnumber]

الطرق الممكنة للاتصال بالمضيف هي

قبول
توصيل
الاستماع
حل

زر "الاستماع" يكون الإجراء مفيدًا فقط عند استخدامه مع "localhost". "الحل" (حل ( عمليات البحث عن خدمة اسم المضيف/IP) عندما يتم تضمين أي من الإجراءات الأخرى، حاليًا.
مطابقة نعم
اتصل

نعم، ولكن تنطبق بعض القيود. يمكنك الاطّلاع على القيود.

تحظر Apigee إمكانية الوصول إلى عناوين sitelocal و anylocal وeage وlinklocal.

الاستماع،
قبول
لا
java.net.URLPermission

يمثل إذنًا للوصول إلى مورد أو مجموعة من الموارد يتم تحديدها من خلال عنوان URL محدد، لمجموعة معيّنة من طرق الطلبات القابلة للضبط من قِبل المستخدم وعناوين الطلبات. اسم الإذن هو سلسلة عنوان URL. سلسلة الإجراءات هي تسلسل لطرق الطلب والعناوين. لا تفرض هذه الفئة قيودًا على نطاق أسماء الطرق والعناوين.
نعم
LinkPermission

فئة الإذن لعمليات إنشاء الرابط
صعب لا
رمزي لا
java.security.SecurityPermission

يحتوي SecurityPermission على اسم (يُشار إليه أيضًا باسم "اسم الهدف") ولكن لا يحتوي على أي إجراءات. list؛ إما أن يكون لديك الإذن المحدد أو ليس لديك ذلك.
اسم الهدف هو اسم مَعلمة إعدادات الأمان (انظر أدناه). حاليًا يُستخدم كائن SecurityPermission لحماية إمكانية الوصول إلى عناصر "الموقِّع" و"الهوية"
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.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

حماية الوصول إلى بيانات الاعتماد الخاصة التابعة لموضوع معيّن. الموضوع هو يتم تمثيلهم بمجموعة من المديرين. يحدد الاسم الهدف لهذا الإذن اسم فئة بيانات الاعتماد ومجموعة من المديرين. القيمة الوحيدة الصالحة لهذا الإذن الإجراءات هي "قراءة".
CredentialClass {PrincipalClass "PrincipalName"}* لا
javax.security.auth.kerberos.ServicePermission

يجب حماية خدمات Kerberos وبيانات الاعتماد اللازمة للوصول إلى هذه الخدمات.
البدء لا
قبول لا
javax.security.auth.kerberos.DelegationPermission

يتم استخدامه لتقييد استخدام نموذج تفويض Kerberos. بمعنى آخر، قابل لإعادة التوجيه وقابل للتوجيه التذاكر.

يُحدِّد الاسم الهدف لهذا الإذن زوجًا من أساسيات خدمة kerberos. تشير رسالة الأشكال البيانية الأول هو مدير الخدمة التابع الذي يتم تكليفه باستخدام نظام منح التذاكر تذكرة (TGT). يعين مدير الخدمة الثاني الخدمة المستهدفة التابعة للشركة التابعة هو التفاعل معه نيابةً عن مدير KerberosPrincipal الافتتاحي.
البدء لا
قبول لا
javax.security.auth.AuthPermission

يُستخدم كائن AuthPermission حاليًا لحماية الوصول إلى الموضوع، كائنات SubjectDomainIntegrationr وLoginContext وConfiguration.
doAs لا
doAsPrivileged لا
الحصول على موضوع لا
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

يمثّل هذا الإذن "الثقة" في موقع أو قاعدة رموز.
التسجيل لا
* لا
javax.management.remote.SubjectDelegationPermission
لا