4            9! "#$ % &'( )*+ ,- ./ 01 23 94 56 7; 8 9=>: ;<= )> )? )@ ;A B CDE 0FG 2H IJ 2K IL MN MOPQ :R :ST :U ,V W XY Z [\ ]^ F_ H` Ha Hbcd .A e Hf gh ij k ;l Cmn o pq rs Wt uvwxy 9z{ | } ~   J   " )    ~     0        [ F " W  z , " 8   & [ W      WF   W  \      p . 9 [ [  F     H  H H    ` r : H H   p 2    p [ [   [ loggerLorg/slf4j/Logger;authenticationManagerCLorg/springframework/security/authentication/AuthenticationManager;RuntimeVisibleAnnotationsLjavax/annotation/Resource;jwtTokenHandler&Lcom/artfess/base/jwt/JwtTokenHandler;userDetailsServiceBLorg/springframework/security/core/userdetails/UserDetailsService; ssoConfig!Lcom/artfess/base/conf/SsoConfig;demoModeZ4Lorg/springframework/beans/factory/annotation/Value;value${system.mode.demo:false}uCFeignService'Lcom/artfess/base/feign/UCFeignService;applicationFeignService0Lcom/artfess/base/feign/ApplicationFeignService;loginLogService*Lcom/artfess/base/service/LoginLogService;loginUserService+Lcom/artfess/base/service/LoginUserService; saasConfig"Lcom/artfess/base/conf/SaaSConfig; jwtConfig!Lcom/artfess/base/conf/JwtConfig;()VCodeLineNumberTableLocalVariableTablethis:Lcom/artfess/base/controller/AuthenticationRestController;deleteUserDetailsCache(Ljava/lang/String;)V userAccountLjava/lang/String;beandelUserDetailsCache.Lcom/artfess/base/cache/annotation/CacheEvict;bpm:uc:userAccountkey #userAccountdelUsernamesCachebpm:uc:userNamecreateAuthenticationTokenZ(Lcom/artfess/base/jwt/JwtAuthenticationRequest;)Lorg/springframework/http/ResponseEntity;ce1Lcom/artfess/base/exception/CertificateException;eLjava/lang/Exception; loginTimesLjava/lang/Integer; lockStatusI lockTimesenablejson)Lcom/fasterxml/jackson/databind/JsonNode;service-Lcom/artfess/base/service/PwdStrategyService;ipallowdedipListLjava/util/List; machineIdListmachineService7Lcom/artfess/base/service/SecurityMachinePersonService;user Lcom/artfess/uc/api/model/IUser;authenticationRequest/Lcom/artfess/base/jwt/JwtAuthenticationRequest; reqAccount reqPassworderrorMsgrequest'Ljavax/servlet/http/HttpServletRequest;session Ljavax/servlet/http/HttpSession;IPisMobile userDetails;Lorg/springframework/security/core/userdetails/UserDetails;tokenuserNameaccountuserId loginStatus userAttrsLjava/util/Map;LocalVariableTypeTable$Ljava/util/List;5Ljava/util/Map; StackMapTableP6=G Exceptions Signature](Lcom/artfess/base/jwt/JwtAuthenticationRequest;)Lorg/springframework/http/ResponseEntity<*>;8Lorg/springframework/web/bind/annotation/RequestMapping;/authmethod7Lorg/springframework/web/bind/annotation/RequestMethod;POSTproducesapplication/json; charset=utf-8%Lio/swagger/annotations/ApiOperation; 登录系统 httpMethodnotes"RuntimeVisibleParameterAnnotations5Lorg/springframework/web/bind/annotation/RequestBody;isAdmin(Ljava/lang/String;)Z_accounttmpsplit[Ljava/lang/String;getUserNameWithCas8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;jsonNodeticket casUserDetailusername errorCode getUserNameWithOauth oauthCheckUrl checkResult checkJNodeheader tokenResultcode oauthTokenUrlstufixssoAuthy(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/lang/String;)Lorg/springframework/http/ResponseEntity;Ljava/util/Optional;ssoModemode(Ljava/util/Optional;!"(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/lang/String;)Lorg/springframework/http/ResponseEntity<*>; /sso/authGET登录系统-单点登录6Lorg/springframework/web/bind/annotation/RequestParam; ssoWeixin?(Ljava/util/Optional;)Lorg/springframework/http/ResponseEntity;tenantIdwxWorkId simpleUser resultJsonresult0Lcom/fasterxml/jackson/databind/node/ObjectNode;errcodeV(Ljava/util/Optional;)Lorg/springframework/http/ResponseEntity<*>; /sso/weixin.企业微信应用进入手机端-单点登录 weixinPublicnodeopenidr%Lcom/artfess/base/model/CommonResult;PLcom/artfess/base/model/CommonResult;/sso/weixinPublic微信公众号进入手机端dingTalk dingtalkId /sso/dingTalk钉钉进入手机端 dingTalkYkzdingtalkAccount/sso/ykz愉快政单点登录dingTalkYkzBand(Lcom/artfess/base/jwt/JwtAuthenticationRequest;Ljava/util/Optional;Ljava/util/Optional;)Lorg/springframework/http/ResponseEntity;bandUserAccount userUnite ykzAccountId ykzAccount_(Lcom/artfess/base/jwt/JwtAuthenticationRequest;Ljava/util/Optional;Ljava/util/Optional;)Lorg/springframework/http/ResponseEntity<*>; /sso/ykzBand愉快政绑定并登录isUseCasz(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)Lorg/springframework/http/ResponseEntity;response(Ljavax/servlet/http/HttpServletResponse;map(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)Lorg/springframework/http/ResponseEntity;>; /sso/info单点登录配置 refreshAndGetAuthenticationTokenR(Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/http/ResponseEntity; authTokenrefreshedTokenU(Ljavax/servlet/http/HttpServletRequest;)Lorg/springframework/http/ResponseEntity<*>;/refresh 刷新tokensignoutN(Ljavax/servlet/http/HttpServletRequest;)Lcom/artfess/base/model/CommonResult;b(Ljavax/servlet/http/HttpServletRequest;)Lcom/artfess/base/model/CommonResult;/signout 退出登录F使token的状态失效,必须设置jwt.single和jwt.stricky均为true authenticate'(Ljava/lang/String;Ljava/lang/String;)Vpassword checkUser5(Lcom/artfess/uc/api/model/IUser;Ljava/lang/String;)ZsyJ lockedTimeLjava/time/LocalDateTime;intervalMinutesLjava/lang/Long; currenTimesize pwdCreateTimeinitPwdpwdRule pwdLengthdurationautoUnlockTime initUpdate#$handleSingleLogin:(ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V userAgent% handleLogout((ZLjava/lang/String;Ljava/lang/String;)V SourceFile!AuthenticationRestController.java8Lorg/springframework/web/bind/annotation/RestController;Lio/swagger/annotations/Api;tags 认证接口&Lcom/artfess/base/annotation/ApiGroup;group group_bpm group_form group_systemgroup_uc  ! &'( )*8com/artfess/base/controller/AuthenticationRestController ,( 1( +, '( -,. /0 java/lang/Exception Login failed account[%s].java/lang/Object 123 45账号或密码错误 678 9:/com/artfess/base/exception/CertificateException ;,;org/springframework/security/authentication/LockedException账号被禁用或离职< => ?@A BCD 9 E: +com/artfess/base/service/PwdStrategyService FG HI JK _loginTime_ LMjava/lang/Integer  N OK PQ RS T UVjava/lang/RuntimeException  (5com/artfess/base/service/SecurityMachinePersonService WX K YZ [\ ]^ _`java/lang/Stringjava/lang/StringBuilder 用户【 ab:】已绑定涉密机器,不能在当前机器上登录! c, Vd   e fg   h ijjava/util/HashMapcom/artfess/uc/api/model/IUser k, l, m, loginUser%s[%s]  n, opq rs  t( u(.com/artfess/base/jwt/JwtAuthenticationResponse v wx$ Py  z{ |}*com/artfess/base/constants/SystemConstantsadmin, ~*%s/p3/serviceValidate?ticket=%s&service=%s   , H 0 IauthenticationSuccess  ,authenticationFailure !获取cas认证信息失败: (获取cas认证信息失败: ,&code=%s&redirect_uri=%s ,   ^ , , ,获取oauth认证信息失败  5 ^!当前服务未开启单点登录  ,! ^ H`com/artfess/base/conf/SsoConfigcas oauth jwt 00com/artfess/base/exception/ServerRejectException单点登录模式匹配异常!通过单点认证登录成功。 (    weChatWork  !企业微信登录返回结果: 4(.com/fasterxml/jackson/databind/node/ObjectNode0UserId  I : ^ 查无与您企微账号[userid:]绑定的eip账号  *企业微信登录失败 ,eip用户账号:企业微信登录失败 : errmsg weChatOffAcc   ^ `'com/fasterxml/jackson/databind/JsonNode微信登录失败 : dingtalkuserid I 查无与您钉钉账号[userid:钉钉登录失败!eip账号: 不存在钉钉登录失败 : 0 accountId查无与您愉快政账号【】绑定的系统账号!  登录失败!账号:愉快政验证失败 : message愉快政账号【6】已绑定平台其他用户,请联系管理员!   o  PssoUrl , ssoLogoutUrl , , 0  0 0 #com/artfess/base/model/CommonResult 退出成功  Oorg/springframework/security/authentication/UsernamePasswordAuthenticationToken    ^ x  # +8   x x"账号在锁定状态中,请于【 a0分钟】后登录,或联系管理员解锁!    xmobilepc ^  -1 K   %   -com/artfess/base/jwt/JwtAuthenticationRequest%javax/servlet/http/HttpServletRequestjavax/servlet/http/HttpSessionjava/util/Listjava/util/Iterator9org/springframework/security/core/userdetails/UserDetails java/util/Map9org/springframework/security/core/AuthenticationExceptionjava/io/IOExceptionjava/util/Optional.org/apache/http/client/ClientProtocolExceptionjava/time/LocalDateTimejava/lang/Long(com/artfess/base/service/LoginLogServicegetClass()Ljava/lang/Class;com/artfess/base/util/AppUtilgetBean%(Ljava/lang/Class;)Ljava/lang/Object; getUsername()Ljava/lang/String; getPasswordcom/artfess/base/util/Base64 getFromBase64&(Ljava/lang/String;)Ljava/lang/String;format9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;org/slf4j/Loggererror*(Ljava/lang/String;Ljava/lang/Throwable;)VgetCause()Ljava/lang/Throwable;com/artfess/base/util/BeanUtils isNotEmpty(Ljava/lang/Object;)Z getMessagecom/artfess/base/util/HttpUtil getRequest)()Ljavax/servlet/http/HttpServletRequest; getSession"()Ljavax/servlet/http/HttpSession;com/artfess/base/util/IPUtils getIpAddr;(Ljavax/servlet/http/HttpServletRequest;)Ljava/lang/String; com/artfess/base/util/StringUtilequalsgetJsonDefault+()Lcom/fasterxml/jackson/databind/JsonNode;get=(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;asInt()I getAttribute&(Ljava/lang/String;)Ljava/lang/Object;(I)VintValuevalueOf(I)Ljava/lang/Integer; setAttribute'(Ljava/lang/String;Ljava/lang/Object;)V)com/artfess/base/service/LoginUserService lockedUser(Ljava/lang/String;I)VqueryPersonLimitByAccount$(Ljava/lang/String;)Ljava/util/List;queryMachineIps"(Ljava/util/List;)Ljava/util/List;iterator()Ljava/util/Iterator;hasNext()Znext()Ljava/lang/Object;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;toString*(Ljavax/servlet/http/HttpServletRequest;)Z@org/springframework/security/core/userdetails/UserDetailsServiceloadUserByUsernameO(Ljava/lang/String;)Lorg/springframework/security/core/userdetails/UserDetails;$com/artfess/base/jwt/JwtTokenHandler generateTokenO(Lorg/springframework/security/core/userdetails/UserDetails;)Ljava/lang/String; getFullname getAccount getUserId getTenantIdput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;com/artfess/base/util/MapUtil getString5(Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String;removeAttributeupdateLastLoginTimecom/artfess/base/conf/JwtConfiggetExpirationLong()J(J)Ljava/lang/Long;k(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;ZLjava/util/Map;)V'org/springframework/http/ResponseEntityok=(Ljava/lang/Object;)Lorg/springframework/http/ResponseEntity;'(Ljava/lang/String;)[Ljava/lang/String; getCasUrl com/artfess/base/util/FluentUtilcom/artfess/base/util/XmlUtiltoJsoncom/artfess/base/util/JsonUtil toJsonNodehasasTextprintStackTraceinfogetOauthTokenUrlgetOauthBasicHeader"org/apache/http/entity/ContentTypeAPPLICATION_FORM_URLENCODED$Lorg/apache/http/entity/ContentType;postn(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Lorg/apache/http/entity/ContentType;)Ljava/lang/String;isObjectgetOauthAccesstokenKeygetOauthCheckUrlgetOauthUsernameKeyisEnableorg/springframework/util/AssertisTrue(ZLjava/lang/String;)VgetMode isPresentgetUsernameFromTokendebugj(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/Map;)V.com/artfess/base/feign/ApplicationFeignServicegetUserInfoUrlsendHttpsRequestJ(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;%com/artfess/base/feign/UCFeignServicegetUserByWxWorkIdisEmptyisNullK(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)VgetUserByOpenId9(Ljava/lang/String;)Lcom/artfess/base/model/CommonResult;getState()Ljava/lang/Boolean;java/lang/Boolean booleanValuegetValuegetUserByDingtalkIdgetUserInfoForYkz((Ljava/lang/String;Ljava/lang/String;Z)V getMapper/()Lcom/fasterxml/jackson/databind/ObjectMapper;+com/fasterxml/jackson/databind/ObjectMappercreateObjectNode2()Lcom/fasterxml/jackson/databind/node/ObjectNode;V(Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/node/ObjectNode;updateUserUniteW(Lcom/fasterxml/jackson/databind/node/ObjectNode;)Lcom/artfess/base/model/CommonResult;(Z)Ljava/lang/Boolean; getSsoUrlgetSsoLogoutUrl getHeader substring(I)Ljava/lang/String;getTenantIdFromToken refreshTokenjava/util/ObjectsrequireNonNull&(Ljava/lang/Object;)Ljava/lang/Object;'(Ljava/lang/Object;Ljava/lang/Object;)VAorg/springframework/security/authentication/AuthenticationManagerf(Lorg/springframework/security/core/Authentication;)Lorg/springframework/security/core/Authentication;asLonggetLockedStatus()Ljava/lang/Integer; getLockedTime()Ljava/time/LocalDateTime;nowjava/time/ZoneOffsetof*(Ljava/lang/String;)Ljava/time/ZoneOffset; toInstant+(Ljava/time/ZoneOffset;)Ljava/time/Instant;java/time/Instant toEpochMilli longValue(J)Ljava/lang/StringBuilder;getLastLoginTimegetPwdCreateTime toLocalDate()Ljava/time/LocalDate;java/time/LocalDate toEpochDayisSingle com/artfess/base/conf/SaaSConfig getExpirationputTokenInCache](Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;o(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;logremoveFromCache9(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Vorg/slf4j/LoggerFactory getLogger%(Ljava/lang/Class;)Lorg/slf4j/Logger;!       s !"/*#I$ %&'("`*M,+,+#j klm$ %&)* +&,("5#q$%&)*-[s./s01("5#u$%&)*-[s2/s034"P +MN*, :+ N*,- S:Y,S:::::::*,  :!:  { "#$6  %#$6  &#$6  Q K'():  )Y*: ' +`,Y: - + *.,/0Y1*,22:,3:   4w6  5:  ? 45 6:  7" 89:   6  #0Y:Y;<=,=>=?1@6*A+B: *C D:  E: : : 6FYG: H[ H:I: J: K: LMY SY SN*-O6PQRW*PS  T'U*. VWY    *XYZ[\" #F "$;?U_fnrw$.9CKUZdsv%-4=FOkt$._56$N78:9: l;< `=< T>< ?@ ABC* vqD fEF dGF UHI4QJK%&LMN*O*P*wTQRKSTDU*VWX Y* Z* [* \* ]%^_` fEa dGa %^bc "defffgCg defffhifjkl*defffhif U defffhifmnno%$defffhifdefffhifpffffqrstu3v[swx[eyz{[s|}s~szs~"6^M,_`N-:662:+# #,.4$4# *6%&6[*3* ,cdff"N::aY*bcSY+SY,SdN-e:f:ghg#i#j:(khk#l#j:0Y1D:m:Y;n=-=?o0Y:Y;p=q=?1 {~ #B +18BV`q{ ~    $\ 1J?*8C@?78%&*A*** *c+Vdffffffk$Bg@r" N*br:sY+SY,S:*bt::Y;==?uv:f:gw_*bx#j: *by: :Y; = =?uv:  f:   w *bz#jN:m0Y{|- #J 'FMZkt &#$%'$kKY* tB* $* @ '*Fp*Mi@78%&*A*Z* **cfffBg"7*b}~:*b:- -9:+*+9:T,*,9:1, *C+9: Y* :@6*AB: *C D:  E: : : FYG: HR H:I: J: K: LMY SY SNPQRW, *PS  TWY    *XYZ\# - ./01(495K8\9n<=?CFGIJKLMNOPQRS T&U7XAZR[c^$HJK%&A*s*j*QRVWX Y* Z* [* \* ^_`*^bcC(ff""# dfffhpffffqrst3v[sx[ey{[s|}sss"*+9M:Y;=,=?N,fN:q-j: -j:*: $0Y:Y;===?1#j:* :@6 *AB: *C D:  E: : : HA H:I: K: Q:LMY SYSN*  TWY   \:0Y:Y;==?10Y:Y;=-j=?17?B de #"de5f7h?kBiDjQl\mfnqp~qrtwz{}~ <FReg$D 787JKQRV WX Y* wZ* s\* o*g78q*~@[*%&*7o\J*` c}Bdfg<ffk dfffkfhpffff(dfffkfgrst3v[sx[ey{[s|}sss"Tm*+9MN,fN:q--j:*::WY\#j:* :@6 *AB: *C D:  E: : : HA H:I: K: Q:LMY SYSN*  TWY   \WY\0Y:Y;=-j=?1$' #!$')6?JWbl|"5=J$) 787JKl@[*QRV WX vY* mZ* i\* e*J*Wm%&mS*Q`Wmcs'dfgRfkdffkfhpffffdffrst3v[sx[ey{[s|}sss"\*+9MN,fN:q-!-j:*: $0Y:Y;===?1#j:*AB:* :@6 *CD: E: : : HAH:I: K: Q: LMY SYSN*   TWY   \0Y:Y;===?10Y:Y;=-j=?1$' #~$')6?JWg)<]$) 787JKQRV vY* mZ* i\* e* J*W@[*WX%&f*d` c'dfg0fk dffkfphffffdffkfp dfrst3v[sx[ey{[s|}sss" *+9MN,fN:q6-b-j:-j:*: 8:Y;===?o6WY\#j:*AB:  * :  @6 *C D:  E: ::FYG: HA H:I: K:Q: LMY SYSN*  T*.VWY  *XYZ[\0Y:Y;===?10Y:Y;=-j=?1 #% -09DO \ l   !"#$%#&?)K,V.w03$ 787JKQR V Y* Z* \**~^_DT*OI*\<@[*WX %&*0]`~^bcdfg>dfffk4dfffkfphffffq7 dfffkfp dfrst3v[sx[ey{[s|}sss"y ]+::* :+ :* T:YS::::::: *  :   !:  | "#$6  %#$6  &#$6R L'(): )Y*:'+`,Y:-+ *./0Y1*22:   3:   4x6   5:  ? 45 6:7"89:  6  $0Y:Y;<==>=?1@6 *A+B: *C D:  E: ::6FYG: H H:I: J:K:*,9:D#j: E)0Y:Y;=-9=¶=?1ö:W,9W*WLMY SYSN*O6PQRW* PS T'U*.VWY  *XYZ[\%( #>O9; =>AB%M(C*DBEFF\GfHmJuKyN~OPRSUVWXZ\^_`a bd,e6fBlLpUq_rdsot~uvwxyz{} !%(19@IR[mr~(1<$`#f56*O78;9:m;< a=< U><?@ AB C*rD gEF oGF _HI ~5*@JKm@\]%&]LM]]WN* SO*IP*~QRSTU* cV  TWX IY* @Z* !<[*%8\*(5]1,^_`4gEa oGa ]]1,^bc (defffgDg defffhifjkl+ defffhif Wdefffhifmnno%% defffhifdefffhifpffffqkcrst3v[sx[eyz{[s|}sszs"@FYGN-&*b}ɹRW-*b˹RW-*b͹RW-\#+;$*@%&@QR@8_` 8brt3v[sx[ey{[s|}sss"X+*XιM,N*C-:*C-:*C-:+@6*TWY\#")39E$RX%&XQRJ*CY*9*)/[*3%*9Vt+v[sx[ey}sss"C+*XιM,N*C-:*C-:+@6*ӻYշְ#)/9$HC%&CQR5*.Y*$*)[*/Vt+v[sx[ey}sss"h+W,W*ػY+,ڹW# $ %&**rs"P+H  N--!:)ݶ#j:޶#$6߶#$6#$6#7 #$6 &#$6 ++y+:  emZ: *.+J/. e70Y:Y;==?1 L ++:  *%: e6#~  (4@LXdp| , -.34,516E7L8N>$!n I1E </ 4*@<L<X<d p< |>< <AB .?@P%&PJKP*cAjdfjkf*6df"b|:*X/,*M*C,-*XW&::*C,-*XW*-#* I KM(N+QCSHTOUfX{Y$RHQROU*|%&|V|*|*|Y* o*cL Aff" dfffffdffffff"7*X/:,*M*C,-#c df(g+i6k$4*7%&7V7*7[*cAff !"! #J'[s [s s s s