Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Co musisz wiedzieć o uprawnieniach Javy zasady
Jeśli tworzysz zasady Java Callout, musisz wiedzieć, które zasady uprawnień są stosowane w Edge JVM i jak będą one wpływać na Twój kod. Na przykład Twój niestandardowy kod w Javie nie ma nieograniczonego dostępu do systemu plików. Jednakże w przypadku dostępu do systemu plików możesz odczytywać określone pliki, na przykład pliki zasobów zasad. Dostęp do większości innych systemów plików Użytkownik został zablokowany. W tym temacie znajdziesz listę wszystkich typów uprawnień JDK oraz ich celów i działań. Dla każdego celu lub działania określamy zasady dotyczące uprawnień oraz wszelkie wyjątki, które są wymagane co wiesz o produktach.
Aby dowiedzieć się więcej o typach uprawnień JDK i ich uprawnieniach, zapoznaj się z sekcją Uprawnienia w pakietu Java Development Kit (JDK).
Włączanie ograniczeń związanych z bezpieczeństwem
W Edge for Private Cloud ograniczenia zabezpieczeń 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 Twojej instalacji Edge for Private Cloud, wykonaj te czynności:
- W pierwszym węźle procesora wiadomości otwórz plik.
$APIGEE_ROOT/customer/application/message-processor.propertiesw edytorze. Jeśli plik nie istnieje, utwórz go. - Dodaj do tego pliku ten kod:
conf_security-policy_enable.security.manager=true
- Save the file and ensure the file is owned by the
apigeeuser:chown apigee:apigee $APIGEE_ROOT/customer/application/message-processor.properties
- Ponownie uruchom procesor wiadomości:
apigee-service message-processor restart
- Powtórz te kroki na wszystkich pozostałych procesorach wiadomości.
| Typ uprawnień | Nazwa celu lub działania | Przyznano uprawnienia |
| java.awt.AWTPermission | ||
| accessClipboard | NIE | |
| accessEventQueue | NIE | |
| accessSystemTray | NIE | |
| createRobot | NIE | |
| fullScreenExclusive | NIE | |
| listenToAllAWTEvents | NIE | |
| readDisplayPixels | NIE | |
| replaceKeyboardFocusManager | NIE | |
| setAppletStub | NIE | |
| setWindowsAlwaysOnTop | NIE | |
| showWindowWithoutWarningBanner | NIE | |
| toolkitModality | NIE | |
| watchMousePointer | NIE | |
| java.io.FilePermission Uprawnienia java.io.FilePermission reprezentują dostęp do pliku lub katalogu. Uprawnienia do pliku składa się z nazwy ścieżki i zbioru działań, które są dla niej prawidłowe. |
odczyt | TAK, ale obowiązują ograniczenia. Zobacz Ograniczenia. |
| zapis | NIE | |
| execute | NIE | |
| usuń | NIE | |
| readLink | TAK | |
| java.io.SerializablePermission Element SerializablePermission zawiera nazwę (nazywany też „nazwą docelową”), ale nie lista działań; albo masz nazwane uprawnienie, czy go nie. |
enableSubclassImplementation | TAK |
| enableSubstitution | NIE | |
| java.lang.management.ManagementPermission Metody zdefiniowane w interfejsie zarządzania platformą Java |
kontrola | NIE |
| monitor | NIE | |
| java.lang.reflect.ReflectPermission Do operacji odbicia. ReflectPermission to nazwane uprawnienie i nie ma działania |
suppressAccessChecks | NIE |
| newProxyInPackage.{package name} | NIE | |
| java.lang.RuntimePermission zawiera nazwę (nazywanej też „nazwą celu”), ale nie zawiera listy działań; masz albo lub nie. |
createClassLoader | NIE |
| getClassLoader | TAK | |
| setContextClassLoader | TAK | |
| enableContextClassLoaderOverride | TAK | |
| closeClassLoader | NIE | |
| setSecurityManager | NIE | |
| createSecurityManager | NIE | |
| getenv.{variable name} | NIE | |
| eventVM.{exit status} | NIE | |
| shutdownHooks | NIE | |
| setFactory | NIE | |
| setIO | NIE | |
| modifyThread | TAK | |
| stopThread | TAK | |
| modifyThreadGroup | TAK | |
| getProtectionDomain | TAK | |
| getFileSystemAttributes | NIE | |
| readFileDescriptor | TAK | |
| writeFileDescriptor | NIE | |
| loadLibrary.{library name} | NIE | |
| accessClassInPackage. {nazwa pakietu} | TAK | |
| defineClassInPackage. {nazwa pakietu} | NIE | |
| accessDeclaredMembers | NIE | |
| queuePrintJob | NIE | |
| getStackTrace, | NIE | |
| setDefaultUncaughtExceptionHandler | NIE | |
| preferencje | NIE | |
| usePolicy | NIE | |
| java.net.NetPermission NetPermission zawiera nazwę, ale nie zawiera listy działań. albo masz nazwane uprawnienie lub nie. |
setDefaultAuthenticator | NIE |
| requestPasswordAuthentication | NIE | |
| specifyStreamHandler | TAK | |
| setProxySelector | NIE | |
| getProxySelector | NIE | |
| setCookieHandler | NIE | |
| getCookieHandler | NIE | |
| setResponseCache | NIE | |
| getResponseCache | NIE | |
| getNetworkInformation | NIE | |
| java.net.SocketPermission Reprezentuje dostęp do sieci przez gniazda. Obiekt SocketPermission składa się z hosta specyfikacja oraz zestaw „działań”, i określać sposoby łączenia się z tym hostem. host = (nazwa hosta | adres IP)[:portrange] portrange = numer portu | -numer portu | numer portu [numer_portu] Możliwe sposoby połączenia z hostem: zaakceptuj połącz słuchaj zakończ Sekcja „Słuchaj” Działanie jest ważne tylko wtedy, gdy jest używane z parametrem „localhost”. „Rozwiązanie” (rozwiązanie wyszukiwanie w usłudze nazw hosta/ip) jest domniemane, jeśli jakakolwiek z pozostałych czynności obecnie. |
znaleźć | TAK |
| połącz |
TAK, ale obowiązują ograniczenia. Zobacz Ograniczenia. Apigee ogranicza dostęp do adresów sitelocal, anylocal, loopback i linklocal. |
|
| posłuchaj, zaakceptuj |
NIE | |
| java.net.URLPermission Reprezentuje uprawnienie dostępu do zasobu lub zbioru zasobów zdefiniowanych przez podany adres URL. dla danego zestawu metod konfigurowanych przez użytkownika i nagłówków żądań. Nazwa to ciąg znaków adresu URL. Ciąg działań to połączenie metod żądania. i nagłówki. Zakres nazw metod i nagłówków nie jest ograniczony przez tę klasę. |
TAK | |
| LinkPermission Klasa Permission dla operacji tworzenia połączeń. |
trudny | NIE |
| symboliczne | NIE | |
| java.security.SecurityPermission SecurityPermission zawiera nazwę (nazywany też „nazwą docelową”), ale nie zawiera żadnych działań. lista; albo masz nazwane uprawnienie, czy go nie. Nazwa celu to nazwa parametru konfiguracji zabezpieczeń (patrz poniżej). Obecnie Obiekt SecurityPermission jest używany do zabezpieczania dostępu do zasad, zabezpieczeń, dostawcy, Obiekty sygnatariuszy i tożsamości. |
createAccessControlContext | NIE |
| getDomainCombiner | NIE | |
| getPolicy | NIE | |
| setPolicy | NIE | |
| createPolicy.{policy type} | NIE | |
| getProperty.{key} | NIE | |
| setProperty.{key} | NIE | |
| insertProvider | NIE | |
| removeProvider.{provider name} | NIE | |
| clearProviderProperties.{provider name} | NIE | |
| putProviderProperty.{provider name} | NIE | |
| removeProviderProperty.{provider name} | NIE | |
| SQLPermission | setLog | NIE |
| callAbort | NIE | |
| setSyncFactory | NIE | |
| setNetworkTimeout | NIE | |
| deregisterDriver | NIE | |
| java.util.logging.LoggingPermission SecurityManager sprawdzi obiekt java.util.logging.LoggingPermission, gdy kod za pomocą Menedżera zabezpieczeń wywołuje jedną z metod kontroli logowania (np. Logger.setLevel). |
kontrola | NIE |
| java.util.PropertyPermission Nazwa to nazwa właściwości („java.home”, „os.name” itp.). Konwencja nazewnictwa zgodnie z konwencją nazewnictwa właściwości hierarchicznych. Gwiazdka może też pojawić się w na końcu nazwy, po znaku „.” lub przez samo słowo, aby wskazać dopasowanie z symbolem wieloznacznym. Na przykład: "java.*" lub „*” jest prawidłowy, „*java” lub „a*b” jest nieprawidłowy. Działania, które mają zostać przyznane, są przekazywane do konstruktora w ciągu znaków zawierającego listę nie może zawierać żadnych słów kluczowych rozdzielonych przecinkami. |
odczyt | TAK |
| zapis | NIE | |
|
javax.xml.ws.WebServicePermission
|
publishEndpoint | NIE |
| javax.xml.bind.JAXBPermission | setDatatypeConverter | NIE |
| javax.sound.sampled.AudioPermission Prawa dostępu do zasobów systemu audio. |
odtwórz | NIE |
| nagranie | NIE | |
| javax.security.auth.PrivateCredentialPermission Ochrona dostępu do prywatnych danych uwierzytelniających należących do konkretnego podmiotu. Temat to reprezentowane przez zbiór podmiotów zabezpieczeń. Nazwa docelowa tego uprawnienia określa Nazwa klasy danych logowania i zbiór podmiotów zabezpieczeń. Jedyna prawidłowa wartość uprawnienia czyli „read”. |
CredentialClass {PrincipalClass "PrincipalName"}* | NIE |
| javax.security.auth.kerberos.ServicePermission Chroń usługi Kerberos i dane logowania niezbędne do uzyskiwania dostępu do tych usług. |
zainicjuj | NIE |
| akceptuj | NIE | |
| javax.security.auth.kerberos.DelegationPermission służą do ograniczania użycia modelu przekazywania dostępu Kerberos; tzn. przekazywania i zbliżeniowo biletów. Nazwa docelowa tego uprawnienia określa parę podmiotów zabezpieczeń usługi Kerberos. Pierwszy to podrzędny podmiot zabezpieczeń usługi, któremu powierzono korzystanie z funkcji przyznawania zgłoszeń Bilet (TGT). Drugi podmiot zabezpieczeń usługi wyznacza usługę docelową podrzędną podmiotem zabezpieczeń usługi jest interakcja w imieniu inicjowania KerberosPrincipal. |
zainicjuj | NIE |
| akceptuj | NIE | |
| javax.security.auth.AuthPermission Obecnie obiekt AuthPermission jest używany do ochrony dostępu do tematu, Obiekty SubjectDomainCONNECTr, LoginContext i Configuration (Konfiguracja). |
doAs | NIE |
| doAsPrivileged | NIE | |
| getSubject | NIE | |
| getSubjectFromDomainCombiner | NIE | |
| setReadOnly | NIE | |
| modifyPrincipals | NIE | |
| modifyPublicCredentials | NIE | |
| modifyPrivateCredentials | NIE | |
| refreshCredential | NIE | |
| destroyCredential | NIE | |
| createLoginContext.{name} | NIE | |
| getLoginConfiguration | NIE | |
| setLoginConfiguration | NIE | |
| createLoginConfiguration.{configuration type} | NIE | |
| refreshLoginConfiguration | NIE | |
| javax.net.ssl.SSLPermission |
setHostnameVerifier | NIE |
| getSSLSessionContext | NIE | |
| setDefaultSSLContext | NIE | |
| 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 MBeanServer wymaga, aby uprawnienia elementu wywołującego sugerujące uprawnienia MBeanPermission całą operację. nazwa_klasy_działania#member[nazwa_obiektu] Jeśli masz uprawnienie MBeanPermission, zezwala na operacje tylko wtedy, gdy wszystkie 4 elementy dopasowania. |
addNotificationListener | NIE |
| getAttribute | NIE | |
| getClassLoader | NIE | |
| getClassLoaderFor | NIE | |
| getClassLoaderRepository | NIE | |
| getDomains | NIE | |
| getMBeanInfo | NIE | |
| getObjectInstance | NIE | |
| utworzyć instancję | NIE | |
| wywołać | NIE | |
| isInstanceOf | NIE | |
| queryMBeans | NIE | |
| queryNames | NIE | |
| registerMBean | NIE | |
| removeNotificationListener | NIE | |
| setAttribute | NIE | |
| unregisterMBean | NIE | |
| javax.management.MBeanServerPermission |
createMBeanServer | NIE |
| findMBeanServer | NIE | |
| newMBeanServer | NIE | |
| releaseMBeanServer | NIE | |
| javax.management.MBeanTrustPermission To uprawnienie reprezentuje „zaufanie” w sygnatariuszu lub w bazie kodu. |
zarejestrować się | NIE |
| * | NIE | |
|
javax.management.remote.SubjectDelegationPermission
|
NIE |