Jetty 12.0.x SPNEGO: സേവനത്തിന്റെ പേര് സജ്ജമാക്കുക, പൂർണ്ണ principal അല്ല
Jetty 12 പ്രമാണീകരണം ക്രമീകരിക്കുമ്പോൾ proxy URI, JAAS ഉപയോക്താവ്, GSS സേവന ഘടകം എന്നിവ വേർതിരിക്കുക.
Jetty SPNEGO ക്രമീകരണത്തിൽ മൂന്ന് പേരുകളുണ്ട്: പ്രമാണീകരണം പൊരുത്തപ്പെടുത്താൻ ഉപയോഗിക്കുന്ന 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 getServiceName(), @ പ്രതീകം, പ്രമാണീകരണ കൈമാറ്റത്തിനുള്ള ഹോസ്റ്റ് എന്നിവ ചേർത്ത് GSS ഹോസ്റ്റ് അധിഷ്ഠിത നാമം നിർമ്മിക്കുന്നു. [email protected] സേവന ഘടകമായി നൽകിയാൽ മറ്റൊരു ഹോസ്റ്റ് കൂടി ചേരും. ഇത് പൂർണ്ണ Kerberos principal സ്വീകരിക്കുമെന്ന് അനുമാനിക്കാതെ ഈ setter-ന്റെ കരാർ വായിക്കുക.
ഫലമായ GSS നാമത്തിന് ആശയപരമായി HTTP@hostname എന്ന രൂപമുണ്ട്. KDC-യിലെ അനുബന്ധ സേവന principal സാധാരണയായി HTTP/hostname എന്ന് പ്രതിനിധീകരിക്കുന്നു. തിരഞ്ഞെടുത്ത proxy നാമം യഥാർത്ഥത്തിൽ രജിസ്റ്റർ ചെയ്ത സേവനവുമായി പൊരുത്തപ്പെടണം ആ അക്കൗണ്ടിനുള്ളതാണ്; IP വിലാസമോ അലിയാസോ മറ്റൊരു ടിക്കറ്റ് ലക്ഷ്യം തിരഞ്ഞെടുത്തേക്കാം.
407 പാതയും പരിശോധിക്കുക
Jetty 12.0.x-ൽ authenticate() request.getHost()-ൽ നിന്ന് GSS ഹോസ്റ്റ്നാമം എടുത്ത് സ്വതവേയുള്ള Authorization ഹെഡർ ഉപയോഗിച്ച് ഫലം നിർമ്മിക്കുന്നു. proxy URI പ്രകാരം പ്രമാണീകരണ ഒബ്ജക്റ്റ് പൊരുത്തപ്പെടുത്തുന്നത് ആ തിരഞ്ഞെടുപ്പുകളെ സ്വയം proxy-യുടെ ഹോസ്റ്റ്നാമിലേക്കും Proxy-Authorization-ലേക്കും മാറ്റുന്നില്ല.
അതിനാൽ proxy സംയോജനത്തിന് ആ കൈമാറ്റത്തിന് ശരിയായ അഭ്യർത്ഥന ഹോസ്റ്റും proxy പരിധിയിലുള്ള ഫലവും വേണം. HTTPS CONNECT അഭ്യർത്ഥനയ്ക്കും സാധാരണ ഉത്ഭവ അഭ്യർത്ഥനയ്ക്കും വ്യത്യസ്ത ഹോസ്റ്റ് മൂല്യങ്ങളാകാം. സേവന-നാമ setter പൂർണ്ണ 407 പ്രവാഹം നൽകുമെന്ന് അനുമാനിക്കാതെ ഇൻസ്റ്റാൾ ചെയ്ത നടപ്പാക്കലിന്റെ സ്വഭാവം സ്ഥിരീകരിക്കുക.
407-ന്, ആ അഭ്യർത്ഥന ഉപയോഗിച്ച proxy പ്രമാണീകരണ കൈമാറ്റവും ഹോസ്റ്റും പരിശോധിക്കുക. 401 ഉത്ഭവ പ്രമാണീകരണത്തിന്റേതാണ്. സാധുവായ ഉപയോക്തൃ ടിക്കറ്റ് മാത്രം Jetty ശരിയായ സേവന ടിക്കറ്റ് അഭ്യർത്ഥിച്ചു എന്നോ ഇടനിലക്കാരൻ അത് സ്വീകരിച്ചു എന്നോ തെളിയിക്കുന്നില്ല.