Java izni referansı

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Java izin politikaları hakkında bilmeniz gerekenler

Java Çağrı politikaları geliştiriyorsanız Edge JVM'sinde hangi izin politikalarının geçerli olduğunu ve bunların kodunuzu nasıl etkileyeceğini bilmeniz gerekir. Örneğin, özel Java kodunuzun dosya sistemine sınırsız erişimi yoktur. Ancak, dosya sistemi erişimi söz konusu olduğunda, politika kaynak dosyaları gibi belirli dosyaları okuyabilirsiniz. Ancak diğer dosya sistemi erişimlerinin çoğu engellenir. Bu konuda, tüm JDK izin türleri ve bunlarla ilgili hedefler veya işlemler listelenmektedir. Her bir hedef veya işlem için izin politikasını ve bilmeniz gereken istisnaları belirtiriz.

JDK izin türleri ve her bir iznin nelere izin verdiği hakkında daha fazla bilgi edinmek için Java Geliştirme Kiti'ndeki (JDK) İzinler bölümüne bakın.

Güvenlik kısıtlamalarını etkinleştirme

Private Cloud için Edge'de güvenlik kısıtlamaları varsayılan olarak devre dışıdır. Bu, özel Java çağrı kodunuzun kısıtlama olmadan tüm kaynaklara erişebileceği anlamına gelir. Edge for Private Cloud yüklemenizde güvenlik kısıtlamalarını etkinleştirmek için aşağıdaki prosedürü uygulayın:

  1. İlk Mesaj İşleyici düğümünde $APIGEE_ROOT/customer/application/message-processor.properties dosyasını bir düzenleyicide açın. Dosya yoksa oluşturun.
  2. Dosyaya şu satırı ekleyin:
    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. Mesaj İşleyici'yi yeniden başlatın:
    apigee-service message-processor restart
  5. Diğer tüm Mesaj İşleyiciler için bu adımları tekrarlayın.
İzin Türü Hedef veya İşlem Adı Verildi
java.awt.AWTPermission
accessClipboard NO
accessEventQueue NO
accessSystemTray NO
createRobot NO
fullScreenExclusive NO
listenToAllAWTEvents NO
readDisplayPixels NO
replaceKeyboardFocusManager NO
setAppletStub NO
setWindowsAlwaysOnTop NO
showWindowWithoutWarningBanner NO
toolkitModality NO
watchMousePointer NO
java.io.FilePermission

java.io.FilePermission, bir dosya veya dizine erişimi temsil eder. Dosya İzni, bir yol adı ve söz konusu yol adı için geçerli olan bir dizi işlemden oluşur.
okuma EVET, ancak kısıtlamalar geçerlidir. Kısıtlamalar bölümünü inceleyin.
write NO
execute NO
delete NO
readLink EVET
java.io.SerializablePermission

SerializablePermission, bir ad ("hedef ad" olarak da adlandırılır) içerir ancak işlem listesi içermez. Adlandırılmış izne sahipsinizdir veya izne sahip değilsinizdir.
enableSubclassImplementation EVET
enableSubstitution NO
java.lang.management.ManagementPermission

Java platformunun yönetim arayüzünde tanımlanan yöntemler
kontrol NO
monitör NO
java.lang.reffact.RefctorPermission

Yansıtıcı işlemler için. ReffactPermission, adlandırılmış bir izindir ve herhangi bir işlemi yoktur
suppressAccessChecks NO
newProxyInPackage.{paket adı} NO
java.lang.RuntimePermission

Bir ad ("hedef ad" olarak da adlandırılır) içerir ancak işlem listesi içermez. Belirtilen izne sahipsinizdir veya izne sahip değilsinizdir.
createClassLoader NO
getClassLoader EVET
setContextClassLoader EVET
enableContextClassLoaderOverride EVET
closeClassLoader NO
setSecurityManager NO
createSecurityManager NO
getenv.{değişken adı} NO
exitVM.{çıkış durumu} NO
shutdownHooks NO
setFactory NO
setIO NO
modifyThread EVET
stopThread EVET
modifyThreadGroup EVET
getProtectionDomain EVET
getFileSystemAttributes NO
readFileDescriptor EVET
writeFileDescriptor NO
loadKitaplık.{kitaplık adı} NO
accessClassInPackage. {paket adı} EVET
tanımlarClassInPackage. {paket adı} NO
accessDeclaredMembers NO
queuePrintJob NO
getStackTrace NO
setDefaultUncaughtExceptionHandler NO
tercihler NO
usePolicy NO
java.net.NetPermission

NetPermission bir ad içerir ancak işlem listesi içermez. Belirtilen izne sahipsinizdir veya yoktur.
setDefaultAuthenticator NO
requestPasswordAuthentication NO
specifyStreamHandler EVET
setProxySelector NO
getProxySelector NO
setCookieHandler NO
getCookieHandler NO
setResponseCache NO
getResponseCache NO
getNetworkInformation NO
java.net.SocketPermission

Bir ağa yuvalar aracılığıyla erişimi temsil eder. SocketPermission, bir ana makine spesifikasyonundan ve ana makineye bağlanmanın yollarını belirten bir "işlem" grubundan oluşur.
ana makine = (ana makine adı | IP adresi)[:portrange]
portrange = bağlantı noktası numarası | -portnumber | bağlantı noktası-[bağlantı noktasınumara]

Ana makineye bağlanmanın olası yolları

kabul et
bağlan
dinle
çözümle

"Dinle" işlemi yalnızca "localhost" ile kullanıldığında anlamlı olur. Diğer işlemlerden herhangi biri mevcut olduğunda "resolve" (ana makine/IP adı hizmet aramalarını çözme) işlemi anlamına gelir.
resolve EVET
connect

EVET, ancak kısıtlamalar geçerlidir. Kısıtlamalar bölümünü inceleyin.

Apigee; siteyerel, herhangi bir yerel, geri dönüş ve yerel bağlantı adreslerine erişimi kısıtlar.

dinle,
kabul et
NO
java.net.URLPermission

Belirli bir URL tarafından tanımlanmış bir kaynağa veya kaynak grubuna ve kullanıcı tarafından ayarlanabilen belirli istek yöntemleri ve istek başlıklarına erişim iznini temsil eder. İznin adı URL dizesidir. İşlem dizesi, istek yöntemleri ile başlıklarının birleştirilmesiyle oluşur. Yöntem ve üstbilgi adları aralığı bu sınıf tarafından kısıtlanmaz.
EVET
LinkPermission

Bağlantı oluşturma işlemleri için izin sınıfı.
zor NO
sembolik NO
java.security.SecurityPermission

SecurityPermission, bir ad ("hedef ad" olarak da adlandırılır) içerir ancak işlem listesi içermez. Belirtilen izne sahipsinizdir veya izne sahip değilsinizdir.
Hedef ad, bir güvenlik yapılandırma parametresinin adıdır (aşağıya bakın). SecurityPermission nesnesi şu anda Politika, Güvenlik, Sağlayıcı, İmzalayan ve Kimlik nesnelerine erişimi korumak için kullanılmaktadır.
createAccessControlContext NO
getDomainCombiner NO
getPolicy NO
setPolicy NO
createPolicy.{policy type} NO
getMülk.{anahtar} NO
setMülk.{anahtar} NO
insertProvider NO
removeProvider.{provider name} NO
clearProviderProperties.{sağlayıcı adı} NO
putProviderÖzellik.{sağlayıcı adı} NO
removeProviderÖzellik.{sağlayıcı adı} NO
SQLPermission setLog NO
callAbort NO
setSyncFactory NO
setNetworkTimeout NO
deregisterDriver NO
java.util.logging.LoggingPermission

SecurityManager ile çalışan kod, günlük kaydı kontrol yöntemlerinden birini (Logger.setLevel gibi) çağırdığında SecurityManager, java.util.logging.LoggingPermission nesnesini kontrol eder.
kontrol NO
java.util.propertyPermission
Ad, mülkün adıdır ("java.home", "os.name" vb.). Adlandırma kuralı, hiyerarşik özellik adlandırma kuralına uyar. Ayrıca bir yıldız işareti, adın sonunda, "." işaretinden sonra veya bir joker karakter eşleşmesini belirtmek için tek başına gösterilebilir. Örneğin: "java.*" veya "*" geçerlidir, "*java" veya "a*b" geçerli değildir.

Verilecek işlemler, sıfır veya daha fazla virgülle ayrılmış anahtar kelime listesi içeren bir dizedeki oluşturucuya iletilir.
okuma EVET
write NO
javax.xml.ws.WebServicePermission
publishEndpoint NO
javax.xml.bind.JAXBPermission setDatatypeConverter NO
javax.sound.sampled.AudioPermission

Ses sistemi kaynaklarına erişim hakları.
play NO
plak NO
javax.security.auth.PrivateCredentialPermission

Belirli bir Konuya ait özel Kimlik Bilgilerine erişimi koruyun. Konu, bir Ana Hesaplar Grubu ile temsil edilir. Bu İznin hedef adı, bir Kimlik bilgisi sınıf adı ve bir Ana Hesaplar Grubu belirtir. Bu iznin işlemleri için geçerli tek değer "okuma" şeklindedir.
CredentialClass {PrincipalClass "PrincipalName"}* NO
javax.security.auth.kerberos.ServicePermission

Kerberos hizmetlerini ve bu hizmetlere erişmek için gereken kimlik bilgilerini koruyun.
initiate NO
kabul et NO
javax.security.auth.kerberos.DelegationPermission

Kerberos yetki modelinin kullanımını kısıtlamak için kullanılır (ör. yönlendirilebilir ve proxy kullanılabilir biletler).

Bu iznin hedef adı, bir çift kerberos hizmet sorumlusunu belirtir. Bunlardan ilki, Bilet Veren Bilet'i (TGT) kullanmak üzere görevlendirilen alt hizmet müdürüdür. İkinci hizmet sorumlusu, bağlı hizmet ana hesabının, başlatan Kerberos Müdürü adına etkileşimde bulunacağı hedef hizmeti belirler.
initiate NO
kabul et NO
javax.security.auth.AuthPermission

Şu anda AuthPermission nesnesi şu anda Subject, SubjectDomainBirleştirici, GirişBağlamı ve Yapılandırma nesnelerine erişimi korumak için kullanılmaktadır.
doAs NO
doAsPrivileged NO
getSubject NO
getSubjectFromDomainCombiner NO
setReadOnly NO
modifyPrincipals NO
modifyPublicCredentials NO
modifyPrivateCredentials NO
refreshCredential NO
destroyCredential NO
createGirişBağlamı.{name} NO
getLoginConfiguration NO
setLoginConfiguration NO
createGirişConfiguration.{yapılandırma türü} NO
refreshLoginConfiguration NO
javax.net.ssl.SSLPermission
setHostnameVerifier NO
getSSLSessionContext NO
setDefaultSSLContext NO
javax.management.MBeanPermission

MBeanServer işlemlerine erişimi kontrol eden izin. System.setSecurityManager(java.lang.SecurityManager) kullanılarak bir güvenlik yöneticisi ayarlanmışsa MBeanServer'daki çoğu işlem, çağrıyı yapanın izinlerinin işlem için uygun bir MBeanPermission belirtmesini gerektirir.

action className#member[objectName]

MBeanPermission'ınız varsa yalnızca dördü de eşleşirse işlemlere izin verilir.
addNotificationListener NO
getAttribute NO
getClassLoader NO
getClassLoaderFor NO
getClassLoaderRepository NO
getDomains NO
getMBeanInfo NO
getObjectInstance NO
instantiate NO
çağırmak NO
isInstanceOf NO
queryMBeans NO
queryNames NO
registerMBean NO
removeNotificationListener NO
setAttribute NO
unregisterMBean NO
javax.management.MBeanServerPermission
createMBeanServer NO
findMBeanServer NO
newMBeanServer NO
releaseMBeanServer NO
javax.management.MBeanTrustPermission

Bu izin, imzalayanlara veya kod tabanına "güven"i temsil eder.
register NO
* NO
javax.management.remote.SubjectDelegationPermission
NO