Referensi izin Java

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Yang perlu Anda ketahui tentang kebijakan izin Java

Jika mengembangkan kebijakan Pemanggilan Java, Anda perlu mengetahui kebijakan izin mana yang berlaku di Edge JVM dan bagaimana pengaruhnya terhadap kode Anda. Misalnya, kode Java kustom Anda tidak memiliki akses tak terbatas ke sistem file. Namun, dalam kasus akses sistem file, Anda dapat membaca file tertentu, seperti file resource kebijakan. Namun, sebagian besar akses sistem file lainnya diblokir. Topik ini mencantumkan semua jenis izin JDK dan target atau tindakannya masing-masing. 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, batasan keamanan dinonaktifkan secara default. Artinya, kode info Java kustom Anda dapat mengakses semua resource tanpa batasan. Guna mengaktifkan pembatasan keamanan di penginstalan Edge untuk Private Cloud, ikuti prosedur di bawah ini:

  1. Pada node Message Processor pertama, buka file $APIGEE_ROOT/customer/application/message-processor.properties di editor. Jika file tidak ada, buat file tersebut.
  2. Tambahkan baris berikut ke file:
    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. Mulai ulang Pemroses Pesan:
    apigee-service message-processor restart
  5. Ulangi langkah ini pada semua Pemroses Pesan lainnya.
Jenis Izin Nama Target atau Tindakan Izin Diberikan
java.awt.AWTPermission
accessClipboard BUKAN
accessEventQueue BUKAN
accessSystemTray BUKAN
createRobot BUKAN
fullScreenExclusive BUKAN
listenToAllAWTEvents BUKAN
readDisplayPixels BUKAN
replaceKeyboardFocusManager BUKAN
setAppletStub BUKAN
setWindowsAlwaysOnTop BUKAN
showWindowWithoutWarningBanner BUKAN
toolkitModality BUKAN
watchMousePointer BUKAN
java.io.FilePermission

java.io.FilePermission mewakili akses ke file atau direktori. FilePermission terdiri dari nama jalur dan serangkaian tindakan yang valid untuk nama jalur tersebut.
read YA, tetapi berlaku pembatasan. Lihat Pembatasan.
write BUKAN
execute BUKAN
hapus BUKAN
readLink YA
java.io.SerializablePermission

SerializablePermission berisi nama (juga disebut sebagai "nama target") tetapi tidak ada daftar tindakan; Anda memiliki izin bernama atau tidak.
enableSubclassImplementation YA
enableSubstitution BUKAN
java.lang.management.ManagementPermission

Metode yang ditentukan dalam antarmuka pengelolaan untuk platform Java
kontrol BUKAN
monitor BUKAN
java.lang.Reflect.ReflectPermission

Untuk operasi reflektif. ReflectPermission adalah izin bernama dan tidak memiliki tindakan
suppressAccessChecks BUKAN
newProxyInPackage.{nama paket} BUKAN
java.lang.RuntimePermission

Berisi nama (juga disebut sebagai "nama target") tetapi tidak ada daftar tindakan; Anda memiliki izin yang diberi nama atau tidak.
createClassLoader BUKAN
getClassLoader YA
setContextClassLoader YA
enableContextClassLoaderOverride YA
closeClassLoader BUKAN
setSecurityManager BUKAN
createSecurityManager BUKAN
getenv.{nama variabel} BUKAN
exitVM.{exit status} BUKAN
shutdownHooks BUKAN
setFactory BUKAN
setIO BUKAN
modifyThread YA
stopThread YA
modifyThreadGroup YA
getProtectionDomain YA
getFileSystemAttributes BUKAN
readFileDescriptor YA
writeFileDescriptor BUKAN
loadLibrary.{nama library} BUKAN
accessClassInPackage. {nama paket} YA
defineClassInPackage. {nama paket} BUKAN
accessDeclaredMembers BUKAN
queuePrintJob BUKAN
getStackTrace BUKAN
setDefaultUncaughtExceptionHandler BUKAN
preferensi BUKAN
usePolicy BUKAN
java.net.NetPermission

NetPermission berisi nama, tetapi tidak berisi daftar tindakan; Anda memiliki izin bernama atau tidak.
setDefaultAuthenticator BUKAN
requestPasswordAuthentication BUKAN
specifyStreamHandler YA
setProxySelector BUKAN
getProxySelector BUKAN
setCookieHandler BUKAN
getCookieHandler BUKAN
setResponseCache BUKAN
getResponseCache BUKAN
getNetworkInformation BUKAN
java.net.SocketPermission

Menampilkan akses ke jaringan melalui soket. SocketPermission terdiri dari spesifikasi host dan serangkaian "tindakan" yang menentukan cara agar terhubung ke host tersebut.
host = (nama host | alamat IP)[:portrange]
portrange = portnumber | -portnumber | portnumber-[portnumber]

Cara yang memungkinkan untuk terhubung ke host adalah

setujui
hubungkan
pemrosesan
me-resolve

Tindakan "listen" hanya berguna jika digunakan dengan "localhost". Tindakan "resolve" (resolve pencarian layanan host/nama ip) akan tersirat jika terdapat tindakan lain.
resolve YA
hubungkan

YA, tetapi berlaku pembatasan. Lihat Pembatasan.

Apigee membatasi akses ke alamat sitelocal, anylocal, loopback, dan linklocal.

mendengarkan,
menerima
BUKAN
java.net.URLPermission

Mewakili izin untuk mengakses resource atau sekumpulan resource yang ditentukan oleh URL tertentu, dan untuk sekumpulan metode permintaan dan header permintaan yang dapat ditetapkan pengguna. Nama izin adalah string URL. String tindakan adalah penyambungan dari metode dan header permintaan. Rentang nama metode dan header tidak dibatasi oleh class ini.
YA
LinkPermission

Class Izin untuk operasi pembuatan link.
sulit BUKAN
simbolis BUKAN
java.security.SecurityPermission

SecurityPermission berisi nama (juga disebut sebagai "nama target") tetapi tidak ada daftar tindakan; Anda memiliki izin bernama atau tidak.
Nama target adalah nama parameter konfigurasi keamanan (lihat di bawah). Saat ini, objek SecurityPermission digunakan untuk menjaga akses ke objek Kebijakan, Keamanan, Penyedia, Penanda Tangan, dan Identitas.
createAccessControlContext BUKAN
getDomainCombiner BUKAN
getPolicy BUKAN
setPolicy BUKAN
createPolicy.{policy type} BUKAN
getProperty.{key} BUKAN
setProperty.{key} BUKAN
insertProvider BUKAN
removeProvider.{nama penyedia} BUKAN
clearProviderProperties.{nama penyedia} BUKAN
putProviderProperty.{nama penyedia} BUKAN
removeProviderProperty.{nama penyedia} BUKAN
SQLPermission setLog BUKAN
callAbort BUKAN
setSyncFactory BUKAN
setNetworkTimeout BUKAN
deregisterDriver BUKAN
java.util.logging.LoggingPermission

SecurityManager akan memeriksa objek java.util.logging.LoggingPermission saat kode yang berjalan dengan SecurityManager memanggil salah satu metode kontrol logging (seperti Logger.setLevel).
kontrol BUKAN
java.util.PropertyPermission
Nama adalah nama properti ("java.home", "os.name", dll.). Konvensi penamaan mengikuti konvensi penamaan properti hierarkis. Selain itu, tanda bintang dapat muncul di akhir nama, setelah ".", atau tanda bintang itu sendiri, untuk menandakan pencocokan karakter pengganti. Misalnya: "java.*" atau "*" valid, "*java" atau "a*b" tidak valid.

Tindakan yang akan diberikan diteruskan ke konstruktor dalam string yang berisi daftar berisi nol atau beberapa kata kunci yang dipisahkan koma.
read YA
write BUKAN
javax.xml.ws.WebServicePermission
publishEndpoint BUKAN
javax.xml.bind.JAXBPermission setDatatypeConverter BUKAN
javax.sound.sampled.AudioPermission

Hak akses ke resource sistem audio.
play BUKAN
kumpulan data BUKAN
javax.security.auth.PrivateCredentialPermission

Melindungi akses ke Kredensial pribadi milik Subjek tertentu. Subjek direpresentasikan oleh Sekumpulan Kepala Sekolah. Nama target Izin ini menentukan nama class Kredensial, dan Kumpulan Prinsipal. Satu-satunya nilai yang valid untuk tindakan Izin ini adalah, "read".
CredentialClass {PrincipalClass "PrincipalName"}* BUKAN
javax.security.auth.kerberos.ServicePermission

Lindungi layanan Kerberos dan kredensial yang diperlukan untuk mengakses layanan tersebut.
initiate BUKAN
setuju BUKAN
javax.security.auth.kerberos.DelegationPermission

Digunakan untuk membatasi penggunaan model delegasi Kerberos; yaitu tiket yang dapat diteruskan dan dapat di-proxy-kan.

Nama target Izin ini menentukan pasangan utama layanan kerberos. Yang pertama adalah entitas layanan bawahan yang dipercaya untuk menggunakan Ticket Granting Ticket (TGT). Entity utama layanan kedua menetapkan layanan target yang berinteraksi dengan akun utama layanan subordinate atas nama KerberosPrincipal yang memulai.
initiate BUKAN
setuju BUKAN
javax.security.auth.AuthPermission

Saat ini, objek AuthPermission digunakan untuk menjaga akses ke objek Subject, SubjectDomainMerger, LoginContext, dan Configuration.
doAs BUKAN
doAsPrivileged BUKAN
getSubject BUKAN
getSubjectFromDomainCombiner BUKAN
setReadOnly BUKAN
modifyPrincipals BUKAN
modifyPublicCredentials BUKAN
modifyPrivateCredentials BUKAN
refreshCredential BUKAN
destroyCredential BUKAN
createLoginContext.{nama} BUKAN
getLoginConfiguration BUKAN
setLoginConfiguration BUKAN
createLoginConfiguration.{configuration type} BUKAN
refreshLoginConfiguration BUKAN
javax.net.ssl.SSLPermission
setHostnameVerifier BUKAN
getSSLSessionContext BUKAN
setDefaultSSLContext BUKAN
javax.management.MBeanPermission

Izin yang mengontrol akses ke operasi MBeanServer. Jika pengelola keamanan telah disetel menggunakan System.setSecurityManager(java.lang.SecurityManager), sebagian besar operasi di MBeanServer mengharuskan izin pemanggil menyiratkan MBeanPermission yang sesuai untuk operasi tersebut.

action className#member[objectName]

Jika Anda memiliki MBeanPermission, tindakan ini hanya mengizinkan operasi jika keempat itemnya cocok.
addNotificationListener BUKAN
getAttribute BUKAN
getClassLoader BUKAN
getClassLoaderFor BUKAN
getClassLoaderRepository BUKAN
getDomains BUKAN
getMBeanInfo BUKAN
getObjectInstance BUKAN
buat instance BUKAN
panggil BUKAN
isInstanceOf BUKAN
queryMBeans BUKAN
queryNames BUKAN
registerMBean BUKAN
removeNotificationListener BUKAN
setAttribute BUKAN
unregisterMBean BUKAN
javax.management.MBeanServerPermission
createMBeanServer BUKAN
findMBeanServer BUKAN
newMBeanServer BUKAN
releaseMBeanServer BUKAN
javax.management.MBeanTrustPermission

Izin ini mewakili "kepercayaan" pada penanda tangan atau codebase.
register BUKAN
* BUKAN
javax.management.remote.SubjectDelegationPermission
BUKAN