keycloak-scim/testsuite/integration-arquillian/tests/base/src/test/resources
Thomas Darimont 3103e0fd0a KEYCLOAK-5244 Add BlacklistPasswordPolicyProvider (#4370)
* KEYCLOAK-5244 Add BlacklistPasswordPolicyProvider

This introduces a new PasswordPolicy which can refer to
a named predefined password-blacklist to avoid users
choosing too easy to guess passwords.

The BlacklistPasswordPolicyProvider supports built-in as
well as custom blacklists.
built-in blacklists use the form `default/filename`
and custom ones `custom/filename`, where filename
is the name of the found blacklist-filename.

I'd propose to use some of the freely available password blacklists
from the [SecLists](https://github.com/danielmiessler/SecLists/tree/master/Passwords) project.

For testing purposes one can download the password blacklist
```
wget -O 10_million_password_list_top_1000000.txt https://github.com/danielmiessler/SecLists/blob/master/Passwords/10_million_password_list_top_1000000.txt?raw=true
```
to /data/keycloak/blacklists/

Custom password policies can be configured with the SPI
configuration mechanism via jboss-cli:
```
/subsystem=keycloak-server/spi=password-policy:add()
/subsystem=keycloak-server/spi=password-policy/provider=passwordBlacklist:add(enabled=true)
/subsystem=keycloak-server/spi=password-policy/provider=passwordBlacklist:write-attribute(name=properties.blacklistsFolderUri, value=file:///data/keycloak/blacklists/)
```

Password blacklist is stored in a TreeSet.

* KEYCLOAK-5244 Encode PasswordBlacklist as a BloomFilter

We now use a dynamically sized BloomFilter with a
false positive probability of 1% as a backing store
for PasswordBlacklists.

BloomFilter implementation is provided by google-guava
which is available in wildfly.

Password blacklist files are now resolved against
the ${jboss.server.data.dir}/password-blacklists.

This can be overridden via system property, or SPI config.
See JavaDoc of BlacklistPasswordPolicyProviderFactory for details.

Revised implementation to be more extensible, e.g. it could be
possible to use other stores like databases etc.

Moved FileSystem specific methods to FileBasesPasswordBlacklistPolicy.

The PasswordBlacklistProvider uses the guava version 20.0
shipped with wildfly. Unfortunately the arquillian testsuite
transitively depends on guava 23.0 via the selenium-3.5.1
dependency. Hence we need to use version 23.0 for tests but 20.0
for the policy provider to avoid NoClassDefFoundErrors in the
server-dist.

Configure password blacklist folder for tests

* KEYCLOAK-5244 Configure jboss.server.data.dir for test servers

* KEYCLOAK-5244 Translate blacklisted message in base/login
2017-10-17 20:41:44 +02:00
..
adapter-test KEYCLOAK-5490 (#4477) 2017-09-15 11:36:48 +02:00
admin-test KEYCLOAK-4628 Single-use cache + its functionality incorporated into reset password token. Utilize single-use cache for relevant actions in execute-actions token 2017-05-11 22:16:26 +02:00
authorization-test [KEYCLOAK-4653] - Identity.hasClientRole(String) and Identity.hasRole(String) break role namespaces and should be removed 2017-09-01 16:08:34 -03:00
cli
client-auth-test KEYCLOAK-4335: x509 client certificate authentication 2017-03-17 05:24:57 -04:00
client-descriptions
clientreg-test
dockerClientTest KEYCLOAK-3592 Docker auth implementation 2017-06-29 06:37:34 +02:00
export RHSSO-402 need a way to dump configuration (including ldap provider config) to a file 2017-05-15 12:13:58 +02:00
kerberos KEYCLOAK-4052 - add an option to validate Password Policy for ldap user storage 2017-10-13 13:54:50 +02:00
keys
keystore KEYCLOAK-4265 Social login tests 2017-02-06 13:50:10 +01:00
ldap
META-INF KEYCLOAK-4187 Added UserSession support for cross-dc 2017-07-27 22:32:58 +02:00
migration-test KEYCLOAK-4229 Add migration test from 2.5.5 2017-03-22 14:19:35 +01:00
model KEYCLOAK-5293 Add notBefore to user 2017-08-23 08:58:26 +02:00
org/keycloak/testsuite KEYCLOAK-4368 Switch default WebDriver impl to htmlUnit 2017-02-20 21:52:15 +01:00
password-blacklists KEYCLOAK-5244 Add BlacklistPasswordPolicyProvider (#4370) 2017-10-17 20:41:44 +02:00
scripts KEYCLOAK-4975 Use authenticationSession binding name in ScriptBasedAuthenticator 2017-05-29 18:14:02 +02:00
sssd KEYCLOAK-4569 SSSDTest rewrited to be usable in different enviroments 2017-03-13 08:05:30 +01:00
storage-test UserStorageTest migrated to Arquillian testsuite 2017-02-22 13:54:11 +01:00
wildfly-integration [KEYCLOAK-5015] - HAL integration tests 2017-08-22 18:01:19 -03:00
arquillian.xml KEYCLOAK-5371 Fix SessionExpirationCrossDCTest, Added ExecutorsProvider. Debug support for cache-servers in tests 2017-10-10 22:30:44 +02:00
docker-test-realm.json KEYCLOAK-3592 Docker auth implementation 2017-06-29 06:37:34 +02:00
keycloak-add-user.json
log4j.properties KEYCLOAK-5480 Cross-DC setup: Remote cache stores are connecting to Infinispan servers in both datacenters 2017-09-18 18:04:04 +02:00
run-on-server-jboss-deployment-structure.xml KEYCLOAK-3729 Ability to run tests within Keycloak server 2017-01-27 12:14:19 +01:00
test-constants.properties
testcomposite.json
testrealm-duplicate-emails.json
testrealm.json KEYCLOAK-5049 add explicit removal of groups (#4416) 2017-08-30 08:16:00 +02:00