Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về
Apigee X. thông tin
Những điều bạn cần biết về chính sách quyền trong Java
Nếu đang phát triển các chính sách Chú thích Java, bạn cần biết những chính sách quyền nào đang có hiệu lực trong Edge JVM và ảnh hưởng của các chính sách đó đến mã của bạn. Ví dụ: mã Java tuỳ chỉnh của bạn không có quyền truy cập không giới hạn vào hệ thống tệp. Tuy nhiên, trong trường hợp có quyền truy cập vào hệ thống tệp, bạn có thể đọc một số tệp nhất định, chẳng hạn như tệp tài nguyên về chính sách. Tuy nhiên, hầu hết các quyền truy cập vào hệ thống tệp khác đều bị chặn. Chủ đề này liệt kê tất cả các loại quyền JDK và các mục tiêu hoặc hành động tương ứng. Đối với mỗi mục tiêu hoặc hành động, chúng tôi nêu rõ chính sách cấp quyền và mọi trường hợp ngoại lệ mà bạn cần biết.
Để tìm hiểu thêm về các loại quyền JDK và quyền của từng quyền, hãy xem nội dung Các quyền trong Bộ phát triển Java (JDK).
Bật các hạn chế bảo mật
Trong Edge dành cho đám mây riêng tư, các giới hạn bảo mật sẽ bị tắt theo mặc định. Điều này có nghĩa là mã chú thích Java tuỳ chỉnh của bạn có thể truy cập vào tất cả tài nguyên mà không có hạn chế. Để bật tính năng hạn chế bảo mật trong quá trình cài đặt Edge cho Đám mây riêng tư, hãy làm theo quy trình bên dưới:
- Trên nút Bộ xử lý thông báo đầu tiên, hãy mở tệp
$APIGEE_ROOT/customer/application/message-processor.properties
trong một trình chỉnh sửa. Nếu tệp không tồn tại, hãy tạo tệp. - Thêm dòng sau vào tệp:
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
- Khởi động lại bộ xử lý thư:
apigee-service message-processor restart
- Lặp lại các bước này trên tất cả Bộ xử lý thư còn lại.
Loại quyền | Tên mục tiêu hoặc tên hành động | Đã cấp quyền |
java.awt.AWTPermission | ||
accessClipboard | KHÔNG NÊN | |
accessEventQueue | KHÔNG NÊN | |
accessSystemTray | KHÔNG NÊN | |
createRobot | KHÔNG NÊN | |
fullScreenExclusive | KHÔNG NÊN | |
listenToAllAWTEvents | KHÔNG NÊN | |
readDisplayPixels | KHÔNG NÊN | |
replaceKeyboardFocusManager | KHÔNG NÊN | |
setAppletStub | KHÔNG NÊN | |
setWindowsAlwaysOnTop | KHÔNG NÊN | |
showWindowWithoutWarningBanner | KHÔNG NÊN | |
toolkitModality | KHÔNG NÊN | |
watchMousePointer | KHÔNG NÊN | |
java.io.FilePermission java.io.FilePermission biểu thị quyền truy cập vào một tệp hoặc thư mục. FilePermission bao gồm một tên đường dẫn và một tập hợp các thao tác hợp lệ với tên đường dẫn đó. |
đọc | CÓ nhưng có áp dụng hạn chế. Hãy xem phần Hạn chế. |
ghi | KHÔNG NÊN | |
execute | KHÔNG NÊN | |
xóa | KHÔNG NÊN | |
readLink | NÊN | |
java.io.SerializablePermission SerializablePermission chứa tên (còn được gọi là "tên mục tiêu") nhưng không có danh sách hành động; bạn có quyền được đặt tên hoặc bạn không có. |
enableSubclassImplementation | NÊN |
enableSubstitution | KHÔNG NÊN | |
java.lang.management.ManagementPermission Các phương thức được xác định trong giao diện quản lý dành cho nền tảng Java |
kiểm soát | KHÔNG NÊN |
giám sát | KHÔNG NÊN | |
java.lang.reflect.ReflectPermission Đối với các thao tác phản ánh. ReflectPermission là một quyền được đặt tên và không có hành động nào |
suppressAccessChecks | KHÔNG NÊN |
newProxyInPackage.{tên gói} | KHÔNG NÊN | |
java.lang.RuntimePermission Chứa tên (còn được gọi là "tên mục tiêu") nhưng không có danh sách hành động; bạn có quyền đã đặt tên hoặc bạn không có. |
createClassLoader | KHÔNG NÊN |
getClassLoader | NÊN | |
setContextClassLoader | NÊN | |
enableContextClassLoaderOverride | NÊN | |
closeClassLoader | KHÔNG NÊN | |
setSecurityManager | KHÔNG NÊN | |
createSecurityManager | KHÔNG NÊN | |
getenv.{tên biến} | KHÔNG NÊN | |
exitVM.{exit status} | KHÔNG NÊN | |
shutdownHooks | KHÔNG NÊN | |
setFactory | KHÔNG NÊN | |
setIO | KHÔNG NÊN | |
modifyThread | NÊN | |
stopThread | NÊN | |
modifyThreadGroup | NÊN | |
getProtectionDomain | NÊN | |
getFileSystemAttributes | KHÔNG NÊN | |
readFileDescriptor | NÊN | |
writeFileDescriptor | KHÔNG NÊN | |
loadLibrary.{library name} (tên thư viện) | KHÔNG NÊN | |
accessClassInPackage. {tên gói} | NÊN | |
validationClassInPackage. {tên gói} | KHÔNG NÊN | |
accessDeclaredMembers | KHÔNG NÊN | |
queuePrintJob | KHÔNG NÊN | |
getStackTrace | KHÔNG NÊN | |
setDefaultUncaughtExceptionHandler | KHÔNG NÊN | |
tùy chọn | KHÔNG NÊN | |
usePolicy | KHÔNG NÊN | |
java.net.NetPermission NetPermission chứa tên nhưng không có danh sách hành động; bạn có quyền được đặt tên hoặc bạn không có. |
setDefaultAuthenticator | KHÔNG NÊN |
requestPasswordAuthentication | KHÔNG NÊN | |
specifyStreamHandler | NÊN | |
setProxySelector | KHÔNG NÊN | |
getProxySelector | KHÔNG NÊN | |
setCookieHandler | KHÔNG NÊN | |
getCookieHandler | KHÔNG NÊN | |
setResponseCache | KHÔNG NÊN | |
getResponseCache | KHÔNG NÊN | |
getNetworkInformation | KHÔNG NÊN | |
java.net.SocketPermission Biểu thị quyền truy cập vào mạng thông qua ổ cắm. SocketPermission bao gồm thông số kỹ thuật của máy chủ lưu trữ và một tập hợp các "thao tác" để chỉ định cách kết nối với máy chủ lưu trữ đó. host = (tên máy chủ | địa chỉ IP)[:portrange] cổng = số cổng | -portnumber | cổng số-[portnumber] Các cách kết nối với máy chủ lưu trữ là chấp nhận kết nối nghe phân giải Thao tác "nghe" chỉ có ý nghĩa khi được dùng với "máy chủ cục bộ". Thao tác "resolve" (giải quyết việc tra cứu dịch vụ tên máy chủ lưu trữ/ip) được ngụ ý khi có bất kỳ thao tác nào khác. |
resolve | NÊN |
connect |
CÓ nhưng có áp dụng hạn chế. Hãy xem phần Hạn chế. Apigee hạn chế quyền truy cập vào các địa chỉ sitelocal, bất kỳđịa phương nào, loopback và linklocal. |
|
nghe, chấp nhận |
KHÔNG NÊN | |
java.net.URLPermission Biểu thị quyền truy cập vào một tài nguyên hoặc nhóm tài nguyên được xác định bởi một URL nhất định và cho một tập hợp các phương thức yêu cầu có thể thiết lập cho người dùng và các tiêu đề của yêu cầu. Tên của quyền là chuỗi URL. Chuỗi hành động là sự nối các phương thức yêu cầu và tiêu đề. Lớp này không hạn chế phạm vi của các tên tiêu đề và phương thức. |
NÊN | |
LinkPermission Lớp Quyền cho các thao tác tạo mối liên kết. |
khó | KHÔNG NÊN |
tượng trưng | KHÔNG NÊN | |
java.security.SecurityPermission SecurityPermission chứa tên (còn được gọi là "tên mục tiêu") nhưng không có danh sách hành động; bạn có quyền đã đặt tên hoặc bạn không có. Tên mục tiêu là tên của một thông số cấu hình bảo mật (xem bên dưới). Hiện tại, đối tượng SecurityPermission được dùng để bảo vệ quyền truy cập vào các đối tượng Chính sách, Bảo mật, Nhà cung cấp, Người ký và Danh tính. |
createAccessControlContext | KHÔNG NÊN |
getDomainCombiner | KHÔNG NÊN | |
getPolicy | KHÔNG NÊN | |
setPolicy | KHÔNG NÊN | |
createPolicy.{policy type} | KHÔNG NÊN | |
getProperty.{key} | KHÔNG NÊN | |
setProperty.{key} | KHÔNG NÊN | |
insertProvider | KHÔNG NÊN | |
removeProvider.{tên nhà cung cấp} | KHÔNG NÊN | |
clearProviderProperties.{tên nhà cung cấp} | KHÔNG NÊN | |
PutProviderProperty.{tên nhà cung cấp} | KHÔNG NÊN | |
removeProviderProperty.{tên nhà cung cấp} | KHÔNG NÊN | |
SQLPermission | setLog | KHÔNG NÊN |
callAbort | KHÔNG NÊN | |
setSyncFactory | KHÔNG NÊN | |
setNetworkTimeout | KHÔNG NÊN | |
deregisterDriver | KHÔNG NÊN | |
java.util.logging.LoggingPermission SecurityManager sẽ kiểm tra đối tượng java.util.logging.LoggingPermission khi mã chạy bằng SecurityManager gọi một trong các phương thức kiểm soát việc ghi nhật ký (chẳng hạn như Logger.setLevel). |
kiểm soát | KHÔNG NÊN |
java.util.PropertyPermission Tên là tên của thuộc tính ("java.home", "os.name", v.v.). Quy ước đặt tên tuân theo quy ước đặt tên thuộc tính phân cấp. Ngoài ra, dấu hoa thị có thể xuất hiện ở cuối tên, theo sau dấu "." hoặc đứng riêng lẻ để biểu thị kiểu khớp ký tự đại diện. Ví dụ: "java.*" hoặc "*" là hợp lệ, "*java" hoặc "a*b" không hợp lệ. Các thao tác sẽ được chuyển đến hàm khởi tạo trong một chuỗi chứa danh sách 0 hoặc nhiều từ khoá được phân tách bằng dấu phẩy. |
đọc | NÊN |
ghi | KHÔNG NÊN | |
javax.xml.ws.WebServicePermission
|
publishEndpoint | KHÔNG NÊN |
javax.xml.bind.JAXBPermission | setDatatypeConverter | KHÔNG NÊN |
javax.audio.sampled.AudioPermission Truy cập quyền vào tài nguyên của hệ thống âm thanh. |
phát | KHÔNG NÊN |
kỷ lục | KHÔNG NÊN | |
javax.security.auth.PrivacyCredentialPermission Bảo vệ quyền truy cập vào Thông tin xác thực riêng tư thuộc về một Chủ đề cụ thể. Đối tượng do một nhóm Hiệu trưởng đại diện. Tên mục tiêu của Quyền này chỉ định tên lớp thông tin xác thực và một bộ Hiệu trưởng. Giá trị hợp lệ duy nhất cho các thao tác của Quyền này là "đọc". |
Lớp thông tin xác thực {PrincipalClass "PrincipalName"}* | KHÔNG NÊN |
javax.security.auth.kerberos.ServicePermission Bảo vệ các dịch vụ Kerberos và thông tin xác thực cần thiết để truy cập vào các dịch vụ đó. |
initiate | KHÔNG NÊN |
chấp nhận | KHÔNG NÊN | |
javax.security.auth.kerberos.DelegationPermission Dùng để hạn chế việc sử dụng mô hình uỷ quyền Kerberos; tức là các vé có thể chuyển tiếp và proxy. Tên mục tiêu của Quyền này chỉ định một cặp chính của dịch vụ kerberos. Nội dung thứ nhất là người uỷ nhiệm dịch vụ cấp dưới được uỷ thác để sử dụng Phiếu cấp vé (TGT). Dịch vụ chính thứ hai chỉ định dịch vụ mục tiêu mà dịch vụ chính thứ cấp sẽ tương tác thay mặt cho KerberosPrincipal đã khởi tạo. |
initiate | KHÔNG NÊN |
chấp nhận | KHÔNG NÊN | |
javax.security.auth.AuthPermission Hiện tại, đối tượng AuthPermission được dùng để bảo vệ quyền truy cập vào các đối tượng Chủ đề, Chủ đề, Chủ thể kết hợp, Đăng nhập và Cấu hình. |
doAs | KHÔNG NÊN |
doAsPrivileged | KHÔNG NÊN | |
getSubject | KHÔNG NÊN | |
getSubjectFromDomainCombiner | KHÔNG NÊN | |
setReadOnly | KHÔNG NÊN | |
modifyPrincipals | KHÔNG NÊN | |
modifyPublicCredentials | KHÔNG NÊN | |
modifyPrivateCredentials | KHÔNG NÊN | |
refreshCredential | KHÔNG NÊN | |
destroyCredential | KHÔNG NÊN | |
createLoginContext.{name} | KHÔNG NÊN | |
getLoginConfiguration | KHÔNG NÊN | |
setLoginConfiguration | KHÔNG NÊN | |
createLoginConfiguration.{Configuration type} (Loại cấu hình) | KHÔNG NÊN | |
refreshLoginConfiguration | KHÔNG NÊN | |
javax.net.ssl.SSLPermission |
setHostnameVerifier | KHÔNG NÊN |
getSSLSessionContext | KHÔNG NÊN | |
setDefaultSSLContext | KHÔNG NÊN | |
javax.management.MBeanPermission Kiểm soát quyền kiểm soát quyền truy cập vào các hoạt động của MBeanServer. Nếu một trình quản lý bảo mật được thiết lập bằng System.setSecurityManager(java.lang.SecurityManager), thì hầu hết các thao tác trên MBeanServer đều yêu cầu quyền của phương thức gọi bao hàm một MBeanPermission phù hợp với thao tác đó. action className#member[objectName] Nếu bạn có một MBeanPermission, nó chỉ cho phép thực hiện các thao tác khi cả bốn mục khớp. |
addNotificationListener | KHÔNG NÊN |
getAttribute | KHÔNG NÊN | |
getClassLoader | KHÔNG NÊN | |
getClassLoaderFor | KHÔNG NÊN | |
getClassLoaderRepository | KHÔNG NÊN | |
getDomains | KHÔNG NÊN | |
getMBeanInfo | KHÔNG NÊN | |
getObjectInstance | KHÔNG NÊN | |
tạo bản sao | KHÔNG NÊN | |
gọi | KHÔNG NÊN | |
isInstanceOf | KHÔNG NÊN | |
queryMBeans | KHÔNG NÊN | |
queryNames | KHÔNG NÊN | |
registerMBean | KHÔNG NÊN | |
removeNotificationListener | KHÔNG NÊN | |
setAttribute | KHÔNG NÊN | |
unregisterMBean | KHÔNG NÊN | |
javax.management.MBeanServerPermission |
createMBeanServer | KHÔNG NÊN |
findMBeanServer | KHÔNG NÊN | |
newMBeanServer | KHÔNG NÊN | |
releaseMBeanServer | KHÔNG NÊN | |
javax.management.MBeanTrustPermission Quyền này thể hiện sự "tin cậy" trong một trình ký hoặc cơ sở mã. |
register | KHÔNG NÊN |
* | KHÔNG NÊN | |
javax.management.remote.SubjectDelegationPermission
|
KHÔNG NÊN |