আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
জাভা পারমিশন পলিসি সম্পর্কে আপনার যা জানা প্রয়োজন
আপনি যদি জাভা কলআউট পলিসি তৈরি করেন, তাহলে আপনাকে জানতে হবে এজ জেভিএম-এ কোন পারমিশন পলিসিগুলো কার্যকর আছে এবং সেগুলো আপনার কোডকে কীভাবে প্রভাবিত করবে। উদাহরণস্বরূপ, আপনার কাস্টম জাভা কোডের ফাইল সিস্টেমে সীমাহীন অ্যাক্সেস নেই। তবে, ফাইল সিস্টেম অ্যাক্সেসের ক্ষেত্রে, আপনি পলিসি রিসোর্স ফাইলের মতো নির্দিষ্ট কিছু ফাইল পড়তে পারেন। কিন্তু ফাইল সিস্টেমের অন্য বেশিরভাগ অ্যাক্সেস ব্লক করা থাকে। এই টপিকে জেডিকে-এর সমস্ত পারমিশন টাইপ এবং তাদের নিজ নিজ টার্গেট বা অ্যাকশন তালিকাভুক্ত করা হয়েছে। প্রতিটি টার্গেট বা অ্যাকশনের জন্য, আমরা পারমিশন পলিসি এবং আপনার জানার প্রয়োজন এমন যেকোনো ব্যতিক্রম উল্লেখ করেছি।
JDK পারমিশনের প্রকারভেদ এবং প্রতিটি পারমিশন কী কাজ করে সে সম্পর্কে আরও জানতে, Java Development Kit (JDK)-এর পারমিশনসমূহ দেখুন।
নিরাপত্তা বিধিনিষেধ সক্রিয় করা
Edge for Private Cloud-এ নিরাপত্তা বিধিনিষেধ ডিফল্টরূপে নিষ্ক্রিয় থাকে। এর মানে হলো, আপনার কাস্টম জাভা কলআউট কোড কোনো বিধিনিষেধ ছাড়াই সমস্ত রিসোর্স অ্যাক্সেস করতে পারে। আপনার Edge for Private Cloud ইনস্টলেশনে নিরাপত্তা বিধিনিষেধ সক্রিয় করতে, নিচের পদ্ধতি অনুসরণ করুন:
- প্রথম মেসেজ প্রসেসর নোডে,
$APIGEE_ROOT/customer/application/message-processor.propertiesফাইলটি একটি এডিটরে খুলুন। ফাইলটি না থাকলে, এটি তৈরি করুন। - ফাইলটিতে নিম্নলিখিত লাইনটি যোগ করুন:
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
- মেসেজ প্রসেসরটি পুনরায় চালু করুন:
apigee-service message-processor restart
- বাকি সমস্ত মেসেজ প্রসেসরগুলিতে এই ধাপগুলি পুনরাবৃত্তি করুন।
| অনুমতির ধরণ | লক্ষ্য বা কর্মের নাম | অনুমতি দেওয়া হয়েছে |
| java.awt.AWTPermission | ||
| অ্যাক্সেসক্লিপবোর্ড | না | |
| অ্যাক্সেসইভেন্টকিউ | না | |
| অ্যাক্সেস সিস্টেম ট্রে | না | |
| ক্রিয়েটরোবট | না | |
| ফুলস্ক্রিনএক্সক্লুসিভ | না | |
| listenToAllAWTEvents | না | |
| readDisplayPixels | না | |
| রিপ্লেসকিবোর্ডফোকাসম্যানেজার | না | |
| সেটঅ্যাপলেটস্টাব | না | |
| setWindowsAlwaysOnTop | না | |
| সতর্কীকরণ ব্যানার ছাড়া উইন্ডো দেখান | না | |
| টুলকিট মোডালিটি | না | |
| ওয়াচমাউসপয়েন্টার | না | |
| java.io.FilePermission একটি java.io.FilePermission কোনো ফাইল বা ডিরেক্টরিতে প্রবেশাধিকার বোঝায়। একটি FilePermission-এ একটি পাথনেম এবং সেই পাথনেমের জন্য বৈধ একগুচ্ছ অ্যাকশন থাকে। | পড়ুন | হ্যাঁ, তবে কিছু বিধিনিষেধ প্রযোজ্য। বিধিনিষেধ দেখুন। |
| লিখুন | না | |
| কার্যকর করা | না | |
| মুছে ফেলুন | না | |
| রিডলিঙ্ক | হ্যাঁ | |
| java.io.SerializablePermission একটি SerializablePermission-এ একটি নাম (যাকে "টার্গেট নেম"ও বলা হয়) থাকে, কিন্তু কোনো অ্যাকশন তালিকা থাকে না; আপনার হয় নির্দিষ্ট নামের পারমিশনটি থাকে, অথবা থাকে না। | সাবক্লাস বাস্তবায়ন সক্ষম করুন | হ্যাঁ |
| প্রতিস্থাপন সক্ষম করুন | না | |
| java.lang.management.ManagementPermission জাভা প্ল্যাটফর্মের জন্য ম্যানেজমেন্ট ইন্টারফেসে সংজ্ঞায়িত পদ্ধতিগুলি | নিয়ন্ত্রণ | না |
| মনিটর | না | |
| java.lang.reflect.ReflectPermission রিফ্লেক্টিভ অপারেশনের জন্য। একটি ReflectPermission হলো একটি নামযুক্ত পারমিশন এবং এর কোনো অ্যাকশন নেই। | অ্যাক্সেস চেক দমন করুন | না |
| newProxyInPackage.{প্যাকেজের নাম} | না | |
| java.lang.RuntimePermission এতে একটি নাম (যাকে 'টার্গেট নেম'ও বলা হয়) থাকে, কিন্তু কোনো অ্যাকশন তালিকা থাকে না; আপনার হয় নির্দিষ্ট নামের পারমিশনটি আছে, অথবা নেই। | createClassLoader | না |
| getClassLoader | হ্যাঁ | |
| setContextClassLoader | হ্যাঁ | |
| enableContextClassLoaderOverride | হ্যাঁ | |
| closeClassLoader | না | |
| নিরাপত্তা ব্যবস্থাপক সেট করুন | না | |
| নিরাপত্তা ব্যবস্থাপক তৈরি করুন | না | |
| getenv.{ভেরিয়েবলের নাম} | না | |
| exitVM.{প্রস্থান স্থিতি} | না | |
| শাটডাউনহুকস | না | |
| সেটফ্যাক্টরি | না | |
| setIO | না | |
| থ্রেড পরিবর্তন করুন | হ্যাঁ | |
| থ্রেড বন্ধ করুন | হ্যাঁ | |
| থ্রেড গ্রুপ পরিবর্তন করুন | হ্যাঁ | |
| getProtectionDomain | হ্যাঁ | |
| ফাইলসিস্টেম অ্যাট্রিবিউট পান | না | |
| readFileDescriptor | হ্যাঁ | |
| ফাইল বর্ণনাকারী লিখুন | না | |
| লোডলাইব্রেরি.{লাইব্রেরির নাম} | না | |
| প্যাকেজে অ্যাক্সেস ক্লাস। {প্যাকেজের নাম} | হ্যাঁ | |
| defineClassInPackage. {প্যাকেজের নাম} | না | |
| অ্যাক্সেস ডিক্লেয়ার্ড মেম্বারস | না | |
| কিউপ্রিন্টজব | না | |
| স্ট্যাক ট্রেস পান | না | |
| setDefaultUncaughtExceptionHandler | না | |
| পছন্দ | না | |
| ব্যবহার নীতি | না | |
| java.net.NetPermission একটি নেটপারমিশনে একটি নাম থাকে কিন্তু কোনো অ্যাকশন তালিকা থাকে না; আপনার হয় সেই নির্দিষ্ট পারমিশনটি থাকে, অথবা থাকে না। | ডিফল্ট প্রমাণীকরণ সেট করুন | না |
| পাসওয়ার্ড প্রমাণীকরণের অনুরোধ | না | |
| স্ট্রিমহ্যান্ডলার নির্দিষ্ট করুন | হ্যাঁ | |
| সেটপ্রক্সি সিলেক্টর | না | |
| getProxySelector | না | |
| কুকি হ্যান্ডলার সেট করুন | না | |
| কুকি হ্যান্ডলার পান | না | |
| রেসপন্সক্যাশ সেট করুন | না | |
| getResponseCache | না | |
| নেটওয়ার্ক তথ্য পান | না | |
| java.net.SocketPermission সকেটের মাধ্যমে কোনো নেটওয়ার্কে প্রবেশের সুযোগকে বোঝায়। একটি সকেটপারমিশন একটি হোস্ট স্পেসিফিকেশন এবং সেই হোস্টে সংযোগ করার উপায়গুলো নির্দিষ্ট করে এমন এক সেট 'অ্যাকশন' নিয়ে গঠিত। হোস্ট = (হোস্টনাম | আইপি ঠিকানা)[:পোর্টরেঞ্জ] পোর্টরেঞ্জ = পোর্ট নম্বর | -পোর্ট নম্বর | পোর্ট নম্বর-[পোর্ট নম্বর] হোস্টের সাথে সংযোগ করার সম্ভাব্য উপায়গুলো হলো গ্রহণ করুন সংযোগ করুন শুনুন সংকল্প 'listen' অ্যাকশনটি শুধুমাত্র 'localhost'-এর সাথে ব্যবহৃত হলেই অর্থবহ হয়। অন্য কোনো অ্যাকশন উপস্থিত থাকলে 'resolve' (হোস্ট/আইপি নেম সার্ভিস লুকআপ সমাধান করা) অ্যাকশনটি স্বয়ংক্রিয়ভাবে সম্পন্ন হয়। | সংকল্প | হ্যাঁ |
| সংযোগ করুন | হ্যাঁ, তবে কিছু বিধিনিষেধ প্রযোজ্য। বিধিনিষেধ দেখুন। Apigee সাইটলোকাল, অ্যানিলোকাল, লুপব্যাক এবং লিঙ্কলোকাল অ্যাড্রেসগুলিতে অ্যাক্সেস সীমাবদ্ধ করে। | |
| শোনো, গ্রহণ করুন | না | |
| java.net.URLPermission এটি একটি নির্দিষ্ট ইউআরএল দ্বারা সংজ্ঞায়িত কোনো রিসোর্স বা রিসোর্সসমূহের সেট এবং ব্যবহারকারী-নির্ধারিত অনুরোধ পদ্ধতি ও অনুরোধ হেডারের একটি নির্দিষ্ট সেট অ্যাক্সেস করার অনুমতি প্রদান করে। অনুমতির নামটি হলো ইউআরএল স্ট্রিং। অ্যাকশন স্ট্রিংটি হলো অনুরোধ পদ্ধতি এবং হেডারগুলোর একটি সংযুক্তি। এই ক্লাস দ্বারা পদ্ধতি এবং হেডারের নামের পরিসর সীমাবদ্ধ নয়। | হ্যাঁ | |
| লিঙ্ক অনুমতি লিঙ্ক তৈরির কার্যক্রমের জন্য পারমিশন ক্লাস। | কঠিন | না |
| প্রতীকী | না | |
| java.security.SecurityPermission একটি SecurityPermission-এ একটি নাম (যাকে "টার্গেট নেম"ও বলা হয়) থাকে, কিন্তু কোনো অ্যাকশন তালিকা থাকে না; আপনার হয় নির্দিষ্ট নামের পারমিশনটি থাকে, অথবা থাকে না। টার্গেট নামটি একটি নিরাপত্তা কনফিগারেশন প্যারামিটারের নাম (নিচে দেখুন)। বর্তমানে SecurityPermission অবজেক্টটি Policy, Security, Provider, Signer, এবং Identity অবজেক্টগুলিতে অ্যাক্সেস সুরক্ষিত করতে ব্যবহৃত হয়। | অ্যাক্সেস কন্ট্রোল কনটেক্সট তৈরি করুন | না |
| getDomainCombiner | না | |
| নীতি পান | না | |
| নীতি নির্ধারণ করুন | না | |
| নীতি তৈরি করুন।{নীতির ধরণ} | না | |
| getProperty.{key} | না | |
| setProperty.{key} | না | |
| ইনসার্টপ্রোভাইডার | না | |
| removeProvider.{প্রোভাইডারের নাম} | না | |
| clearProviderProperties.{প্রোভাইডারের নাম} | না | |
| putProviderProperty.{প্রোভাইডারের নাম} | না | |
| removeProviderProperty.{প্রোভাইডারের নাম} | না | |
| SQLঅনুমতি | সেটলগ | না |
| কল বাতিল করুন | না | |
| setSyncFactory | না | |
| setNetworkTimeout | না | |
| ড্রাইভার নিবন্ধন বাতিল করুন | না | |
| java.util.logging.LoggingPermission যখন কোনো SecurityManager-এর সাথে চলমান কোড লগিং নিয়ন্ত্রণের কোনো একটি মেথড (যেমন Logger.setLevel) কল করে, তখন SecurityManager-টি java.util.logging.LoggingPermission অবজেক্টটি যাচাই করে। | নিয়ন্ত্রণ | না |
| java.util.PropertyPermission নামটি হলো প্রপার্টির নাম ("java.home", "os.name", ইত্যাদি)। নামকরণের রীতিটি হায়ারারকিক্যাল প্রপার্টি নামকরণের রীতি অনুসরণ করে। এছাড়াও, ওয়াইল্ডকার্ড ম্যাচ বোঝানোর জন্য নামের শেষে, একটি "." এর পরে, অথবা একাই একটি অ্যাস্টারিস্ক (*) থাকতে পারে। উদাহরণস্বরূপ: "java.*" বা "*" বৈধ, কিন্তু "*java" বা "a*b" বৈধ নয়। যে কাজগুলো সম্পন্ন করতে হবে, সেগুলো শূন্য বা তার বেশি কমা-দ্বারা-বিভক্ত কীওয়ার্ডের একটি তালিকা সম্বলিত একটি স্ট্রিং আকারে কনস্ট্রাক্টরে পাঠানো হয়। | পড়ুন | হ্যাঁ |
| লিখুন | না | |
javax.xml.ws.WebServicePermission | প্রকাশ করুন এন্ডপয়েন্ট | না |
| javax.xml.bind.JAXBPermission | setDatatypeConverter | না |
| javax.sound.sampled.AudioPermission অডিও সিস্টেমের রিসোর্সসমূহে প্রবেশাধিকার। | খেলা | না |
| রেকর্ড | না | |
| javax.security.auth.PrivateCredentialPermission কোনো নির্দিষ্ট সাবজেক্টের ব্যক্তিগত ক্রেডেনশিয়ালগুলিতে অ্যাক্সেস সুরক্ষিত করুন। সাবজেক্টটি প্রিন্সিপালদের একটি সেট দ্বারা প্রতিনিধিত্ব করা হয়। এই পারমিশনের টার্গেট নামটি একটি ক্রেডেনশিয়াল ক্লাস নেম এবং প্রিন্সিপালদের একটি সেট নির্দিষ্ট করে। এই পারমিশনের অ্যাকশনগুলির জন্য একমাত্র বৈধ মান হলো, "রিড"। | ক্রেডেনশিয়ালক্লাস {প্রিন্সিপালক্লাস "প্রিন্সিপালনেম"}* | না |
| javax.security.auth.kerberos.ServicePermission কেরবেরোস পরিষেবা এবং সেই পরিষেবাগুলিতে প্রবেশের জন্য প্রয়োজনীয় পরিচয়পত্র সুরক্ষিত রাখুন। | শুরু করা | না |
| গ্রহণ করুন | না | |
| javax.security.auth.kerberos.DelegationPermission কেরবেরোস ডেলিগেশন মডেলের ব্যবহার সীমিত করতে ব্যবহৃত হয়; অর্থাৎ, ফরওয়ার্ডযোগ্য এবং প্রক্সিযোগ্য টিকেট। এই অনুমতির টার্গেট নামটি একজোড়া কেরবেরোস সার্ভিস প্রিন্সিপালকে নির্দিষ্ট করে। প্রথমটি হলো অধস্তন সার্ভিস প্রিন্সিপাল, যাকে টিকেট গ্রান্টিং টিকেট (TGT) ব্যবহারের দায়িত্ব দেওয়া হয়েছে। দ্বিতীয় সার্ভিস প্রিন্সিপালটি সেই টার্গেট সার্ভিসকে নির্দেশ করে, যার সাথে অধস্তন সার্ভিস প্রিন্সিপালটি সূচনাকারী কেরবেরোস প্রিন্সিপালের পক্ষ থেকে যোগাযোগ করবে। | শুরু করা | না |
| গ্রহণ করুন | না | |
| javax.security.auth.AuthPermission বর্তমানে Subject, SubjectDomainCombiner, LoginContext এবং Configuration অবজেক্টগুলোতে অ্যাক্সেস সুরক্ষিত করতে AuthPermission অবজেক্টটি ব্যবহৃত হয়। | doAs | না |
| doAsPrivileged | না | |
| বিষয় পান | না | |
| getSubjectFromDomainCombiner | না | |
| শুধুমাত্র পঠনযোগ্য সেট করুন | না | |
| নীতি পরিবর্তন করুন | না | |
| পাবলিক ক্রেডেনশিয়াল পরিবর্তন করুন | না | |
| ব্যক্তিগত পরিচয়পত্র পরিবর্তন করুন | না | |
| ক্রেডেনশিয়াল রিফ্রেশ করুন | না | |
| ক্রেডেনশিয়াল ধ্বংস করুন | না | |
| createLoginContext.{name} | না | |
| লগইন কনফিগারেশন পান | না | |
| লগইন কনফিগারেশন সেট করুন | না | |
| createLoginConfiguration.{কনফিগারেশন প্রকার} | না | |
| লগইন কনফিগারেশন রিফ্রেশ করুন | না | |
| javax.net.ssl.SSLPermission | হোস্টনাম যাচাইকারী সেট করুন | না |
| getSSLSessionContext | না | |
| ডিফল্টএসএসএলকনটেক্সট সেট করুন | না | |
| javax.management.MBeanPermission MBeanServer অপারেশনগুলিতে অ্যাক্সেস নিয়ন্ত্রণের জন্য অনুমতি। যদি System.setSecurityManager(java.lang.SecurityManager) ব্যবহার করে কোনো সিকিউরিটি ম্যানেজার সেট করা হয়ে থাকে, তাহলে MBeanServer-এর বেশিরভাগ অপারেশনের জন্য কলারের অনুমতিতে অপারেশনটির জন্য উপযুক্ত একটি MBeanPermission থাকা আবশ্যক। অ্যাকশন ক্লাসনেম#সদস্য[অবজেক্টনেম] আপনার যদি একটি MBeanPermission থাকে, তবে চারটি আইটেমই মিলে গেলেই কেবল অপারেশন করার অনুমতি দেওয়া হয়। | অ্যাডনোটিফিকেশনলিসেনার | না |
| getAttribute | না | |
| getClassLoader | না | |
| getClassLoaderFor | না | |
| getClassLoaderRepository | না | |
| getDomains | না | |
| getMBeanInfo | না | |
| getObjectInstance | না | |
| ইনস্ট্যানশিয়েট | না | |
| আহ্বান করুন | না | |
| isInstanceOf | না | |
| queryMBeans | না | |
| কোয়েরি নাম | না | |
| রেজিস্টারএমবিন | না | |
| রিমুভনোটিফিকেশনলিসেনার | না | |
| সেটঅ্যাট্রিবিউট | না | |
| এমবিন নিবন্ধন করুন | না | |
| javax.management.MBeanServerPermission | createMBeanServer | না |
| findMBeanServer | না | |
| নতুন এমবিন সার্ভার | না | |
| রিলিজএমবিনসার্ভার | না | |
| javax.management.MBeanTrustPermission এই অনুমতিটি কোনো স্বাক্ষরকারী বা কোডবেসের প্রতি 'বিশ্বাস' প্রকাশ করে। | নিবন্ধন করুন | না |
| * | না | |
javax.management.remote.SubjectDelegationPermission | না |