@Override public TokenInfo createToken(@NotNull Credentials credentials) { for (TokenProvider tp : providers) { TokenInfo info = tp.createToken(credentials); if (info != null) { return info; } } return null; }
@Override public boolean doCreateToken(@NotNull Credentials credentials) { for (TokenProvider tp : providers) { if (tp.doCreateToken(credentials)) { return true; } } return false; }
@Override public TokenInfo getTokenInfo(@NotNull String token) { for (TokenProvider tp : providers) { TokenInfo info = tp.getTokenInfo(token); if (info != null) { return info; } } return null; }
@Test public void testNullProvider() { TokenProvider tp = CompositeTokenProvider.newInstance(); assertSame(tp, CompositeTokenProvider.newInstance(ImmutableList.<TokenProvider>of())); Credentials creds = new Credentials() {}; assertFalse(tp.doCreateToken(null)); assertFalse(tp.doCreateToken(creds)); assertNull(tp.createToken(null, null)); assertNull(tp.createToken("userID", ImmutableMap.<String, String>of())); assertNull(tp.createToken(null)); assertNull(tp.createToken(creds)); assertNull(tp.getTokenInfo(null)); assertNull(tp.getTokenInfo("anyString")); }
if (tokenProvider != null && sharedState.containsKey(SHARED_KEY_CREDENTIALS)) { Credentials shared = getSharedCredentials(); if (shared != null && tokenProvider.doCreateToken(shared)) { Root r = getRoot(); if (r != null) { TokenInfo ti = tokenProvider.createToken(shared); if (ti != null) { TokenCredentials tc = new TokenCredentials(ti.getToken());
@Test public void testAuthenticateExpiredToken() throws Exception { TokenProvider tp = new TokenProviderImpl(root, ConfigurationParameters.of(TokenProvider.PARAM_TOKEN_EXPIRATION, 1), getUserConfiguration()); TokenInfo info = tp.createToken(userId, Collections.<String, Object>emptyMap()); waitUntilExpired(info); try { new TokenAuthentication(tp).authenticate(new TokenCredentials(info.getToken())); fail("LoginException expected"); } catch (LoginException e) { // success } // expired token must have been removed assertNull(tp.getTokenInfo(info.getToken())); }
if (tokenProvider != null && sharedState.containsKey(SHARED_KEY_CREDENTIALS)) { Credentials shared = getSharedCredentials(); if (shared != null && tokenProvider.doCreateToken(shared)) { Root r = getRoot(); if (r != null) { TokenInfo ti = tokenProvider.createToken(shared); if (ti != null) { TokenCredentials tc = new TokenCredentials(ti.getToken());
/** * @see <a href="https://issues.apache.org/jira/browse/OAK-1985">OAK-1985</a> */ @Test public void testTokenValidationIsCaseInsensitive() throws Exception { Root root = adminSession.getLatestRoot(); TokenConfiguration tokenConfig = getSecurityProvider().getConfiguration(TokenConfiguration.class); TokenProvider tp = tokenConfig.getTokenProvider(root); String userId = ((SimpleCredentials) getAdminCredentials()).getUserID(); TokenInfo info = tp.createToken(userId.toUpperCase(), Collections.<String, Object>emptyMap()); assertTrue(info.matches(new TokenCredentials(info.getToken()))); assertEquals(userId, info.getUserId()); info = tp.getTokenInfo(info.getToken()); assertTrue(info.matches(new TokenCredentials(info.getToken()))); assertEquals(userId, info.getUserId()); }
@Override public TokenInfo getTokenInfo(@Nonnull String token) { for (TokenProvider tp : providers) { TokenInfo info = tp.getTokenInfo(token); if (info != null) { return info; } } return null; }
if (tokenProvider != null && sharedState.containsKey(SHARED_KEY_CREDENTIALS)) { Credentials shared = getSharedCredentials(); if (shared != null && tokenProvider.doCreateToken(shared)) { Root r = getRoot(); if (r != null) { TokenInfo ti = tokenProvider.createToken(shared); if (ti != null) { TokenCredentials tc = new TokenCredentials(ti.getToken());
@Override public TokenInfo createToken(@Nonnull Credentials credentials) { for (TokenProvider tp : providers) { TokenInfo info = tp.createToken(credentials); if (info != null) { return info; } } return null; }
@Override public boolean doCreateToken(@Nonnull Credentials credentials) { for (TokenProvider tp : providers) { if (tp.doCreateToken(credentials)) { return true; } } return false; }
private boolean validateCredentials(TokenCredentials tokenCredentials) { // credentials without userID -> check if attributes provide // sufficient information for successful authentication. String token = tokenCredentials.getToken(); tokenInfo = tokenProvider.getTokenInfo(token); if (tokenInfo == null) { log.debug("No valid TokenInfo for token."); return false; } long loginTime = new Date().getTime(); if (tokenInfo.isExpired(loginTime)) { // token is expired log.debug("Token is expired"); tokenInfo.remove(); return false; } if (tokenInfo.matches(tokenCredentials)) { tokenInfo.resetExpiration(loginTime); return true; } return false; } }
@Override public TokenInfo createToken(@NotNull String userId, @NotNull Map<String, ?> attributes) { for (TokenProvider tp : providers) { TokenInfo info = tp.createToken(userId, attributes); if (info != null) { return info; } } return null; }
@Test public void testDoCreateToken() { assertTrue(composite.doCreateToken(new SimpleCredentials("id", new char[0]))); assertFalse(composite.doCreateToken(new GuestCredentials())); assertFalse(composite.doCreateToken(new Credentials() {})); }
tokenInfo = tokenProvider.getTokenInfo(token); if (tokenInfo == null) { log.debug("No valid TokenInfo for token.");
@Override public TokenInfo createToken(@Nonnull String userId, @Nonnull Map<String, ?> attributes) { for (TokenProvider tp : providers) { TokenInfo info = tp.createToken(userId, attributes); if (info != null) { return info; } } return null; }
@Test public void testUnbindCredentialsSupport() { CredentialsSupport testSupport = new TestCredentialsSupport(sc.getUserID()); ServiceRegistration registration = context.bundleContext().registerService(CredentialsSupport.class.getName(), testSupport, new Hashtable()); TokenProvider tp = tokenConfiguration.getTokenProvider(root); assertTrue(tp.doCreateToken(sc)); assertTrue(tp.doCreateToken(new TestCredentialsSupport.Creds())); registration.unregister(); tp = tokenConfiguration.getTokenProvider(root); assertTrue(tp.doCreateToken(sc)); assertFalse(tp.doCreateToken(new TestCredentialsSupport.Creds())); } }
tokenInfo = tokenProvider.getTokenInfo(token); if (tokenInfo == null) { log.debug("No valid TokenInfo for token.");
@Override public TokenInfo call() throws Exception { return tp.createToken(userId, attributes); } });