package Ġpers . ac p . admin . security Ċ Ċ import Ġio . github . zhang bin hub . ac p . boot . interfaces . Log Adapter Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . security . core . Granted Authority Ċ import Ġorg . springframework . security . core . authority . Simple Granted Authority Ċ import Ġorg . springframework . security . core . user details . User Ċ import Ġorg . springframework . security . core . user details . UserDetails Ċ import Ġorg . springframework . security . core . user details . UserDetails Service Ċ import Ġorg . springframework . security . core . user details . Username NotFoundException Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġpers . ac p . admin . constant . Role Code Ċ import Ġpers . ac p . admin . domain . Module Func Domain Ċ import Ġpers . ac p . admin . domain . User Domain Ċ Ċ /** Ċ Ġ* Ġ@ author Ġz hang bin Ġby Ġ 1 1 / 0 4 / 2 0 1 8 Ġ 1 5 : 1 9 Ċ Ġ* Ġ@ since ĠJDK Ġ 1 1 Ċ Ġ*/ Ċ @ Component Ċ class ĠSecurity UserDetails Service Ġ@ Autowired Ċ constructor ( ĊĠĠĠ Ġprivate Ġval Ġlog Adapter : ĠLog Adapter , ĊĠĠĠ Ġprivate Ġval Ġuser Domain : ĠUser Domain , ĊĠĠĠ Ġprivate Ġval Ġmodule Func Domain : ĠModule Func Domain Ċ ) Ġ: ĠUser Details Service Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæł¹æį® Ġusername Ġèİ·åıĸ çĶ¨æĪ· ä¿¡æģ¯ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġusername ĠçĶ¨æĪ· åĲį ĊĠĠĠĠ Ġ* Ġ@ return ĠçĶ¨æĪ· å¯¹è±¡ ĊĠĠĠĠ Ġ* Ġ@ throws ĠUsername NotFoundException Ġ æī¾ ä¸įåĪ° çĶ¨æĪ· ä¿¡æģ¯ å¼Ĥå¸¸ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( Username NotFoundException :: class ) ĊĠĠĠ Ġoverride Ġfun Ġload User By Username ( username : ĠString ): ĠUser Details Ġ= ĊĠĠĠĠĠĠĠ Ġuser Domain . getUser Info By Login No ( username , Ġtrue ). let Ġ{ Ġuser Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog Adapter . error (" æĹł æŃ¤ çĶ¨æĪ· ï¼ļ $ username ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠUsername NotFoundException (" æĹł æŃ¤ çĶ¨æĪ· ï¼ļ $ username ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgranted Author ities : ĠMutable Set < Granted Authority > Ġ= Ġmutable Set Of () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser . role Set . forEach Ġ{ Ġrole Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgranted Author ities . add ( Simple Granted Authority ( Role Code . prefix Ġ+ Ġrole . code )) Ġ// è§Ĵèī² ç¼ĸçłģ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Func Domain . getModule Func List ( user . id ). forEach Ġ{ Ġmodule Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgranted Author ities . add ( Simple Granted Authority ( module . code )) Ġ// æ¨¡åĿĹ åĬŁèĥ½ ç¼ĸçłģ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUser ( user . login No , Ġuser . password , Ġuser . enabled , Ġtrue , Ġtrue , Ġtrue , Ġgranted Author ities ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ