Dokumentacja uprawnień w języku Java

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:

  1. 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.
  2. Dodaj do pliku ten wiersz:
    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. Ponownie uruchom procesor wiadomości:
    apigee-service message-processor restart
  5. 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