Anda sedang melihat dokumentasi Apigee Edge.
Buka
Dokumentasi Apigee X. info
Yang perlu Anda ketahui tentang izin Java kebijakan
Jika Anda mengembangkan kebijakan Pemanggilan Java, Anda perlu mengetahui kebijakan izin mana yang ada di di Edge JVM dan bagaimana pengaruhnya terhadap kode Anda. Misalnya, kode Java kustom Anda tidak memiliki akses terbatas ke sistem file. Namun, dalam kasus akses sistem file, Anda dapat membaca file tertentu, seperti file sumber daya kebijakan. Tetapi sebagian besar akses sistem file lainnya diblokir. Topik ini mencantumkan semua jenis izin JDK dan masing-masing target atau tindakan. Untuk setiap target atau tindakan, kami menentukan kebijakan izin dan pengecualian apa pun yang perlu Anda ketahui.
Untuk mempelajari lebih lanjut jenis izin JDK dan apa yang diizinkan oleh setiap izin, lihat Izin di Java Development Kit (JDK).
Mengaktifkan pembatasan keamanan
Di Edge untuk Private Cloud, pembatasan keamanan dinonaktifkan secara default. Hal ini berarti bahwa kode pemanggilan Java khusus dapat mengakses semua sumber daya tanpa batasan. Untuk mengaktifkan pembatasan keamanan di penginstalan Edge for Private Cloud Anda, ikuti prosedur di bawah ini:
- Pada node Message Processor pertama, buka file
$APIGEE_ROOT/customer/application/message-processor.properties
di editor. Jika file tidak ada, buat file tersebut. - Tambahkan baris berikut ke file:
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
- Mulai ulang Pemroses Pesan:
apigee-service message-processor restart
- Ulangi langkah-langkah ini pada semua Pemroses Pesan yang tersisa.
Jenis Izin | Nama Target atau Tindakan | Izin Diberikan |
java.awt.AWTPermission | ||
accessClipboard | TIDAK | |
accessEventQueue | TIDAK | |
accessSystemTray | TIDAK | |
createRobot | TIDAK | |
fullScreenExclusive | TIDAK | |
listenToAllAWTEvents | TIDAK | |
readDisplayPixels | TIDAK | |
replaceKeyboardFocusManager | TIDAK | |
setAppletStub | TIDAK | |
setWindowsAlwaysOnTop | TIDAK | |
showWindowWithoutWarningBanner | TIDAK | |
toolkitModality | TIDAK | |
watchMousePointer | TIDAK | |
java.io.FilePermission java.io.FilePermission menunjukkan akses ke file atau direktori. Izin File terdiri dari nama jalur dan serangkaian tindakan yang valid untuk nama jalur tersebut. |
baca | YA tetapi pembatasan berlaku. Lihat Pembatasan. |
write | TIDAK | |
execute | TIDAK | |
hapus | TIDAK | |
readLink | YA | |
java.io.SerializablePermission SerializablePermission berisi nama (juga disebut sebagai "nama target") tetapi tidak daftar tindakan; Anda memiliki izin akses yang dinamai atau Anda tidak. |
enableSubclassImplementation | YA |
enableSubstitution | TIDAK | |
java.lang.management.ManagementPermission Metode yang ditentukan dalam antarmuka pengelolaan untuk platform Java |
kontrol | TIDAK |
monitor | TIDAK | |
java.lang.reflect.ReflectPermission Untuk operasi reflektif. ReflectPermission adalah izin bernama dan tidak memiliki tertentu |
suppressAccessChecks | TIDAK |
newProxyInPackage.{package name} | TIDAK | |
java.lang.RuntimePermission Berisi nama (juga disebut sebagai "nama target") tetapi tidak ada daftar tindakan; Anda bisa memiliki izin akses yang diberikan atau Anda tidak melakukannya. |
createClassLoader | TIDAK |
getClassLoader | YA | |
setContextClassLoader | YA | |
enableContextClassLoaderOverride | YA | |
closeClassLoader | TIDAK | |
setSecurityManager | TIDAK | |
createSecurityManager | TIDAK | |
getenv.{variable name} | TIDAK | |
exitVM.{exit status} | TIDAK | |
shutdownHooks | TIDAK | |
setFactory | TIDAK | |
setIO | TIDAK | |
modifyThread | YA | |
stopThread | YA | |
modifyThreadGroup | YA | |
getProtectionDomain | YA | |
getFileSystemAttributes | TIDAK | |
readFileDescriptor | YA | |
writeFileDescriptor | TIDAK | |
loadLibrary.{library name} | TIDAK | |
accessClassInPackage. {nama paket} | YA | |
defineClassInPackage. {nama paket} | TIDAK | |
accessDeclaredMembers | TIDAK | |
queuePrintJob | TIDAK | |
getStackTrace | TIDAK | |
setDefaultUncaughtExceptionHandler | TIDAK | |
preferensi | TIDAK | |
usePolicy | TIDAK | |
java.net.NetPermission NetPermission berisi nama tetapi tidak ada daftar tindakan; Anda memiliki izin akses yang bernama atau jika Anda tidak memerlukannya. |
setDefaultAuthenticator | TIDAK |
requestPasswordAuthentication | TIDAK | |
specifyStreamHandler | YA | |
setProxySelector | TIDAK | |
getProxySelector | TIDAK | |
setCookieHandler | TIDAK | |
getCookieHandler | TIDAK | |
setResponseCache | TIDAK | |
getResponseCache | TIDAK | |
getNetworkInformation | TIDAK | |
java.net.SocketPermission Menunjukkan akses ke jaringan melalui soket. SocketPermission terdiri dari host spesifikasi dan serangkaian "tindakan" menentukan cara untuk terhubung ke {i>host<i} tersebut. host = (nama host | Alamat IP)[:portrange] portrange = portnumber | -portnumber | portnumber-[portnumber] Cara yang memungkinkan untuk terhubung ke host adalah terima hubungkan dengarkan selesaikan Opsi "dengarkan" hanya berguna jika digunakan dengan "localhost". Bagian "resolve" (selesaikan pencarian layanan nama host/ip) tersirat jika salah satu tindakan lainnya saat ini. |
selesaikan | YA |
hubungkan |
YA tetapi pembatasan berlaku. Lihat Pembatasan. Apigee membatasi akses ke alamat sitelocal, anylocal, loopback, dan linklocal. |
|
dengarkan, terima |
TIDAK | |
java.net.URLPermission Menunjukkan izin untuk mengakses resource atau sekumpulan resource yang ditentukan oleh URL tertentu, dan untuk set metode permintaan dan header permintaan tertentu yang dapat ditetapkan pengguna. Nama izin akses adalah string URL. String tindakan adalah penyambungan metode permintaan dan header. Rentang nama metode dan header tidak dibatasi oleh class ini. |
YA | |
LinkPermission Class Permission untuk operasi pembuatan link. |
sulit | TIDAK |
simbolis | TIDAK | |
java.security.SecurityPermission SecurityPermission berisi nama (juga disebut sebagai "nama target") tetapi tidak ada tindakan {i>list<i}; Anda memiliki izin akses yang dinamai atau Anda tidak. Nama target adalah nama parameter konfigurasi keamanan (lihat di bawah). Saat ini objek SecurityPermission digunakan untuk menjaga akses ke Kebijakan, Keamanan, Penyedia, Penanda Tangan, dan Identitas. |
createAccessControlContext | TIDAK |
getDomainCombiner | TIDAK | |
getPolicy | TIDAK | |
setPolicy | TIDAK | |
createPolicy.{policy type} | TIDAK | |
getProperty.{key} | TIDAK | |
setProperty.{key} | TIDAK | |
insertProvider | TIDAK | |
removeProvider.{provider name} | TIDAK | |
clearProviderProperties.{provider name} | TIDAK | |
putProviderProperty.{provider name} | TIDAK | |
removeProviderProperty.{provider name} | TIDAK | |
SQLPermission | setLog | TIDAK |
callAbort | TIDAK | |
setSyncFactory | TIDAK | |
setNetworkTimeout | TIDAK | |
deregisterDriver | TIDAK | |
java.util.logging.LoggingPermission SecurityManager akan memeriksa objek java.util.logging.LoggingPermission ketika kode yang berjalan dengan SecurityManager memanggil salah satu metode kontrol logging (seperti Logger.setLevel). |
kontrol | TIDAK |
java.util.PropertyPermission Namanya adalah nama properti ("java.home", "os.name", dll). Konvensi penamaan mengikuti konvensi penamaan properti hierarkis. Selain itu, tanda bintang dapat muncul di di akhir nama, setelah ".", atau dengan sendirinya, untuk menandakan pencocokan karakter pengganti. Contoh: "java.*" atau "*" valid, "*java" atau "a*b" tidak valid. Tindakan yang akan diberikan diteruskan ke konstruktor dalam string yang berisi daftar nol atau beberapa kata kunci yang dipisahkan koma. |
baca | YA |
write | TIDAK | |
javax.xml.ws.WebServicePermission
|
publishEndpoint | TIDAK |
javax.xml.bind.JAXBPermission | setDatatypeConverter | TIDAK |
javax.sound.sampled.AudioPermission Hak akses ke resource sistem audio. |
putar | TIDAK |
rekaman | TIDAK | |
javax.security.auth.PrivateCredentialPermission Melindungi akses ke Kredensial pribadi milik Subjek tertentu. Subjek adalah yang diwakili oleh Sekumpulan Kepala Sekolah. Nama target Izin ini menentukan Nama class kredensial, dan Set of Principals. Satu-satunya nilai yang valid untuk adalah, "{i>read<i}". |
CredentialClass {PrincipalClass "PrincipalName"}* | TIDAK |
javax.security.auth.kerberos.ServicePermission Melindungi layanan Kerberos dan kredensial yang diperlukan untuk mengakses layanan tersebut. |
mulai | TIDAK |
setuju | TIDAK | |
javax.security.auth.kerberos.DelegationPermission Digunakan untuk membatasi penggunaan model delegasi Kerberos; yaitu, dapat diteruskan dan dapat didekati tiket. Nama target Izin ini menentukan sepasang akun utama layanan kerberos. Tujuan pertama adalah akun utama layanan bawahan yang dipercaya untuk menggunakan {i>Ticket Granting<i} Tiket (TGT). Prinsip layanan kedua menetapkan layanan target sebagai bawahan layanan utama adalah berinteraksi dengan atas nama KerberosPrincipal yang menginisiasi. |
mulai | TIDAK |
setuju | TIDAK | |
javax.security.auth.AuthPermission Saat ini objek AuthPermission digunakan untuk menjaga akses ke Subjek, Objek SubjectDomainKombinasi, LoginContext, dan Configuration. |
doAs | TIDAK |
doAsPrivileged | TIDAK | |
getSubject | TIDAK | |
getSubjectFromDomainCombiner | TIDAK | |
setReadOnly | TIDAK | |
modifyPrincipals | TIDAK | |
modifyPublicCredentials | TIDAK | |
modifyPrivateCredentials | TIDAK | |
refreshCredential | TIDAK | |
destroyCredential | TIDAK | |
createLoginContext.{name} | TIDAK | |
getLoginConfiguration | TIDAK | |
setLoginConfiguration | TIDAK | |
createLoginConfiguration.{configuration type} | TIDAK | |
refreshLoginConfiguration | TIDAK | |
javax.net.ssl.SSLPermission |
setHostnameVerifier | TIDAK |
getSSLSessionContext | TIDAK | |
setDefaultSSLContext | TIDAK | |
javax.management.MBeanPermission Izin mengontrol akses ke operasi MBeanServer. Jika pengelola keamanan telah ditetapkan menggunakan System.setSecurityManager(java.lang.SecurityManager), sebagian besar operasi di MBeanServer mengharuskan izin pemanggil menyiratkan MBeanPermission yang sesuai untuk melakukan operasi tersebut. namakelas tindakan#anggota[objectName] Jika Anda memiliki MBeanPermission, izin hanya memungkinkan operasi jika keempat item yang cocok. |
addNotificationListener | TIDAK |
getAttribute | TIDAK | |
getClassLoader | TIDAK | |
getClassLoaderFor | TIDAK | |
getClassLoaderRepository | TIDAK | |
getDomains | TIDAK | |
getMBeanInfo | TIDAK | |
getObjectInstance | TIDAK | |
buat instance | TIDAK | |
panggil | TIDAK | |
isInstanceOf | TIDAK | |
queryMBeans | TIDAK | |
queryNames | TIDAK | |
registerMBean | TIDAK | |
removeNotificationListener | TIDAK | |
setAttribute | TIDAK | |
unregisterMBean | TIDAK | |
javax.management.MBeanServerPermission |
createMBeanServer | TIDAK |
findMBeanServer | TIDAK | |
newMBeanServer | TIDAK | |
releaseMBeanServer | TIDAK | |
javax.management.MBeanTrustPermission Izin ini mewakili "kepercayaan" penanda tangan atau codebase. |
register | TIDAK |
* | TIDAK | |
javax.management.remote.SubjectDelegationPermission
|
TIDAK |