@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 TokenInfo createToken(@Nonnull Credentials credentials) { for (TokenProvider tp : providers) { TokenInfo info = tp.createToken(credentials); if (info != null) { return info; } } return null; }
@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; }
@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; }
@Override public TokenInfo call() throws Exception { return tp.createToken(userId, attributes); } });
@Test(expected = UnsupportedOperationException.class) public void testCreateTokenFromId() { composite.createToken("id", ImmutableMap.<String, Object>of()); }
@Test public void testCreateTokenFromCredentials() { assertSame(info, composite.createToken(new SimpleCredentials("id", new char[0]))); assertNull(composite.createToken(new GuestCredentials())); assertNull(composite.createToken(new Credentials() { })); }
TokenInfo ti = tokenProvider.createToken(shared); if (ti != null) { TokenCredentials tc = new TokenCredentials(ti.getToken());
TokenInfo ti = tokenProvider.createToken(shared); if (ti != null) { TokenCredentials tc = new TokenCredentials(ti.getToken());
@Test public void testCreateToken() throws Exception { String userId = getTestUser().getID(); readOnlyRoot.refresh(); assertNull(readOnlyTp.createToken(userId, ImmutableMap.<String, Object>of())); }
TokenInfo ti = tokenProvider.createToken(shared); if (ti != null) { TokenCredentials tc = new TokenCredentials(ti.getToken());
@Test public void testCreateToken2() throws Exception { // make sure user already has a token-parent node. generateToken(); // now generate a new token with the read-only root assertNull(readOnlyTp.createToken(getTestUser().getID(), ImmutableMap.<String, Object>of())); }
@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")); }
@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())); }
@Test public void testValidTokenCredentials() throws Exception { Root root = adminSession.getLatestRoot(); TokenConfiguration tc = getSecurityProvider().getConfiguration(TokenConfiguration.class); TokenProvider tp = tc.getTokenProvider(root); SimpleCredentials sc = (SimpleCredentials) getAdminCredentials(); TokenInfo info = tp.createToken(sc.getUserID(), Collections.<String, Object>emptyMap()); ContentSession cs = login(new TokenCredentials(info.getToken())); try { assertEquals(sc.getUserID(), cs.getAuthInfo().getUserID()); } finally { cs.close(); } }
@Test public void testValidTokenCredentials() throws Exception { Root root = adminSession.getLatestRoot(); TokenConfiguration tokenConfig = getSecurityProvider().getConfiguration(TokenConfiguration.class); TokenProvider tp = tokenConfig.getTokenProvider(root); SimpleCredentials sc = (SimpleCredentials) getAdminCredentials(); TokenInfo info = tp.createToken(sc.getUserID(), Collections.<String, Object>emptyMap()); ContentSession cs = login(new TokenCredentials(info.getToken())); try { assertEquals(sc.getUserID(), cs.getAuthInfo().getUserID()); } finally { cs.close(); } }
/** * @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()); }