(1)subject进入Processor链子流程处理传入访问此资源所支持的角色role1,role2,传入创建的不同类型的subject进入到多个自定义的processor处理器组成的过滤链处理processor1processor2processor3processor1.support(subject1)&&processor1.isOver()?(2)进入到对应的processor处理认证授权truesuccess?flase认证授权成功trueprocessor链匹配完了?flaseflase认证授权失败抛出对应异常true restful请求securityManager.checkIn请求资源是否属于pathRoleMatcher排除过滤链正常通过进入内部true根据request创建subject listsubjectFactory.createSubjects之后对subject list循环处理falseJwtSubjectPasswordSubject....通过pathRoleMatcher匹配对应请求路径所支持角色放入subject的supportRole(1)进入Process链子流程处理认证鉴权成功?true最后一个subject?falsefalse认证授权失败解析抛出异常true(2)特定subject进入特定的processor处理子流程eg:PasswordSubject 进入PasswordProcessor账户信息Providerauthenticated?subject中的账户信息认证授权失败抛出对应异常falseauthenticated?truesubject中的所拥有角色subject中的访问资源所支持角色flase认证授权成功truepower by tomsun28(usthe.com)