Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
Co musisz wiedzieć o zasadach uprawnień dotyczących Javy
Jeśli tworzysz zasady dotyczące objaśnień w Javie, musisz wiedzieć, które zasady dotyczące uprawnień obowiązują w JVM Edge i jak będą wpływać na Twój kod. Na przykład niestandardowy kod Java nie ma nieograniczonego dostępu do systemu plików. W przypadku dostępu do systemu plików możesz jednak odczytywać niektóre pliki, na przykład pliki zasobów zasad. Jednak dostęp do większości innych systemów plików jest zablokowany. W tym temacie wymienione są wszystkie typy uprawnień JDK i odpowiadające im cele lub działania. W przypadku każdego celu lub działania określamy zasadę dotyczącą uprawnień i wszelkie wyjątki, o których musisz wiedzieć.
Więcej informacji o typach uprawnień dla JDK i ich dozwolonych uprawnieniach znajdziesz w artykule Uprawnienia w pakiecie Java Development Kit (JDK).
Włączanie ograniczeń związanych z bezpieczeństwem
W przeglądarce Edge dla Private Cloud ograniczenia związane z bezpieczeństwem są domyślnie wyłączone. Oznacza to, że niestandardowy kod objaśnienia w Javie ma dostęp do wszystkich zasobów bez ograniczeń. Aby włączyć ograniczenia zabezpieczeń w instalacji Edge dla chmury prywatnej, wykonaj te czynności:
- W pierwszym węźle procesora wiadomości otwórz plik
$APIGEE_ROOT/customer/application/message-processor.properties
w edytorze. Jeśli plik nie istnieje, utwórz go. - Dodaj do pliku ten wiersz:
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
- Ponownie uruchom procesor wiadomości:
apigee-service message-processor restart
- Powtórz te kroki w przypadku wszystkich pozostałych procesorów do przetwarzania wiadomości.
Typ uprawnienia | Nazwa elementu docelowego lub działania | Udzielono uprawnień |
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 oznacza dostęp do pliku lub katalogu. Uprawnienia do pliku składają się z nazwy ścieżki i zestawu działań prawidłowych dla tej nazwy ścieżki. |
czytać | TAK, ale obowiązują ograniczenia. Zobacz Ograniczenia. |
zapis | NO | |
execute | NO | |
usuń | NO | |
readLink | TAK | |
java.io.SerializablePermission SerializablePermission zawiera nazwę (zwaną też „nazwą docelową”), ale nie ma listy działań. Albo masz określone uprawnienie, albo go nie masz. |
enableSubclassImplementation | TAK |
enableSubstitution | NO | |
java.lang.management.ManagementPermission Metody zdefiniowane w interfejsie zarządzania na platformie Java |
kontrola | NO |
monitor | NO | |
java.lang.reflect.ReflectPermission Do operacji refleksyjnych. ReflectPermission to nazwane uprawnienie i nie zawiera żadnych działań |
suppressAccessChecks | NO |
newProxyInPackage.{nazwa pakietu} | NO | |
java.lang.RuntimePermission Zawiera nazwę (zwaną też „nazwą docelową”), ale nie zawiera listy działań. Albo masz określone uprawnienie, albo go nie masz. |
createClassLoader | NO |
getClassLoader | TAK | |
setContextClassLoader | TAK | |
enableContextClassLoaderOverride | TAK | |
closeClassLoader | NO | |
setSecurityManager | NO | |
createSecurityManager | NO | |
getenv.{nazwa zmiennej} | NO | |
wyjdźVM.{exit status} | NO | |
shutdownHooks | NO | |
setFactory | NO | |
setIO | NO | |
modifyThread | TAK | |
stopThread | TAK | |
modifyThreadGroup | TAK | |
getProtectionDomain | TAK | |
getFileSystemAttributes | NO | |
readFileDescriptor | TAK | |
writeFileDescriptor | NO | |
loadLibrary.{nazwa biblioteki} | NO | |
accessClassInPackage. {nazwa pakietu} | TAK | |
defineClassInPackage. {nazwa pakietu} | NO | |
accessDeclaredMembers | NO | |
queuePrintJob | NO | |
getStackTrace | NO | |
setDefaultUncaughtExceptionHandler | NO | |
preferencje | NO | |
usePolicy | NO | |
java.net.NetPermission NetPermission zawiera nazwę, ale nie listę działań. Albo masz nazwane uprawnienie, albo go nie masz. |
setDefaultAuthenticator | NO |
requestPasswordAuthentication | NO | |
specifyStreamHandler | TAK | |
setProxySelector | NO | |
getProxySelector | NO | |
setCookieHandler | NO | |
getCookieHandler | NO | |
setResponseCache | NO | |
getResponseCache | NO | |
getNetworkInformation | NO | |
java.net.SocketPermission Reprezentuje dostęp do sieci za pomocą gniazd. SocketPermission składa się ze specyfikacji hosta i zestawu „działań” określających sposoby łączenia się z tym hostem. host = (nazwa hosta | adres IP)[:portrange] portrange = portnumber | -portnumber | portnumber-[portnumber] Możliwe sposoby połączenia z hostem to zaakceptuj połącz nasłuchuj rozwiąż Działanie „listen” jest użyte tylko wtedy, gdy jest używane razem z operatorem „localhost”. Czynność „resolve” (Rozstrzyganie wyszukiwań dotyczących hosta/adresu IP) jest sugerowana, jeśli występuje dowolne z pozostałych działań. |
resolve | TAK |
bądź w kontakcie |
TAK, ale obowiązują ograniczenia. Zobacz Ograniczenia. Apigee ogranicza dostęp do adresów sitelocal, Anylocal, loopback i linklocal. |
|
słuchaj, akceptuj |
NO | |
java.net.URLPermission Reprezentuje uprawnienia dostępu do zasobu lub zbioru zasobów zdefiniowanych przez podany adres URL oraz dla danego zestawu metod żądania i nagłówków żądań możliwych do ustawienia przez użytkownika. Nazwa uprawnienia to ciąg adresu URL. Ciąg działań to połączenie metod żądań i nagłówków. Zakres nazw metod i nagłówków nie jest ograniczony przez tę klasę. |
TAK | |
LinkPermission Klasa uprawnień używana do operacji tworzenia połączeń. |
trudny | NO |
symboliczne | NO | |
java.security.SecurityPermission Uprawnienia dotyczące zabezpieczeń zawierają nazwę (zwaną też „nazwą docelową”), ale nie ma listy działań. Albo masz określone uprawnienie, albo nie masz tego uprawnienia. Nazwa miejsca docelowego to nazwa parametru konfiguracji zabezpieczeń (patrz poniżej). Obecnie obiekt SecurityPermission jest używany do ochrony dostępu do obiektów Policy, Security, Provider, Signer i Identity. |
createAccessControlContext | NO |
getDomainCombiner | NO | |
getPolicy | NO | |
setPolicy | NO | |
createPolicy.{typ zasady} | NO | |
getProperty.{klucz} | NO | |
setProperty.{klucz} | NO | |
insertProvider | NO | |
removeProvider.{provider name} | NO | |
clearProviderWłaściwości.{nazwa dostawcy} | NO | |
putProviderProperty.{nazwa dostawcy} | NO | |
removeProviderProperty.{nazwa dostawcy} | NO | |
SQLPermission | setLog | NO |
callAbort | NO | |
setSyncFactory | NO | |
setNetworkTimeout | NO | |
deregisterDriver | NO | |
java.util.logging.LoggingPermission SecurityManager sprawdzi obiekt java.util.logging.LoggingPermission, gdy kod uruchomiony z użyciem SecurityManagera wywołuje jedną z metod sterowania logowaniem (na przykład Logger.setLevel). |
kontrola | NO |
java.util.PropertyPermission Nazwa to nazwa właściwości („java.home”, „os.name” itp.). Konwencja nazewnictwa jest zgodna z hierarchiczną konwencją nazewnictwa właściwości. Na końcu nazwy może też pojawić się gwiazdka po znaku „.” lub sama nazwa, która oznacza dopasowanie z symbolem wieloznacznym. Przykład: prawidłowa wartość to „java.*” lub „*”, „*java” lub „a*b” jest nieprawidłowa. Działania, które należy przyznać, są przekazywane do konstruktora w formie ciągu znaków zawierającego listę słów kluczowych rozdzielonych przecinkami. |
czytać | TAK |
zapis | NO | |
javax.xml.ws.WebServicePermission
|
publishEndpoint | NO |
javax.xml.bind.JAXBPermission | setDatatypeConverter | NO |
javax.sound.sampled.AudioPermission Prawa dostępu do zasobów systemowych audio. |
play | NO |
rekord | NO | |
javax.security.auth.PrivateCredentialPermission Zabezpiecz dostęp do prywatnych danych logowania należących do określonego podmiotu. Podmiot jest reprezentowany przez zbiór podmiotów zabezpieczeń. Nazwa miejsca docelowego tego uprawnienia określa nazwę klasy danych logowania i zbiór podmiotów zabezpieczeń. Jedyna prawidłowa wartość to „read”. |
CredentialClass {PrincipalClass "PrincipalName"}* | NO |
javax.security.auth.kerberos.ServicePermission Chroń usługi Kerberos i dane logowania niezbędne do uzyskania dostępu do tych usług. |
initiate | NO |
zaakceptuj | NO | |
javax.security.auth.kerberos.DelegationPermission Służy do ograniczania wykorzystania modelu delegowania Kerberos, tj. zgłoszeń możliwych do przekazania i bezpośredniego. Nazwa docelowa tego uprawnienia określa parę podmiotów zabezpieczeń usługi Kerberos. Pierwszym z nich jest podrzędny podmiot zabezpieczeń usługi, któremu powierzono korzystanie z biletu TGT (TGT). Drugi podmiot zabezpieczeń usługi wyznacza usługę docelową, z którą podrzędny podmiot zabezpieczeń ma wchodzić w interakcje w imieniu inicjującego podmiotu zabezpieczeń Kerberos. |
initiate | NO |
zaakceptuj | NO | |
javax.security.auth.AuthPermission Obecnie obiekt AuthPermission jest używany do ochrony dostępu do obiektów Subject, SubjectDomainPołączr, LoginContext i Konfiguracja. |
doAs | NO |
doAsPrivileged | NO | |
getSubject | NO | |
getSubjectFromDomainCombiner | NO | |
setReadOnly | NO | |
modifyPrincipals | NO | |
modifyPublicCredentials | NO | |
modifyPrivateCredentials | NO | |
refreshCredential | NO | |
destroyCredential | NO | |
createLoginContext.{nazwa} | NO | |
getLoginConfiguration | NO | |
setLoginConfiguration | NO | |
createLoginConfiguration.{configuration type} | NO | |
refreshLoginConfiguration | NO | |
javax.net.ssl.SSLPermission |
setHostnameVerifier | NO |
getSSLSessionContext | NO | |
setDefaultSSLContext | NO | |
javax.management.MBeanPermission Uprawnienie kontrolujące dostęp do operacji MBeanServer. Jeśli menedżer zabezpieczeń został skonfigurowany za pomocą System.setSecurityManager(java.lang.SecurityManager), większość operacji na serwerze MBeanServer wymaga, aby uprawnienia elementu wywołującego sugerują uprawnienia MBeanPermission odpowiednie dla danej operacji. action className#member[objectName] Jeśli masz uprawnienie MBeanPermission, zezwala na operacje tylko wtedy, gdy są spełnione wszystkie 4 elementy. |
addNotificationListener | NO |
getAttribute | NO | |
getClassLoader | NO | |
getClassLoaderFor | NO | |
getClassLoaderRepository | NO | |
getDomains | NO | |
getMBeanInfo | NO | |
getObjectInstance | NO | |
utworzyć instancję | NO | |
wywołać | 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 To uprawnienie reprezentuje uprawnienie „trust” w sygnatariuszu lub bazie kodu. |
register | NO |
* | NO | |
javax.management.remote.SubjectDelegationPermission
|
NO |