জাভা পারমিশন রেফারেন্স

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

Java অনুমতি সংক্রান্ত নীতি সম্পর্কে আপনার যা জানা প্রয়োজন নীতি

আপনি Java কলআউট নীতি ডেভেলপ করলে, Edge JVM-এ কোন অনুমতি নীতি কার্যকর আছে এবং সেগুলি কীভাবে আপনার কোডকে প্রভাবিত করবে তা আপনাকে জানতে হবে। যেমন, আপনার কাস্টম জাভা কোডের ফাইল সিস্টেমে সীমাহীন অ্যাক্সেস নেই। তবে, ফাইল সিস্টেম অ্যাক্সেসের ক্ষেত্রে, আপনি নীতি রিসোর্স ফাইলের মতো নির্দিষ্ট ফাইল পড়তে পারবেন। তবে, অন্যান্য বেশিরভাগ ফাইল সিস্টেম অ্যাক্সেস ব্লক করা আছে। এই বিষয়ে JDK অনুমতির সব ধরন এবং সেগুলির সংশ্লিষ্ট টার্গেট বা অ্যাকশন তালিকাভুক্ত করা আছে। প্রতিটি টার্গেট বা অ্যাকশনের জন্য, আমরা অনুমতির নীতি এবং কোনও ব্যতিক্রম নির্দিষ্ট করি যা আপনাকে জানতে হবে।

JDK অনুমতির ধরন এবং প্রতিটি অনুমতি কী কী করতে দেয় সেই সম্পর্কে আরও জানতে, Java Development Kit (JDK)-এর অনুমতি দেখুন।

নিরাপত্তা সংক্রান্ত বিধিনিষেধ চালু করা

প্রাইভেট ক্লাউডের জন্য Edge-এ, নিরাপত্তা সংক্রান্ত বিধিনিষেধ ডিফল্ট হিসেবে বন্ধ করা থাকে। এর অর্থ হল যে আপনার কাস্টম জাভা কলআউট কোড কোনও বিধিনিষেধ ছাড়াই সব রিসোর্স অ্যাক্সেস করতে পারবে। প্রাইভেট ক্লাউডের জন্য Edge ইনস্টলেশনে নিরাপত্তা সংক্রান্ত বিধিনিষেধ চালু করতে নিচে উল্লেখ করা পদ্ধতি অনুসরণ করুন:

  1. প্রথম মেসেজ প্রসেসর নোডে, এডিটরে $APIGEE_ROOT/customer/application/message-processor.properties ফাইলটি খুলুন। ফাইলটি না থাকলে, এটি তৈরি করুন।
  2. ফাইলে নিম্নলিখিত লাইন যোগ করুন:
    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. মেসেজ প্রসেসর রিস্টার্ট করুন:
    apigee-service message-processor restart
  5. বাকি থাকা সব মেসেজ প্রসেসরের ক্ষেত্রে এই ধাপগুলি অনুসরণ করুন।
অনুমতির ধরন টার্গেট বা অ্যাকশনের নাম অনুমতি মঞ্জুর করা হয়েছে
java.awt.AWTPermission
accessClipboard না
accessEventQueue না
accessSystemTray না
createRobot না
fullScreenExclusive না
listenToAllAWTEvents না
readDisplayPixels না
replaceKeyboardFocusManager না
setAppletStub না
setWindowsAlwaysOnTop না
showWindowWithoutWarningBanner না
toolkitModality না
watchMousePointer না
java.io.FilePermission

java.io.FilePermission কোনও ফাইল বা ডিরেক্টরি অ্যাক্সেস করার অনুমতিকে বোঝায়। FilePermission -এ একটি পাথনেম ও সেই পাথনেমের জন্য উপযুক্ত অ্যাকশনের সেট থাকে।
পড়ুন হ্যাঁ, তবে বিধিনিষেধ প্রযোজ্য। বিধিনিষেধ দেখুন।
কিছু লিখতে না
এক্সিকিউট করা না
মুছুন না
readLink হ্যাঁ
java.io.SerializablePermission

SerializablePermission-এ একটি নাম (এটি "টার্গেট নাম" নামেও পরিচিত) থাকে, কিন্তু কোনও অ্যাকশন তালিকা থাকে না; আপনার কাছে হয় নামের অনুমতি থাকে, নয়তো থাকে না।
enableSubclassImplementation হ্যাঁ
enableSubstitution না
java.lang.management.ManagementPermission

Java প্ল্যাটফর্মের জন্য ম্যানেজমেন্ট ইন্টারফেসে সংজ্ঞায়িত পদ্ধতি
নিয়ন্ত্রণ না
মনিটর না
java.lang.reflect.ReflectPermission

রিফ্লেক্টিভ অপারেশনের জন্য। ReflectPermission হল একটি নামযুক্ত অনুমতি এবং এতে কোনও অ্যাকশন থাকে না
suppressAccessChecks না
newProxyInPackage.{package name} না
java.lang.RuntimePermission

নাম (এছাড়াও "টার্গেট নাম" হিসেবে উল্লেখ করা হয়) থাকলেও অ্যাকশনের তালিকা নেই; আপনার কাছে নামযুক্ত অনুমতি আছে অথবা নেই।
createClassLoader না
getClassLoader হ্যাঁ
setContextClassLoader হ্যাঁ
enableContextClassLoaderOverride হ্যাঁ
closeClassLoader না
setSecurityManager না
createSecurityManager না
getenv.{variable name} না
exitVM.{exit status} না
shutdownHooks না
setFactory না
setIO না
modifyThread হ্যাঁ
stopThread হ্যাঁ
modifyThreadGroup হ্যাঁ
getProtectionDomain হ্যাঁ
getFileSystemAttributes না
readFileDescriptor হ্যাঁ
writeFileDescriptor না
loadLibrary.{library name} না
accessClassInPackage. {package name} হ্যাঁ
defineClassInPackage. {package name} না
accessDeclaredMembers না
queuePrintJob না
getStackTrace না
setDefaultUncaughtExceptionHandler না
পছন্দ না
usePolicy না
java.net.NetPermission

NetPermission-এ একটি নাম আছে কিন্তু কোনও অ্যাকশন তালিকা নেই; আপনার কাছে হয় নামের অনুমতি আছে অথবা নেই।
setDefaultAuthenticator না
requestPasswordAuthentication না
specifyStreamHandler হ্যাঁ
setProxySelector না
getProxySelector না
setCookieHandler না
getCookieHandler না
setResponseCache না
getResponseCache না
getNetworkInformation না
java.net.SocketPermission

সকেটের মাধ্যমে নেটওয়ার্কে অ্যাক্সেসকে বোঝায়। SocketPermission-এ একটি হোস্ট স্পেসিফিকেশন এবং সেই হোস্টের সাথে কানেক্ট করার উপায় নির্দিষ্ট করা "অ্যাকশন"-এর একটি সেট থাকে।
host = (hostname | IPaddress)[:portrange]
portrange = portnumber | -portnumber | portnumber-[portnumber]

হোস্টের সাথে কানেক্ট করার সম্ভাব্য উপায়গুলি হল

accept
connect
listen
resolve

"localhost"-এর সাথে ব্যবহার করা হলেই "listen" অ্যাকশন অর্থপূর্ণ হয়। অন্যান্য অ্যাকশনের মধ্যে কোনও একটি অ্যাকশন উপস্থিত থাকলে, "সমাধান করুন" (সমাধান করুন হোস্ট/আইপি নেম সার্ভিস লুক-আপ) অ্যাকশনটি ধরে নেওয়া হয়।
সমাধান করা হ্যাঁ
কানেক্ট করা

হ্যাঁ, তবে বিধিনিষেধ প্রযোজ্য। বিধিনিষেধ দেখুন।

Apigee, sitelocal, anylocal, loopback এবং linklocal অ্যাড্রেসে অ্যাক্সেস সীমাবদ্ধ করে।

শুনুন,
সম্মতি জানান
না
java.net.URLPermission

প্রদত্ত URL-এর মাধ্যমে সংজ্ঞায়িত রিসোর্স বা রিসোর্সের সেট অ্যাক্সেস করার অনুমতিকে বোঝায় এবং ব্যবহারকারীর সেট করা অনুরোধ পদ্ধতি ও অনুরোধ হেডারগুলির প্রদত্ত সেটের জন্য। অনুমতির নাম হল URL স্ট্রিং। অ্যাকশন স্ট্রিং হল অনুরোধের পদ্ধতি ও হেডারের কনক্যাটেনেশন। এই ক্লাসের মাধ্যমে পদ্ধতি ও হেডার নামের রেঞ্জ সীমাবদ্ধ করা হয় না।
হ্যাঁ
LinkPermission

লিঙ্ক তৈরি করার অপারেশনের জন্য অনুমতি ক্লাস।
কঠিন না
প্রতীকী না
java.security.SecurityPermission

SecurityPermission-এ একটি নাম (এছাড়াও "টার্গেট নাম" হিসেবে উল্লেখ করা হয়) থাকে, কিন্তু কোনও অ্যাকশন তালিকা থাকে না; আপনার কাছে হয় নামের অনুমতি থাকে, নয়তো থাকে না।
টার্গেটের নাম হল নিরাপত্তা কনফিগারেশন প্যারামিটারের নাম (নিচে দেখুন)। বর্তমানে নীতি, নিরাপত্তা, প্রদানকারী, স্বাক্ষরকারী ও পরিচয় অবজেক্টে অ্যাক্সেস সুরক্ষিত রাখতে SecurityPermission অবজেক্ট ব্যবহার করা হয়।
createAccessControlContext না
getDomainCombiner না
getPolicy না
setPolicy না
createPolicy.{policy type} না
getProperty.{key} না
setProperty.{key} না
insertProvider না
removeProvider.{provider name} না
clearProviderProperties.{provider name} না
putProviderProperty.{provider name} না
removeProviderProperty.{provider name} না
SQLPermission setLog না
callAbort না
setSyncFactory না
setNetworkTimeout না
deregisterDriver না
java.util.logging.LoggingPermission

SecurityManager সহ কোড চলমান অবস্থায় SecurityManager লগিং কন্ট্রোল পদ্ধতিগুলির (যেমন Logger.setLevel) কোনও একটিকে কল করলে, java.util.logging.LoggingPermission অবজেক্ট চেক করবে।
নিয়ন্ত্রণ না
java.util.PropertyPermission
নামটি হল প্রপার্টির নাম ("java.home", "os.name" ইত্যাদি)। নামকরণ সংক্রান্ত নিয়ম ক্রমোচ্চ প্রপার্টির নামকরণ সংক্রান্ত নিয়ম মেনে চলে। এছাড়াও, ওয়াইল্ডকার্ড ম্যাচ বোঝাতে নামের শেষে "." চিহ্নের পরে অথবা একা একটি অ্যাস্টেরিস্ক দেখা যেতে পারে। যেমন: "java.*" বা "*" হল সঠিক, "*java" বা "a*b" হল বেঠিক।

অনুমোদন করতে হবে এমন অ্যাকশনগুলি কনস্ট্রাক্টরের কাছে একটি স্ট্রিংয়ে পাস করা হয়, এতে কমা-সেপারেটেড কীওয়ার্ডের শূন্য বা তার বেশি আইটেমের তালিকা থাকে।
পড়ুন হ্যাঁ
কিছু লিখতে না
javax.xml.ws.WebServicePermission
publishEndpoint না
javax.xml.bind.JAXBPermission setDatatypeConverter না
javax.sound.sampled.AudioPermission

অডিও সিস্টেম রিসোর্সে অ্যাক্সেস করার অধিকার।
প্লে করুন না
রেকর্ড না
javax.security.auth.PrivateCredentialPermission

কোনও নির্দিষ্ট সাবজেক্টের ব্যক্তিগত ক্রেডেনশিয়াল অ্যাক্সেস সুরক্ষিত করে। সাবজেক্টকে একগুচ্ছ নীতি দ্বারা উপস্থাপন করা হয়। এই অনুমতির টার্গেটের নামে ক্রেডেনশিয়াল ক্লাস নেম এবং প্রিন্সিপালের সেট উল্লেখ করা থাকে। এই অনুমতির অ্যাকশনের একমাত্র সঠিক মান হল, "read"।
CredentialClass {PrincipalClass "PrincipalName"}* না
javax.security.auth.kerberos.ServicePermission

কেরবেরস পরিষেবা এবং সেইসব পরিষেবা অ্যাক্সেস করার জন্য প্রয়োজনীয় ক্রেডেনশিয়াল সুরক্ষিত করে।
চালু না
সম্মতি জানান না
javax.security.auth.kerberos.DelegationPermission

কেরবেরস ডেলিগেশন মডেলের ব্যবহার সীমাবদ্ধ করতে ব্যবহৃত হয়; অর্থাৎ, ফরওয়ার্ড করা যায় ও প্রক্সি করা যায় এমন টিকিট।

এই অনুমতির টার্গেট নামের মধ্যে কেরবেরস সার্ভিস প্রিন্সিপালের একটি পেয়ার নির্দিষ্ট করা থাকে। প্রথমটি হল সাবঅর্ডিনেট সার্ভিস প্রিন্সিপাল যাকে টিকিট গ্রান্টিং টিকিট (TGT) ব্যবহার করার জন্য বিশ্বাস করা হয়। দ্বিতীয় পরিষেবা প্রিন্সিপালটি সেই টার্গেট পরিষেবাটিকে নির্ধারণ করে যার সাথে সাবঅর্ডিনেট পরিষেবা প্রিন্সিপালটি ইনিশিয়েটিং KerberosPrincipal-এর হয়ে ইন্টার‍্যাক্ট করবে।
চালু না
সম্মতি জানান না
javax.security.auth.AuthPermission

বর্তমানে, Subject, SubjectDomainCombiner, LoginContext এবং Configuration অবজেক্টে অ্যাক্সেস সুরক্ষিত করতে AuthPermission অবজেক্ট ব্যবহার করা হয়।
doAs না
doAsPrivileged না
getSubject না
getSubjectFromDomainCombiner না
setReadOnly না
modifyPrincipals না
modifyPublicCredentials না
modifyPrivateCredentials না
refreshCredential না
destroyCredential না
createLoginContext.{name} না
getLoginConfiguration না
setLoginConfiguration না
createLoginConfiguration.{configuration type} না
refreshLoginConfiguration না
javax.net.ssl.SSLPermission
setHostnameVerifier না
getSSLSessionContext না
setDefaultSSLContext না
javax.management.MBeanPermission

MBeanServer অপারেশনে অ্যাক্সেস কন্ট্রোল করার অনুমতি। System.setSecurityManager(java.lang.SecurityManager) ব্যবহার করে কোনও নিরাপত্তা ম্যানেজার সেট করা হলে, MBeanServer-এ বেশিরভাগ অপারেশন করার জন্য কলকারীর অনুমতিতে অপারেশনের জন্য উপযুক্ত MBeanPermission থাকতে হবে।

action className#member[objectName]

আপনার কাছে MBeanPermission থাকলে, এটি তখনই অপারেশন করার অনুমতি দেয় যখন চারটি আইটেমই ম্যাচ করে।
addNotificationListener না
getAttribute না
getClassLoader না
getClassLoaderFor না
getClassLoaderRepository না
getDomains না
getMBeanInfo না
getObjectInstance না
ইনস্ট্যান্টিয়েট করা না
ইনভোক করা না
isInstanceOf না
queryMBeans না
queryNames না
registerMBean না
removeNotificationListener না
setAttribute না
unregisterMBean না
javax.management.MBeanServerPermission
createMBeanServer না
findMBeanServer না
newMBeanServer না
releaseMBeanServer না
javax.management.MBeanTrustPermission

এই অনুমতি কোনও স্বাক্ষরকারী বা কোডবেসের "বিশ্বাস" দেখায়।
রেজিস্টার না
* না
javax.management.remote.SubjectDelegationPermission
না