/* Ċ Ġ* ĠTencent Ġis Ġplease d Ġto Ġsupport Ġthe Ġopen Ġsource Ġcommunity Ġby Ġmaking ĠB K - CI Ġ èĵĿ é² ¸ æĮģ ç»Ń éĽĨ æĪĲ å¹³åı° Ġavailable . Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠTH L ĠA 2 9 ĠLimited , Ġa ĠTencent Ġcompany . Ġ ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠB K - CI Ġ èĵĿ é² ¸ æĮģ ç»Ń éĽĨ æĪĲ å¹³åı° Ġis Ġlicensed Ġunder Ġthe ĠMIT Ġlicense . Ċ Ġ* Ċ Ġ* ĠA Ġcopy Ġof Ġthe ĠMIT ĠLicense Ġis Ġincluded Ġin Ġthis Ġfile . Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠTerms Ġof Ġthe ĠMIT ĠLicense : Ċ Ġ* Ġ------------------------------------------------ --- Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . tencent . bk repo . common . security . http . core Ċ Ċ import Ġcom . tencent . bk repo . common . security . exception . Authentication Exception Ċ import Ġcom . tencent . bk repo . common . security . http . credentials . Http Auth Credentials Ċ import Ġjavax . servlet . http . HttpServletRequest Ċ import Ġjavax . servlet . http . HttpServletResponse Ċ Ċ /** Ċ Ġ* Ġhttp è¯·æ±Ĥ è®¤ è¯ģ å¤ĦçĲĨ åĻ¨ Ċ Ġ*/ Ċ interface ĠHttp Auth Handler Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ çĻ»å½ķ endpoint ï¼Į è¡¨ç¤º è¯¥ handler çĶ¨äºİ å¤ĦçĲĨ çĻ»å½ķ è¯·æ±Ĥ ĊĠĠĠĠ Ġ* ĠæĶ¯æĮģ ant è·¯å¾Ħ åĮ¹éħį è§ĦåĪĻ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Login Endpoint (): ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ çĻ»å½ķ endpoint çļĦ è¯·æ±Ĥ æĸ¹æ³ķ ï¼Į è¡¨ç¤º è¯¥ handler çĶ¨äºİ å¤ĦçĲĨ çĻ»å½ķ è¯·æ±Ĥ ĊĠĠĠĠ Ġ* Ġé»ĺè®¤ è¿ĶåĽŀ null , Ġè¡¨ç¤º æīĢæľī è¯·æ±Ĥ æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Login Method (): ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠæıĲ åıĸ è®¤ è¯ģ èº«ä»½ ä¿¡æģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( Authentication Exception :: class ) ĊĠĠĠ Ġfun Ġextract Auth Credentials ( request : ĠHttpServletRequest ): ĠHttp Auth Credentials ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è¿Ľè¡Į è®¤ è¯ģ ĊĠĠĠĠ Ġ* Ġ è®¤ è¯ģ æĪĲåĬŁ è¿ĶåĽŀ çĶ¨æĪ· id ï¼Į å¤±è´¥ åĪĻ æĬĽ Authentication Exception å¼Ĥå¸¸ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( Authentication Exception :: class ) ĊĠĠĠ Ġfun Ġon Authenticate ( request : ĠHttpServletRequest , Ġauth Credentials : ĠHttp Auth Credentials ): ĠString ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è®¤ è¯ģ å¤±è´¥ åĽŀè°ĥ ĊĠĠĠĠ Ġ* Ġåı¯ä»¥ æł¹æį® åĲĦ èĩª ä¾Ŀèµĸ æºĲ çļĦ åįıè®® è¿ĶåĽŀ ä¸įåĲĮ çļĦæķ°æį® æł¼å¼ı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġon Authenticate Failed ( ĊĠĠĠĠĠĠĠ Ġrequest : ĠHttpServletRequest , ĊĠĠĠĠĠĠĠ Ġresponse : ĠHttpServletResponse , ĊĠĠĠĠĠĠĠ Ġauthentication Exception : ĠAuthentication Exception ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġé»ĺè®¤ åĲĳ ä¸Ĭ æĬĽ å¼Ĥå¸¸ ĊĠĠĠĠĠĠĠ Ġthrow Ġauthentication Exception ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è®¤ è¯ģ æĪĲåĬŁ åĽŀè°ĥ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġon Authenticate Success ( request : ĠHttpServletRequest , Ġresponse : ĠHttpServletResponse , ĠuserId : ĠString ) Ġ{ Ġ} Ċ } Ċ