3b AD E F G H IJ KL DM N =O P QRS D T UV WX Y Z[ \ ] ^ W_ ` Wa bcd ef eO gh ij Zk lOmn Qop *q Wr st suv wx y Qz{ |}~   :D r : :P   Z  A  y q    Q  f      W   sJ =f s |        Q  Z      Q Q logMetacatLorg/apache/log4j/Logger;request'Ljavax/servlet/http/HttpServletRequest;notAuthorizedCodeLjava/lang/String;serviceFailureCoderequestIdentifier)Lorg/dataone/service/types/v1/Identifier;w(Ljavax/servlet/http/HttpServletRequest;Lorg/dataone/service/types/v1/Identifier;Ljava/lang/String;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis-Ledu/ucsb/nceas/metacat/dataone/D1AuthHelper;doIsAuthorized(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v2/SystemMetadata;Lorg/dataone/service/types/v1/Permission;)Ve/Lorg/dataone/service/exceptions/ServiceFailure;nodelist'Lorg/dataone/service/types/v2/NodeList;sfsession&Lorg/dataone/service/types/v1/Session;sysmeta-Lorg/dataone/service/types/v2/SystemMetadata; permission)Lorg/dataone/service/types/v1/Permission; exceptionsLjava/util/List;LocalVariableTypeTableALjava/util/List; StackMapTableV ExceptionsdoAuthoritativeMNAuthorizationV(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v2/SystemMetadata;)V doUpdateAuth(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v2/SystemMetadata;Lorg/dataone/service/types/v1/Permission;Lorg/dataone/service/types/v1/NodeReference;)V localNodeId,Lorg/dataone/service/types/v1/NodeReference;isAuthoritiveMNZauthoritiveMNMessagedoCNOnlyAuthorization)(Lorg/dataone/service/types/v1/Session;)VdoAdminAuthorizationdoGetSysmetaAuthorizationprepareAndThrowNotAuthorized(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v1/Identifier;Lorg/dataone/service/types/v1/Permission;Ljava/lang/String;)Vs&Lorg/dataone/service/types/v1/Subject;pid detailCodesessionSubjectsLjava/util/Set;includedSubjectsLjava/lang/StringBuffer;msg7Ljava/util/Set;checkExpandedPermissions(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v2/SystemMetadata;Lorg/dataone/service/types/v1/Permission;)Z.Lorg/dataone/service/exceptions/BaseException;.Lorg/dataone/service/exceptions/NotAuthorized; isAllowedp getCNNodeList)()Lorg/dataone/service/types/v2/NodeList;cnLorg/dataone/client/v2/CNode;/Lorg/dataone/service/exceptions/NotImplemented;expandRightsHolderO(Lorg/dataone/service/types/v1/Subject;Lorg/dataone/service/types/v1/Subject;)Z sizeOfGroupsIpersons sizeOfPersons totalSizegroupsquerystartcountstatussubjects*Lorg/dataone/service/types/v1/SubjectInfo; rightHoldersessionSubjectis7Ljava/util/List;6Ljava/util/List; isInGroups_(Lorg/dataone/service/types/v1/Subject;Lorg/dataone/service/types/v1/Subject;Ljava/util/List;)Zmembermembersgroup$Lorg/dataone/service/types/v1/Group; userSession8Ljava/util/List; Signature(Lorg/dataone/service/types/v1/Subject;Lorg/dataone/service/types/v1/Subject;Ljava/util/List;)ZisLocalMNAdmin)(Lorg/dataone/service/types/v1/Session;)ZisLocalCNAdminisLocalNodeAdminP(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v1/NodeType;)Z nodeSubjectsubject nodeSubjectsnodeType'Lorg/dataone/service/types/v1/NodeType;allowednode#Lorg/dataone/service/types/v2/Node; nodeReferenceisAuthorizedBySysMetaSubjectsisReplicaMNodeAdmin}(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v2/SystemMetadata;Lorg/dataone/service/types/v2/NodeList;)Zreplica&Lorg/dataone/service/types/v1/Replica;nodeListBySubject isAuthorized replicaListreplicaNodeRef4Ljava/util/Set;8Ljava/util/List;isAuthoritativeMNodeAdmin|(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v1/NodeReference;Lorg/dataone/service/types/v2/NodeList;)ZauthoritativeMNode isCNAdminP(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v2/NodeList;)Znodes5Ljava/util/List;()V SourceFileD1AuthHelper.java A   java/lang/StringBuilder-D1AuthHepler.doIsAuthorzied - the session is     java/util/ArrayList ,  -org/dataone/service/exceptions/ServiceFailure      9: <=   =D1AuthHepler.doAuthoritativeMNAuthorization - the session is +D1AuthHepler.doUpdateAuth - the session is     clients can only call the update/updateSystemMetadata request on an object when it locates on its authoritative memember node. However, the authoritative member node of the object  on your request is (, which is differen to the current node  ,org/dataone/service/exceptions/NotAuthorized      For request [ !]: ServiceFailure raised: " #4D1AuthHepler.doCNOnlyAuthorization - the session is $ %%3D1AuthHepler.doAdminAuthorization - the session is 8D1AuthHepler.doGetSysmetaAuthorization - the session is -.& '(java/lang/StringBuffer$org/dataone/service/types/v1/Subject; )'%s not allowed on %s for subject[s]: %sjava/lang/Object Permission *+public , - -org/dataone/service/exceptions/NotImplemented-org/dataone/service/exceptions/InvalidRequest+org/dataone/service/exceptions/InvalidToken1030,Exception thrown from expandRightsHolder(): ./0 1::  234 56getCNNodeList - got CN instance 7dUnexpected Error getting NodeList from getCNNodeList(). Got 'NotImplemented' from the service call! 8#OCould not get NodeList from the CN. got 'NotImplemented' from the service call! 9mD1AuthorizationDelegate.expandRightHolder - at the start of method: after getting the cn node and cn node is :; <= >??D1AuthorizationDelegate.expandRightHolder - search the subject . in the cn and the returned result is not null @A  BC DA: in the cn and the size of return result equals the count Ej .And we didn't find the target in the this query. So we have to use the page query with the start number D1AuthorizationDelegate.expandRightHolder - we are already at the end of the returned restult since the size of returned results  is less than the count 2. So we have to break the loop and finish the try.D1AuthorizationDelegate.expandRightHolder - Something is wrong on the implementation of the method listSubject since the size of returned results  is greater than the count TD1AuthorizationDelegate.expandRightHolder - We can NOT find any member in the group % (if it is a group) matches the user D1AuthorizationDelegate.expandRightHolder - We can't determine if the use subject is a member of the right holder group since one of them is null or blank]D1NodeService.isInGroups - the given groups' (the returned result including groups) size is "org/dataone/service/types/v1/GroupLD1NodeService.isInGroups - there is a group in the list having the subjecct * which matches the right holder's subject FA%D1NodeService.isInGroups - the group  in the cn has members.D1NodeService.isInGroups - compare the member  with the user /D1NodeService.isInGroups - Find it! The member  in the group  matches the user ^D1NodeService.isInGroups - the given group is null (the returned result does NOT have a group G%'In isLocalNodeAdmin(), session is null 5In isLocalNodeAdmin(), MN authorization for the user H IJ KL  *In isLocalNodeAdmin(), Node reference is: MN OA+In isLocalNodeAdmin(), comparing subjects:  and the user;In is isLocalNodeAdmin method. Is this a local node admin? PQ RS TU-=================== The equalvent subject is 2V WAX YZ$org/dataone/service/types/v1/Replica [ !org/dataone/service/types/v2/Node \]?D1NodeService.isAuthoritativeMNodeAdmin(), comparing subjects:  and 'D1NodeService.isCNAdmin - the beginning ^A _;In isCNAdmin(), a Node reference from the CN node list is: $In isCNAdmin(), comparing subjects:  and the user +D1NodeService.isCNAdmin. Is it a cn admin? ,edu/ucsb/nceas/metacat/dataone/D1NodeService `a+edu/ucsb/nceas/metacat/dataone/D1AuthHelperjava/util/List%org/dataone/service/types/v2/NodeListjava/lang/Stringjava/util/Iterator java/util/Set$org/dataone/service/types/v1/Session'org/dataone/service/types/v1/Identifier'org/dataone/service/types/v1/Permission[Ljava/lang/Object;java/io/Serializable,org/dataone/service/exceptions/BaseExceptionorg/dataone/client/v2/CNode(org/dataone/service/types/v1/SubjectInfo*org/dataone/service/types/v1/NodeReference+org/dataone/service/types/v2/SystemMetadata getSubject(()Lorg/dataone/service/types/v1/Subject;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;getValue()Ljava/lang/String;toStringorg/apache/log4j/Loggerdebug(Ljava/lang/Object;)Vadd(Ljava/lang/Object;)ZgetAuthoritativeMemberNode.()Lorg/dataone/service/types/v1/NodeReference;isEmpty()Zget(I)Ljava/lang/Object;setDetail_code(Ljava/lang/String;)Vequals#org/apache/commons/lang/StringUtils isNotBlank(Ljava/lang/String;)Z getIdentifier+()Lorg/dataone/service/types/v1/Identifier;warn'(Ljava/lang/String;Ljava/lang/String;)Viterator()Ljava/util/Iterator;hasNextnext()Ljava/lang/Object;-(Ljava/lang/Object;)Ljava/lang/StringBuilder;getDescription*(Ljava/lang/Object;Ljava/lang/Throwable;)V%org/dataone/service/types/v1/NodeTypeCN+org/dataone/service/types/v1/util/AuthUtilsauthorizedClientSubjects7(Lorg/dataone/service/types/v1/Session;)Ljava/util/Set;,(Ljava/lang/String;)Ljava/lang/StringBuffer;format9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;equalsIgnoreCasegetRightsHoldergetClass()Ljava/lang/Class;java/lang/ClassgetCanonicalName initCause,(Ljava/lang/Throwable;)Ljava/lang/Throwable;"org/dataone/client/v2/itk/D1ClientgetCN()Lorg/dataone/client/v2/CNode; listNodeserrortrimgetNodeBaseServiceUrljava/lang/IntegervalueOf(I)Ljava/lang/Integer; listSubjects(Lorg/dataone/service/types/v1/Session;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;)Lorg/dataone/service/types/v1/SubjectInfo; getGroupList()Ljava/util/List;size()I getPersonList(I)Ljava/lang/StringBuilder;getHasMemberListMN+edu/ucsb/nceas/metacat/dataone/MNodeService getInstanceV(Ljavax/servlet/http/HttpServletRequest;)Ledu/ucsb/nceas/metacat/dataone/MNodeService;getCapabilities%()Lorg/dataone/service/types/v2/Node;getType)()Lorg/dataone/service/types/v1/NodeType;getSubjectList(Z)Ljava/lang/StringBuilder;org/apache/log4j/LevelDEBUGLorg/apache/log4j/Level; isEnabledFor(Lorg/apache/log4j/Priority;)Zo(Ljava/util/Collection;Lorg/dataone/service/types/v1/Permission;Lorg/dataone/service/types/v1/SystemMetadata;)ZgetReplicaList.org/dataone/service/types/v2/util/NodelistUtil selectNode^(Lorg/dataone/service/types/v2/NodeList;Lorg/dataone/service/types/v1/Subject;)Ljava/util/Set;getReplicaMemberNodefindNodex(Lorg/dataone/service/types/v2/NodeList;Lorg/dataone/service/types/v1/NodeReference;)Lorg/dataone/service/types/v2/Node; getNodeListisDebugEnabled getLogger,(Ljava/lang/Class;)Lorg/apache/log4j/Logger;!A **+*,*-*`a bcde4&+)+"Y  + Y:*+,-*+:W*:*+,*+:W*+,-:W*+*-*:*>GKWkzlvzvt u*w3y=z>~GHKMW]klvwz|f M ]|   3 3%* B  B B *+)+"Y  + YN*+:-W*:*+,:-W-*+**-:*2;?J^bR *2;<?AJP^_bdmvRA Pd  2n 2n *B B *0 +)+"Y  + 6Y:, P,!"C*+,-*+#:W*+,-:W6*:*+:WY $ ,%& ' ,! ( ! :/*+*-*)*Y*+,:-=.: Y / *01  2  3:*Zbfr|) *-6COYZbcfhr|}     >ily "h    >+ y -Y6P 6P.*/B BB VC*+)+"Y 4 + YM*+5 N,-W*N*+- N,-W,*+**,N-*-2=AJX\R, -*/22=3>7A5B6J:O;X<Y@\>]?eBnCFGHJHBO ] 2c 2c *BB*+)+"Y 6 + YM*+ N,-W*N*+- N,-W,*+**,N-*-2;?HVZRS T*V2Y;Z<^?\@]HaMbVcWgZe[fcilj}mnoqH@M [ 2a 2a *BB*C+)+"Y 7 + Y:*+,-*+:W*:*+,*+*+,8:W*+,-:W*+*-*:*>GKWklvw~ *3=>GHKMW]klvwf M ]&   3 3&* B  B B * +9::Y;:<:-/.=:Y  > ?W@AY-B-SY,,&SYCSD:)*Y+. .KNltx}\ .} 5 *6+9:<:-4.=: EF,GH 6ȧG:YLY M NO P Q R:SW:6MPIMPJMPKM*J (58DGJMPRff (" D R=  D!%B~)TLU+VLW+XYYZRI    )S =*+* * [Y\+ + [Y\TNY ] -^ * :66::-__`:  'Y a  b  c: +* d=6   e6  f: 6   e6   `6S`6Y a  g hi h -__`: i/Y j hk hl 9/Y m hn hl ))Y o  p +  q($%6&:'X(^)a*f+i,l-/0123589:<=>?ADEF)GDHKItKwL~MOSUVXY\    :^yavfqinlkS      g 8]22 ) IJ*K t >,tY r ,eh ,,:-A.s:-t%t+uY v t w + x:Y y t z ,:-.=:Y {  | *  f [Y\V* O * \@Y }  ~ t  * >V Ncde$fBh[ijklmno.pgqirktqxwz|HB/  #,= *+ = *+5  M >+ Y  + *::Y  ! +9:, ,:<:-m.=: ,:  -K .=: Y       u> Y   j ,/;B_ery~f 9! [" y#$%&;'(B)ey#e-a*+N,d+9:GB<:-/.=:Y   -,& 6SV`b>6"dddd^ ^ 5 -. 6++:,::xs-:a,:  -N .:  :<:  -% .:   6 קB$, 6 U\{p {'( U</0 ,h12"3}4,h1536= C/ 7+%8(9: 6+,-+9:-,::,:-s.=: <:  -Q .=: Y        u 6 j+-. 0 13489 :"<)=.>0A7B<F[GzHIHJKLNOQf z? [a! ;&)'(7#7#/   *T<=J>+ +,,: e+9:,:-.:: Y  ! 5:  ,:  -{ .=: g<:  -T .=: -Y       u> Y    [] _`bcf#h2i4l:oYq`risvwz{|}~ ~ #&/Hp B" i! # `)Y'(JJJH&#'>: # #'>?:]B*+#H!@A! IBC