[{"title":"( 221 个子文件 355KB ) java实现oauth2.0服务端+客户端(含JWT)","children":[{"title":"DEPENDENCIES <span style='color:#111;'> 462B </span>","children":null,"spread":false},{"title":"OAuthAccessResourceRequestTest.java <span style='color:#111;'> 22.76KB </span>","children":null,"spread":false},{"title":"OAuthRequestTest.java <span style='color:#111;'> 21.34KB </span>","children":null,"spread":false},{"title":"OAuthUtils.java <span style='color:#111;'> 17.75KB </span>","children":null,"spread":false},{"title":"ResourceTest.java <span style='color:#111;'> 14.14KB </span>","children":null,"spread":false},{"title":"OAuthUtilsTest.java <span style='color:#111;'> 13.11KB </span>","children":null,"spread":false},{"title":"OAuthUnauthenticatedRequestTest.java <span style='color:#111;'> 12.60KB </span>","children":null,"spread":false},{"title":"JWT.java <span style='color:#111;'> 11.46KB </span>","children":null,"spread":false},{"title":"OAuthAuthorizationResponseImplTest.java <span style='color:#111;'> 11.09KB </span>","children":null,"spread":false},{"title":"OAuthClientRequest.java <span style='color:#111;'> 7.73KB </span>","children":null,"spread":false},{"title":"BodyOAuthValidatorTest.java <span style='color:#111;'> 7.12KB </span>","children":null,"spread":false},{"title":"OAuthASResponseTest.java <span style='color:#111;'> 7.12KB </span>","children":null,"spread":false},{"title":"OAuthResponse.java <span style='color:#111;'> 6.84KB </span>","children":null,"spread":false},{"title":"JSONHttpServletRequestWrapper.java <span style='color:#111;'> 6.58KB </span>","children":null,"spread":false},{"title":"OAuthFilter.java <span style='color:#111;'> 6.49KB </span>","children":null,"spread":false},{"title":"AccessTokenTestAuthCodeTest.java <span style='color:#111;'> 6.48KB </span>","children":null,"spread":false},{"title":"TokenEndpoint.java <span style='color:#111;'> 6.34KB </span>","children":null,"spread":false},{"title":"JWTWriterTestCase.java <span style='color:#111;'> 6.26KB </span>","children":null,"spread":false},{"title":"ResourceBodyEndpoint.java <span style='color:#111;'> 6.16KB </span>","children":null,"spread":false},{"title":"AbstractValidator.java <span style='color:#111;'> 5.93KB </span>","children":null,"spread":false},{"title":"OAuthAccessResourceRequest.java <span style='color:#111;'> 5.82KB </span>","children":null,"spread":false},{"title":"Common.java <span style='color:#111;'> 5.71KB </span>","children":null,"spread":false},{"title":"UnauthenticatedTokenEndpoint.java <span style='color:#111;'> 5.71KB </span>","children":null,"spread":false},{"title":"OAuthError.java <span style='color:#111;'> 5.68KB </span>","children":null,"spread":false},{"title":"OAuthJSONAccessTokenResponseTest.java <span style='color:#111;'> 5.63KB </span>","children":null,"spread":false},{"title":"HttpClient4.java <span style='color:#111;'> 5.57KB </span>","children":null,"spread":false},{"title":"UnauthenticatedAccessTokenTestAuthCodeTest.java <span style='color:#111;'> 5.57KB </span>","children":null,"spread":false},{"title":"ClaimsSet.java <span style='color:#111;'> 5.56KB </span>","children":null,"spread":false},{"title":"BasicClientInfo.java <span style='color:#111;'> 5.13KB </span>","children":null,"spread":false},{"title":"URLConnectionClient.java <span style='color:#111;'> 5.04KB </span>","children":null,"spread":false},{"title":"EndUserAuthorizationTest.java <span style='color:#111;'> 4.67KB </span>","children":null,"spread":false},{"title":"OAuthASResponse.java <span style='color:#111;'> 4.59KB </span>","children":null,"spread":false},{"title":"ResourceHeaderEndpoint.java <span style='color:#111;'> 4.57KB </span>","children":null,"spread":false},{"title":"ResourceQueryEndpoint.java <span style='color:#111;'> 4.56KB </span>","children":null,"spread":false},{"title":"HeaderOAuthValidatorTest.java <span style='color:#111;'> 4.51KB </span>","children":null,"spread":false},{"title":"OAuthClientResponse.java <span style='color:#111;'> 4.47KB </span>","children":null,"spread":false},{"title":"OAuthProblemException.java <span style='color:#111;'> 4.44KB </span>","children":null,"spread":false},{"title":"OAuthServerRegistrationRequestTest.java <span style='color:#111;'> 4.30KB </span>","children":null,"spread":false},{"title":"JSONUtils.java <span style='color:#111;'> 4.19KB </span>","children":null,"spread":false},{"title":"OAuthClientValidator.java <span style='color:#111;'> 4.15KB </span>","children":null,"spread":false},{"title":"OAuthRequest.java <span style='color:#111;'> 4.13KB </span>","children":null,"spread":false},{"title":"AuthzEndpoint.java <span style='color:#111;'> 4.00KB </span>","children":null,"spread":false},{"title":"AccessTokenPasswordCredentialsTest.java <span style='color:#111;'> 3.88KB </span>","children":null,"spread":false},{"title":"QueryOAuthValidatorTest.java <span style='color:#111;'> 3.88KB </span>","children":null,"spread":false},{"title":"OauthMockRequestBuilder.java <span style='color:#111;'> 3.84KB </span>","children":null,"spread":false},{"title":"OAuthClientTest.java <span style='color:#111;'> 3.75KB </span>","children":null,"spread":false},{"title":"OAuthResourceResponseTest.java <span style='color:#111;'> 3.72KB </span>","children":null,"spread":false},{"title":"OAuthAuthzResponse.java <span style='color:#111;'> 3.71KB </span>","children":null,"spread":false},{"title":"ResourceServer.java <span style='color:#111;'> 3.57KB </span>","children":null,"spread":false},{"title":"OAuth.java <span style='color:#111;'> 3.47KB </span>","children":null,"spread":false},{"title":"IOTestCaseConstants.java <span style='color:#111;'> 3.46KB </span>","children":null,"spread":false},{"title":"BasicCredentials.java <span style='color:#111;'> 3.45KB </span>","children":null,"spread":false},{"title":"BearerBodyOAuthValidator.java <span style='color:#111;'> 3.41KB </span>","children":null,"spread":false},{"title":"PushPullValidator.java <span style='color:#111;'> 3.38KB </span>","children":null,"spread":false},{"title":"OAuthClientResponseFactory.java <span style='color:#111;'> 3.38KB </span>","children":null,"spread":false},{"title":"OAuthProviderType.java <span style='color:#111;'> 3.38KB </span>","children":null,"spread":false},{"title":"TokenValidatorTest.java <span style='color:#111;'> 3.32KB </span>","children":null,"spread":false},{"title":"OAuthResourceResponse.java <span style='color:#111;'> 3.25KB </span>","children":null,"spread":false},{"title":"ClientRegistrationTest.java <span style='color:#111;'> 3.25KB </span>","children":null,"spread":false},{"title":"OAuthClient.java <span style='color:#111;'> 3.18KB </span>","children":null,"spread":false},{"title":"RegistrationEndpoint.java <span style='color:#111;'> 3.15KB </span>","children":null,"spread":false},{"title":"JWTClaimsSetParser.java <span style='color:#111;'> 3.09KB </span>","children":null,"spread":false},{"title":"OAuthClientRegistrationRequest.java <span style='color:#111;'> 3.08KB </span>","children":null,"spread":false},{"title":"JWTReaderTestCase.java <span style='color:#111;'> 3.08KB </span>","children":null,"spread":false},{"title":"OAuthClientRegistrationResponse.java <span style='color:#111;'> 3.04KB </span>","children":null,"spread":false},{"title":"OAuthServerRegistrationRequest.java <span style='color:#111;'> 3.00KB </span>","children":null,"spread":false},{"title":"RegistrationValidator.java <span style='color:#111;'> 2.98KB </span>","children":null,"spread":false},{"title":"BearerHeaderOAuthValidator.java <span style='color:#111;'> 2.97KB </span>","children":null,"spread":false},{"title":"OAuthTokenRequest.java <span style='color:#111;'> 2.95KB </span>","children":null,"spread":false},{"title":"OAuthServerRegistrationResponse.java <span style='color:#111;'> 2.88KB </span>","children":null,"spread":false},{"title":"JSONBodyParametersApplierTest.java <span style='color:#111;'> 2.82KB </span>","children":null,"spread":false},{"title":"OAuthUtils.java <span style='color:#111;'> 2.77KB </span>","children":null,"spread":false},{"title":"OAuthUnauthenticatedTokenRequest.java <span style='color:#111;'> 2.77KB </span>","children":null,"spread":false},{"title":"OAuthJSONAccessTokenResponse.java <span style='color:#111;'> 2.72KB </span>","children":null,"spread":false},{"title":"BearerQueryOAuthValidator.java <span style='color:#111;'> 2.69KB </span>","children":null,"spread":false},{"title":"OAuthAuthzRequest.java <span style='color:#111;'> 2.68KB </span>","children":null,"spread":false},{"title":"BodyURLEncodedParametersApplierTest.java <span style='color:#111;'> 2.57KB </span>","children":null,"spread":false},{"title":"AbstractValidatorTest.java <span style='color:#111;'> 2.56KB </span>","children":null,"spread":false},{"title":"BasicClientInfoBuilderTest.java <span style='color:#111;'> 2.55KB </span>","children":null,"spread":false},{"title":"QueryParameterApplierTest.java <span style='color:#111;'> 2.53KB </span>","children":null,"spread":false},{"title":"FragmentParametersApplierTest.java <span style='color:#111;'> 2.51KB </span>","children":null,"spread":false},{"title":"JSONUtilsTest.java <span style='color:#111;'> 2.50KB </span>","children":null,"spread":false},{"title":"Header.java <span style='color:#111;'> 2.46KB </span>","children":null,"spread":false},{"title":"BasicClientInfoBuilder.java <span style='color:#111;'> 2.44KB </span>","children":null,"spread":false},{"title":"AbstractOAuthTokenRequest.java <span style='color:#111;'> 2.42KB </span>","children":null,"spread":false},{"title":"WWWAuthHeaderParametersApplierTest.java <span style='color:#111;'> 2.34KB </span>","children":null,"spread":false},{"title":"BasicOAuthToken.java <span style='color:#111;'> 2.34KB </span>","children":null,"spread":false},{"title":"GitHubTokenResponse.java <span style='color:#111;'> 2.34KB </span>","children":null,"spread":false},{"title":"HttpClient4Test.java <span style='color:#111;'> 2.30KB </span>","children":null,"spread":false},{"title":"TestUtils.java <span style='color:#111;'> 2.22KB </span>","children":null,"spread":false},{"title":"MD5Generator.java <span style='color:#111;'> 2.18KB </span>","children":null,"spread":false},{"title":"JWTOAuthRequest.java <span style='color:#111;'> 2.14KB </span>","children":null,"spread":false},{"title":"BodyTokenExtractorTest.java <span style='color:#111;'> 2.10KB </span>","children":null,"spread":false},{"title":"AbstractValidatorImpl.java <span style='color:#111;'> 2.08KB </span>","children":null,"spread":false},{"title":"OAuthRegistrationClient.java <span style='color:#111;'> 2.07KB </span>","children":null,"spread":false},{"title":"ResourceServlet.java <span style='color:#111;'> 2.06KB </span>","children":null,"spread":false},{"title":"OAuthAccessTokenResponse.java <span style='color:#111;'> 2.05KB </span>","children":null,"spread":false},{"title":"HeaderTokenExtractorTest.java <span style='color:#111;'> 2.05KB </span>","children":null,"spread":false},{"title":"FragmentParametersApplier.java <span style='color:#111;'> 2.01KB </span>","children":null,"spread":false},{"title":"JWTConstants.java <span style='color:#111;'> 2.01KB </span>","children":null,"spread":false},{"title":"......","children":null,"spread":false},{"title":"<span style='color:steelblue;'>文件过多,未全部展示</span>","children":null,"spread":false}],"spread":true}]