Referensi izin Java

Halaman ini berlaku untuk Apigee dan Apigee hybrid.

Lihat dokumentasi Apigee Edge.

Yang perlu Anda ketahui tentang kebijakan izin Java

Jika Anda mengembangkan kebijakan Java Callout, Anda perlu mengetahui kebijakan izin mana yang berlaku di JVM Apigee dan pengaruhnya terhadap kode Anda. Misalnya, kode Java kustom Anda tidak memiliki akses tanpa batas 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).

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 mewakili akses ke file atau direktori. FilePermission terdiri dari jalur nama dan kumpulan tindakan yang valid untuk jalur nama tersebut.
read YA, tetapi ada batasan. Lihat Pembatasan.
write TIDAK
execute TIDAK
delete TIDAK
readLink YA
java.io.SerializablePermission

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

Metode yang ditentukan di antarmuka pengelolaan untuk platform Java
kontrol TIDAK
monitor TIDAK
java.lang.reflect.ReflectPermission

Untuk operasi reflektif. ReflectPermission adalah izin yang dinamai dan tidak memiliki tindakan
suppressAccessChecks TIDAK
newProxyInPackage.{package name} TIDAK
java.lang.RuntimePermission

Berisi nama (juga disebut sebagai "nama target") tetapi tidak ada daftar tindakan; Anda memiliki izin yang disebutkan atau tidak.
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. {package name} YA
defineClassInPackage. {package name} 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 yang dinamai atau tidak.
setDefaultAuthenticator TIDAK
requestPasswordAuthentication TIDAK
specifyStreamHandler YA
setProxySelector TIDAK
getProxySelector TIDAK
setCookieHandler TIDAK
getCookieHandler TIDAK
setResponseCache TIDAK
getResponseCache TIDAK
getNetworkInformation TIDAK
java.net.SocketPermission

Merepresentasikan akses ke jaringan melalui soket. SocketPermission terdiri dari spesifikasi host dan serangkaian "tindakan" yang menentukan cara untuk terhubung ke host tersebut.
host = (hostname | IPaddress)[:portrange]
portrange = portnumber | -portnumber | portnumber-[portnumber]

Cara yang mungkin untuk terhubung ke host adalah

accept
connect
listen
resolve

Tindakan "listen" hanya bermakna jika digunakan dengan "localhost". Tindakan "resolve" (me-resolve pencarian layanan nama host/ip) tersirat jika ada tindakan lain yang ada.
selesaikan YA
menghubungkan

YA, tetapi ada batasan. Lihat Pembatasan.

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

listen,
accept
TIDAK
java.net.URLPermission

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

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

SecurityPermission berisi nama (juga disebut sebagai "nama target") tetapi tidak ada daftar tindakan; Anda memiliki izin yang disebutkan 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 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 saat kode yang berjalan dengan SecurityManager memanggil salah satu metode kontrol logging (seperti Logger.setLevel).
kontrol TIDAK
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 dengan sendirinya, untuk menunjukkan 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 kata kunci yang dipisahkan koma, yang dapat berisi nol atau beberapa kata kunci.
read 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
kumpulan data TIDAK
javax.security.auth.PrivateCredentialPermission

Melindungi akses ke Kredensial pribadi milik Subjek tertentu. Subjek diwakili oleh Kumpulan Akun Utama. 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"}* TIDAK
javax.security.auth.kerberos.ServicePermission

Melindungi layanan Kerberos dan kredensial yang diperlukan untuk mengakses layanan tersebut.
memulai TIDAK
accept TIDAK
javax.security.auth.kerberos.DelegationPermission

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

Nama target Izin ini menentukan sepasang akun utama layanan Kerberos. Yang pertama adalah akun utama layanan bawahan yang dipercaya untuk menggunakan Tiket Pemberian Tiket (TGT). Akun utama layanan kedua menetapkan layanan target yang akan berinteraksi dengan akun utama layanan bawahan atas nama KerberosPrincipal yang memulai.
memulai TIDAK
accept TIDAK
javax.security.auth.AuthPermission

Saat ini, objek AuthPermission digunakan untuk menjaga akses ke objek Subject, SubjectDomainCombiner, 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 yang mengontrol akses ke operasi MBeanServer. Jika pengelola keamanan telah ditetapkan menggunakan System.setSecurityManager(java.lang.SecurityManager), sebagian besar operasi di MBeanServer mewajibkan izin pemanggil menyiratkan MBeanPermission yang sesuai untuk operasi.

action className#member[objectName]

Jika Anda memiliki MBeanPermission, izin ini hanya mengizinkan operasi jika keempat item 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" pada penanda tangan atau codebase.
register TIDAK
* TIDAK
javax.management.remote.SubjectDelegationPermission
TIDAK