مرجع مجوز جاوا

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

آنچه باید در مورد خط مشی های مجوز جاوا بدانید

اگر در حال توسعه سیاست‌های Java Callout هستید، باید بدانید که کدام خط‌مشی‌های مجوز در Edge JVM اعمال می‌شوند و چگونه روی کد شما تأثیر می‌گذارند. به عنوان مثال، کد جاوای سفارشی شما دسترسی نامحدودی به سیستم فایل ندارد. با این حال، در مورد دسترسی به سیستم فایل، می توانید فایل های خاصی مانند فایل های منبع سیاست را بخوانید. اما بیشتر دسترسی به سیستم فایل دیگر مسدود شده است. این مبحث همه انواع مجوزهای JDK و اهداف یا اقدامات مربوطه آنها را فهرست می کند. برای هر هدف یا اقدام، خط‌مشی مجوز و هر استثنایی را که باید در مورد آن بدانید مشخص می‌کنیم.

برای کسب اطلاعات بیشتر در مورد انواع مجوزهای JDK و آنچه که هر مجوز اجازه می دهد، به مجوزها در کیت توسعه جاوا (JDK) مراجعه کنید.

فعال کردن محدودیت های امنیتی

در Edge for Private Cloud، محدودیت های امنیتی به طور پیش فرض غیرفعال هستند. این بدان معناست که کد فراخوانی سفارشی جاوا شما می تواند بدون محدودیت به همه منابع دسترسی داشته باشد. برای فعال کردن محدودیت‌های امنیتی در نصب Edge برای Private Cloud، مراحل زیر را دنبال کنید:

  1. در اولین گره Message Processor، فایل $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.AWTP
دسترسی به کلیپ بورد نه
accessEventQueue نه
AccessSystemTray نه
ایجاد ربات نه
fullScreenExclusive نه
listenToAllAWTEvents نه
خواندنDisplayPixels نه
جایگزین کیبورد فوکوس مدیر نه
setAppletStub نه
WindowsAlwaysOnTop را تنظیم کنید نه
نمایش پنجره بدون اخطار نه
toolkitModality نه
ساعت ماوس پوینتر نه
java.io.FilePermission

java.io.FilePermission نشان دهنده دسترسی به یک فایل یا دایرکتوری است. یک FilePermission از یک نام مسیر و مجموعه ای از اقدامات معتبر برای نام مسیر تشکیل شده است.
خواندن بله اما محدودیت اعمال می شود. به محدودیت ها مراجعه کنید.
نوشتن نه
اجرا کنند نه
حذف کنید نه
خواندن لینک بله
java.io.SerializablePermission

SerializablePermission حاوی یک نام است (که به آن "نام هدف" نیز گفته می شود) اما هیچ لیستی از اقدامات وجود ندارد. شما یا مجوز نامگذاری شده را دارید یا ندارید.
enableSubclassImplementation بله
enableSubstitution نه
java.lang.management.ManagementPermission

روش های تعریف شده در رابط مدیریت برای پلت فرم جاوا
کنترل کنید نه
نظارت کنید نه
java.lang.reflect.ReflecPermission

برای عملیات بازتابی ReflectPermission یک مجوز نامگذاری شده است و هیچ عملکردی ندارد
suppressAccessChecks نه
newProxyInPackage.{نام بسته} نه
java.lang.RuntimePermission

شامل یک نام (همچنین به عنوان "نام هدف" نامیده می شود) اما بدون لیست اقدامات. شما یا مجوز نامگذاری شده را دارید یا ندارید.
createClassLoader نه
getClassLoader بله
setContextClassLoader بله
enableContextClassLoaderOverride بله
بستنClassLoader نه
setSecurityManager نه
createSecurityManager نه
getenv.{نام متغیر} نه
exitVM.{وضعیت خروج} نه
shutdownHoks نه
setFactory نه
setIO نه
modifyThread بله
stopThread بله
modifyThreadGroup بله
getProtectionDomain بله
getFileSystemAttributes نه
readFileDescriptor بله
writeFileDescriptor نه
loadLibrary.{نام کتابخانه} نه
accessClassInPackage. {نام بسته} بله
defineClassInPackage. {نام بسته} نه
دسترسی به اعضای اعلام شده نه
queuePrintJob نه
getStackTrace نه
setDefaultUncaughtExceptionHandler نه
ترجیحات نه
استفاده از سیاست نه
java.net.NetPermission

یک NetPermission حاوی یک نام است اما هیچ لیستی از اقدامات وجود ندارد. شما یا مجوز نامگذاری شده را دارید یا ندارید.
setDefaultAuthenticator نه
requestPasswordAuthentication نه
StreamHandler را مشخص کنید بله
setProxySelector نه
getProxySelector نه
setCookieHandler نه
getCookieHandler نه
setResponseCache نه
getResponseCache نه
getNetworkInformation نه
java.net.SocketPermission

نشان دهنده دسترسی به یک شبکه از طریق سوکت است. SocketPermission شامل مشخصات میزبان و مجموعه‌ای از «اقدامات» است که راه‌های اتصال به آن میزبان را مشخص می‌کند.
میزبان = (نام میزبان | آدرس IP)[:portrange]
portrange = portnumber | -portnumber | شماره پورت-[شماره پورت]

راه های ممکن برای اتصال به هاست هستند

قبول کنید
متصل شود
گوش کن
حل کردن

عمل "گوش دادن" تنها زمانی معنادار است که با "localhost" استفاده شود. عمل "resolve" (تحلیل جستجوهای سرویس نام میزبان/IP) زمانی که هر یک از اقدامات دیگر وجود داشته باشد، تلویحا می شود.
حل کردن بله
متصل شود

بله اما محدودیت اعمال می شود. به محدودیت ها مراجعه کنید.

Apigee دسترسی به آدرس های sitelocal، anylocal، loopback و linklocal را محدود می کند.

گوش کن
قبول کنید
نه
java.net.URLPermission

نشان دهنده مجوز دسترسی به یک منبع یا مجموعه ای از منابع تعریف شده توسط یک URL معین، و برای مجموعه معینی از روش های درخواست قابل تنظیم توسط کاربر و هدرهای درخواست است. نام مجوز رشته url است. رشته اقدامات ترکیبی از متدهای درخواست و هدرها است. دامنه نام های متد و هدر توسط این کلاس محدود نمی شود.
بله
LinkPermission

کلاس مجوز برای عملیات ایجاد پیوند.
سخت نه
نمادین نه
java.security.SecurityPermission

SecurityPermission حاوی نامی است (که به آن "نام هدف" نیز گفته می شود) اما هیچ لیستی از اقدامات وجود ندارد. شما یا مجوز نامگذاری شده را دارید یا ندارید.
نام هدف نام یک پارامتر پیکربندی امنیتی است (به زیر مراجعه کنید). در حال حاضر شی SecurityPermission برای محافظت از دسترسی به اشیاء Policy، Security، Provider، Signer و Identity استفاده می شود.
createAccessControlContext نه
getDomainCombiner نه
getPolicy نه
setPolicy نه
createPolicy.{نوع سیاست} نه
getProperty.{key} نه
setProperty.{key} نه
insertProvider نه
removeProvider.{نام ارائه دهنده} نه
clearProviderProperties.{نام ارائه دهنده} نه
putProviderProperty.{نام ارائه دهنده} نه
removeProviderProperty.{نام ارائه دهنده} نه
SQLPermission setLog نه
callAbort نه
setSyncFactory نه
setNetworkTimeout نه
لغو ثبت درایور نه
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
publicEndpoint نه
javax.xml.bind.JAXBPermission setDatatypeConverter نه
javax.sound.sampled.AudioPermission

حقوق دسترسی به منابع سیستم صوتی
بازی کردن نه
ثبت کنید نه
javax.security.auth.PrivateCredentialPermission

از دسترسی به اعتبارنامه های خصوصی متعلق به یک موضوع خاص محافظت کنید. موضوع توسط مجموعه ای از اصول نمایش داده می شود. نام هدف این مجوز یک نام کلاس Credential و مجموعه ای از اصول را مشخص می کند. تنها مقدار معتبر برای اقدامات این مجوز، "خواندن" است.
CredentialClass {PrincipalClass "PrincipalName"}* نه
javax.security.auth.kerberos.ServicePermission

از خدمات Kerberos و اعتبارنامه های لازم برای دسترسی به آن سرویس ها محافظت کنید.
آغاز کند نه
قبول کنید نه
javax.security.auth.kerberos.DelegationPermission

برای محدود کردن استفاده از مدل نمایندگی Kerberos استفاده می شود. به عنوان مثال، بلیط های قابل حمل و نقل و پروکسی.

نام هدف این مجوز یک جفت اصل سرویس kerberos را مشخص می کند. اولین مورد، به مدیر خدمات زیردستی است که برای استفاده از بلیط اعطای بلیت (TGT) محول شده است. دومین اصلی سرویس، سرویس هدفی را تعیین می کند که مدیر خدمات زیردست باید از طرف KerberosPrincipal آغازگر با آن تعامل داشته باشد.
آغاز کند نه
قبول کنید نه
javax.security.auth.AuthPermission

در حال حاضر از شی AuthPermission برای محافظت از دسترسی به اشیاء Subject، SubjectDomainCombiner، LoginContext و Configuration استفاده می شود.
doAs نه
doAsPrivileged نه
getSubject نه
getSubjectFromDomainCombiner نه
setReadOnly نه
اصلاح اصول نه
اصلاح اعتبار عمومی نه
اصلاح PrivateCredentials نه
refreshCredential نه
از بین بردن اعتبار نه
createLoginContext.{name} نه
getLoginConfiguration نه
setLoginConfiguration نه
createLoginConfiguration.{نوع پیکربندی} نه
refreshLoginConfiguration نه
javax.net.ssl.SSLPermission
setHostnameVerifier نه
getSSLSessionContext نه
setDefaultSSLCcontext نه
javax.management.MBeanPermission

کنترل دسترسی به عملیات MBeanServer. اگر یک مدیر امنیتی با استفاده از System.setSecurityManager (java.lang.SecurityManager) تنظیم شده باشد، بیشتر عملیات روی MBeanServer مستلزم آن است که مجوزهای تماس گیرنده به یک MBeanPermission مناسب برای عملیات دلالت کند.

اقدام کلاسName#member[objectName]

اگر MBeanPermission داشته باشید، تنها در صورتی اجازه عملیات را می دهد که هر چهار مورد مطابقت داشته باشند.
addNotificationListener نه
getAttribute نه
getClassLoader نه
getClassLoaderFor نه
getClassLoaderRepository نه
getDomains نه
getMBeanInfo نه
getObjectInstance نه
نمونه کردن نه
استناد کردن نه
isInstanceOf نه
queryMBeans نه
queryNames نه
registerMBean نه
removeNotificationListener نه
setAttribute نه
لغو ثبت نام نه
javax.management.MBeanServerPermission
createMBeanServer نه
findMBeanServer نه
newMBeanServer نه
releaseMBeanServer نه
javax.management.MBeanTrustPermission

این مجوز نشان دهنده «اعتماد» به امضاکننده یا پایگاه کد است.
ثبت نام کنید نه
* نه
javax.management.remote.SubjectDelegationPermission
نه