នៅក្នុងការកំណត់ SPNEGO របស់ Jetty មានឈ្មោះបី៖ URI ដែលប្រើដើម្បីផ្គូផ្គងការផ្ទៀងផ្ទាត់ អ្នកប្រើដែលចូលតាម JAAS និងសេវាដែលសំបុត្រត្រូវបានស្នើសុំ។ ពួកវាមានគោលបំណងផ្សេងគ្នា។

សម្រាប់ការអនុវត្ត Jetty 12.0.x បំណែកនៃវត្ថុផ្ទៀងផ្ទាត់មានដូចនេះ៖

var auth = new org.eclipse.jetty.client.SPNEGOAuthentication(
    java.net.URI.create("http://proxy.example:8080"));
auth.setServiceName("HTTP");

បំណែកនេះបង្ហាញធាតុសេវា មិនមែនរូបមន្តពេញលេញសម្រាប់ការផ្ទៀងផ្ទាត់ proxy ទេ។ ការចូល JAAS ការបញ្ជូន proxy និងការផ្លាស់ប្តូរការផ្ទៀងផ្ទាត់នៃសំណើនៅតែដាច់ដោយឡែក។

ក្នុងការអនុវត្តនេះ Jetty បង្កើតឈ្មោះ GSS ដែលផ្អែកលើម៉ាស៊ីនដោយបញ្ចូល getServiceName() តួអក្សរ @ និងម៉ាស៊ីនសម្រាប់ការផ្លាស់ប្តូរការផ្ទៀងផ្ទាត់។ ការផ្តល់ [email protected] ជាធាតុសេវានឹងបន្ថែមម៉ាស៊ីនមួយទៀត។ សូមអានកិច្ចសន្យារបស់ setter នេះ ជំនួសឱ្យការសន្មត់ថាវាទទួល principal Kerberos ពេញលេញ។

ឈ្មោះ GSS លទ្ធផលមានទម្រង់សម្មតិកម្ម HTTP@hostname។ principal សេវាដែលត្រូវគ្នារបស់ KDC ជាធម្មតាត្រូវបានតំណាងជា HTTP/hostname។ ឈ្មោះ proxy ដែលបានជ្រើសត្រូវតែផ្គូផ្គងនឹងសេវាដែលបានចុះបញ្ជីពិតប្រាកដ សម្រាប់គណនីនោះ; អាសយដ្ឋាន IP ឬឈ្មោះក្លែងក្លាយអាចជ្រើសគោលដៅសំបុត្រផ្សេង។

ពិនិត្យផ្លូវ 407 ផងដែរ

ក្នុង Jetty 12.0.x authenticate() ទទួលឈ្មោះម៉ាស៊ីន GSS ពី request.getHost() និងបង្កើតលទ្ធផលដោយប្រើបឋមកថា Authorization លំនាំដើម។ ការផ្គូផ្គងវត្ថុផ្ទៀងផ្ទាត់តាម proxy URI មិនផ្លាស់ប្តូរជម្រើសទាំងនោះទៅជាឈ្មោះម៉ាស៊ីន proxy និង Proxy-Authorization ដោយខ្លួនឯងទេ។

ដូច្នេះការរួមបញ្ចូល proxy ត្រូវការម៉ាស៊ីនសំណើត្រឹមត្រូវ និងលទ្ធផលកំណត់ដោយ proxy សម្រាប់ការផ្លាស់ប្តូរនោះ។ សំណើ HTTPS CONNECT និងសំណើប្រភពធម្មតាអាចមានតម្លៃម៉ាស៊ីនខុសគ្នា។ ផ្ទៀងផ្ទាត់ឥរិយាបទនៃការអនុវត្តដែលបានដំឡើង ជំនួសឱ្យការសន្មត់ថា setter ឈ្មោះសេវាផ្តល់លំហូរ 407 ពេញលេញ។

សម្រាប់ 407 សូមពិនិត្យការផ្លាស់ប្តូរការផ្ទៀងផ្ទាត់ proxy និងម៉ាស៊ីនដែលសំណើនោះបានប្រើ។ 401 ជាកម្មសិទ្ធិរបស់ការផ្ទៀងផ្ទាត់ប្រភព។ សំបុត្រអ្នកប្រើត្រឹមត្រូវតែមួយមិនបញ្ជាក់ថា Jetty បានស្នើសំបុត្រសេវាត្រឹមត្រូវ ឬអ្នកកណ្តាលបានទទួលវាទេ។

អត្ថបទពាក់ព័ន្ធ