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-ն կառուցում է GSS հոսթի վրա հիմնված անունը՝ միավորելով getServiceName()-ը, @ նշանը և նույնականացման փոխանակման հոսթը։ [email protected]ը որպես ծառայության բաղադրիչ տալը կավելացնի ևս մեկ հոսթ։ Կարդացեք այս setter-ի պայմանագիրը՝ փոխարենը ենթադրելու, որ այն ընդունում է ամբողջական Kerberos principal։
Ստացված GSS անունն ունի HTTP@hostname հասկացական ձևը։ KDC-ի համապատասխան ծառայության principal-ը սովորաբար ներկայացվում է որպես 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-ն պահանջել է ճիշտ ծառայության տոմս կամ որ միջնորդն ընդունել է այն։