شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید . اطلاعات
آنچه باید در مورد خط مشی های مجوز جاوا بدانید
اگر در حال توسعه سیاستهای Java Callout هستید، باید بدانید که کدام خطمشیهای مجوز در Edge JVM اعمال میشوند و چگونه روی کد شما تأثیر میگذارند. به عنوان مثال، کد جاوای سفارشی شما دسترسی نامحدودی به سیستم فایل ندارد. با این حال، در مورد دسترسی به سیستم فایل، می توانید فایل های خاصی مانند فایل های منبع سیاست را بخوانید. اما بیشتر دسترسی به سیستم فایل دیگر مسدود شده است. این مبحث همه انواع مجوزهای JDK و اهداف یا اقدامات مربوطه آنها را فهرست می کند. برای هر هدف یا اقدام، خطمشی مجوز و هر استثنایی را که باید در مورد آن بدانید مشخص میکنیم.
برای کسب اطلاعات بیشتر در مورد انواع مجوزهای JDK و آنچه که هر مجوز اجازه می دهد، به مجوزها در کیت توسعه جاوا (JDK) مراجعه کنید.
فعال کردن محدودیت های امنیتی
در Edge for Private Cloud، محدودیت های امنیتی به طور پیش فرض غیرفعال هستند. این بدان معناست که کد فراخوانی سفارشی جاوا شما می تواند بدون محدودیت به همه منابع دسترسی داشته باشد. برای فعال کردن محدودیتهای امنیتی در نصب Edge برای Private Cloud، مراحل زیر را دنبال کنید:
- در اولین گره Message Processor، فایل
$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.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 | نه |