/* Ċ Ġ* ĠTencent Ġis Ġplease d Ġto Ġsupport Ġthe Ġopen Ġsource Ġcommunity Ġby Ġmaking ĠB K - CI Ġ èĵĿ é² ¸ æĮģ ç»Ń éĽĨ æĪĲ å¹³åı° Ġavailable . ĠĠĊ Ġ* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 Ġ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 . artifact . repository . context Ċ Ċ import Ġcom . tencent . bk repo . common . api . constant . AN ONY MO US _ USER Ċ import Ġcom . tencent . bk repo . common . api . constant . USER _ KEY Ċ import Ġcom . tencent . bk repo . common . artifact . api . Artifact Info Ċ import Ġcom . tencent . bk repo . common . artifact . constant . AR TI FACT _ INFO _ KEY Ċ import Ġcom . tencent . bk repo . common . artifact . constant . REPO _ KEY Ċ import Ġcom . tencent . bk repo . common . artifact . pojo . configuration . Repository Configuration Ċ import Ġcom . tencent . bk repo . common . service . util . HttpContext Holder Ċ import Ġcom . tencent . bk repo . common . storage . credentials . Storage Credentials Ċ import Ġcom . tencent . bk repo . repository . pojo . repo . Repository Info Ċ import Ġjavax . servlet . http . HttpServletRequest Ċ import Ġjavax . servlet . http . HttpServletResponse Ċ Ċ /** Ċ Ġ* Ġ æŀĦ ä»¶ ä¼łè¾ĵ context Ċ Ġ*/ Ċ open Ġclass ĠArtifact Transfer Context ( repo : ĠRepository Info ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġval Ġrequest : ĠHttpServletRequest Ġ= ĠHttp Context Holder . getRequest () ĊĠĠĠ Ġval Ġresponse : ĠHttpServletResponse Ġ= ĠHttp Context Holder . getResponse () ĊĠĠĠ Ġval ĠuserId : ĠString ĊĠĠĠ Ġval Ġartifact Info : ĠArtifact Info ĊĠĠĠ Ġvar Ġrepository Info : ĠRepository Info ĊĠĠĠ Ġvar Ġstorage Credentials : ĠStorage Credentials ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġrepository Configuration : ĠRepository Configuration ĊĠĠĠ Ġvar Ġcontext Attributes : ĠMutable Map < String , ĠAny > ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . userId Ġ= Ġrequest . getAttribute ( USER _ KEY ) Ġas ? ĠString Ġ?: ĠAN ONY MO US _ USER ĊĠĠĠĠĠĠĠ Ġthis . artifact Info Ġ= Ġrequest . getAttribute ( AR TI FACT _ INFO _ KEY ) Ġas ĠArtifact Info ĊĠĠĠĠĠĠĠ Ġthis . repository Info Ġ= Ġrepo Ġ?: Ġrequest . getAttribute ( REPO _ KEY ) Ġas ĠRepository Info ĊĠĠĠĠĠĠĠ Ġthis . storage Credentials Ġ= Ġrepository Info . storage Credentials ĊĠĠĠĠĠĠĠ Ġthis . repository Configuration Ġ= Ġrepository Info . configuration ĊĠĠĠĠĠĠĠ Ġthis . context Attributes Ġ= Ġmutable Map Of () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcopy ( repository Info : ĠRepository Info ): ĠArtifact Transfer Context Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġthis . java Class . newInstance () ĊĠĠĠĠĠĠĠ Ġcontext . repository Info Ġ= Ġrepository Info ĊĠĠĠĠĠĠĠ Ġcontext . storage Credentials Ġ= Ġrepository Info . storage Credentials ĊĠĠĠĠĠĠĠ Ġcontext . repository Configuration Ġ= Ġrepository Info . configuration ĊĠĠĠĠĠĠĠ Ġcontext . context Attributes Ġ= Ġcontext Attributes ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext ĊĠĠĠ Ġ} Ċ } Ċ