Coder Social home page Coder Social logo

keycloak-bcrypt's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

keycloak-bcrypt's Issues

Problem while setting the password for a new user

Hi, I've managed to run the setup, I've selected bcrypt as the default hash provider, but when I try to set a password for a new user I'm getting an error:

Error saving password: at/favre/lib/crypto/bcrypt/BCrypt$Version

image

I'm using Maven instead of Gradle, here's my pom.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>provider</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <bcrypt.version>0.10.2</bcrypt.version>
        <jboss.logging.version>3.4.1.Final</jboss.logging.version>
        <keycloak.version>22.0.3</keycloak.version>
    </properties>

    <dependencies>
        <!-- BCrypt -->
        <dependency>
            <groupId>at.favre.lib</groupId>
            <artifactId>bcrypt</artifactId>
            <version>${bcrypt.version}</version>
        </dependency>

        <!-- JBoss -->
        <dependency>
            <groupId>org.jboss.logging</groupId>
            <artifactId>jboss-logging</artifactId>
            <version>${jboss.logging.version}</version>
            <scope>provided</scope>
        </dependency>

        <!-- Keycloak -->
        <dependency>
            <groupId>org.keycloak</groupId>
            <artifactId>keycloak-common</artifactId>
            <version>${keycloak.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.keycloak</groupId>
            <artifactId>keycloak-core</artifactId>
            <version>${keycloak.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.keycloak</groupId>
            <artifactId>keycloak-server-spi</artifactId>
            <version>${keycloak.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.keycloak</groupId>
            <artifactId>keycloak-server-spi-private</artifactId>
            <version>${keycloak.version}</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

</project>

Breaking Change in 1.5.2

Hi,

I just tried migrating from 1.5.1 to 1.5.2 and noticed that credentials created with 1.5.1 are invalid when checked with 1.5.2.

I have a docker compose yml for setting up a Keycloak (20.0.3) and a postgres locally. I tried the following scenarios:
1.
Starting Keycloak (20.0.3) with keycloak-bcrypt 1.5.2 and postgres-db, importing realms (created with 20.0.3). Registering user. => Login works.

Starting Keycloak (20.0.3) with keycloak-bcrypt 1.5.1 and postgres-db, initially importing realms and users from JSON (created with Keycloak 20.0.3 and keycloak-bcrypt 1.5.1).
=> Logins work.
Stopping Keycloak-Container and starting Keylcoak-Container with keycloak-bcrypt 1.5.2.
=> For already existing users I get LOGIN_ERROR. Registering new users works. Login with new users works too.

Starting Keycloak (20.0.3) with keycloak-bcrypt 1.5.2 and postgres-db, initially importing realms and users from JSON (created with Keycloak 20.0.3 and keycloak-bcrypt 1.5.1).
=> For already existing users I get LOGIN_ERROR. Registering new users works. Login with new users works too.

My Keycloak is configured to use 12 Hashing Iterations.
The password data of the users credentials whether imported or registered, show the same information.

Now my question is: Is this a bug or am I missing configuration changes?

Any assistance would be greatly appreciated.

Need example for creating a user with existing bcrypt password hash

We are migrating users from a previous IDP to Keycloak using the admin REST API. We used the following with KC 20.0.1 and keycloak-bcrypt version 1.5.3 and the following code worked:

         const payload = {
            username: migrateUserDetails.emailAddress,
            enabled: true,
            email: migrateUserDetails.emailAddress,
            emailVerified: true,
            credentials: [
               {
                  type: 'password',
                  algorithm: 'bcrypt',
                  hashedSaltedValue: migrateUserDetails.passwordBcryptHash,
                  // hashedSaltedValue is deprecated according to https://stackoverflow.com/a/63800566
                  // However, documentation for version 22.0.0 of the Keycloak Admin REST API still
                  // lists this property in CredentialRepresentation, see
                  // https://www.keycloak.org/docs-api/22.0.0/rest-api/#AuthenticatorConfigRepresentation
                  // [Manfred, 17jul2023]
                  temporary: false,
                  hashIterations: 10,
               }
            ],
         };
         const config = await this.makeConfig();
         const response = await axios.post(`${this.environment.kcUrl}/admin/realms/${realmName}/users`, payload, config);

This then set up the user with the bcrypt-hashed password. On first login, the password would then be migrated to KC's hash algorithm. Login worked for a migrated user.

Now we have upgraded to KC 22.0.1 and to keycloak-bcrypt version 1.6.0. When we execute the same code. we see the following warning in Keycloak's log output:

2023-07-22 05:17:13,608 WARN [org.keycloak.models.utils.RepresentationToModel] (executor-thread-127) Using deprecated 'credentials' format in JSON representation for user '[email protected]'. It will be removed in future versions

I checked the CredentialRepresentation at https://www.keycloak.org/docs-api/22.0.0/rest-api/#CredentialRepresentation . It appears as if the credentials details provided in payload match what the ClientRepresentation.

I'm wondering if someone is doing something similar and can advise how I need to change the details of the credentials that I send as part of the payload. I'd like to avoid the warning that Keycloak writes to the log. Thank you!

Error when runing test with docker-compsoe

Hi,
I try to test with docker-compsoe but I have this error :

16:34:27,583 FATAL [org.keycloak.services] (ServerService Thread Pool -- 72) java.lang.UnsupportedClassVersionError: Failed to link com/github/leroyguillaume/keycloak/bcrypt/BCryptPasswordHashProviderFactory (Module "deployment.keycloak-bcrypt-1.5.0.jar" from Service Module Loader): com/github/leroyguillaume/keycloak/bcrypt/BCryptPasswordHashProviderFactory has been compiled by a more recent version of the Java Runtime (class file version 59.0), this version of the Java Runtime only recognizes class file versions up to 55.0

My java version is :
java version "11.0.2" 2019-01-15 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)

I have also try :
curl -L https://github.com/leroyguillaume/keycloak-bcrypt/releases/download/1.5.0/keycloak-bcrypt-1.5.0.jar > docker/keycloak-bcrypt-1.5.0.jar

default iteration config not same as in origin BCrypt library

Why default iteration configuration in keycloak-bcrypt is not same as default iteration configuration in org.mindrot.jbcrypt.BCrypt?
It is 10 in org.mindrot.jbcrypt.BCrypt
It is 8192 in keycloak-bcrypt which is converted to 14 for org.mindrot.jbcrypt.BCrypt

Installed & Restarted... now what?

I've followed the installation instructions in your readme, but I'm unsure what the next steps are and can't find documentation online to help.

I have jbcrypt-0.4.jar.deployed in my /opt/jboss/keycloak/standalone/deployments folder. I think the next step is to enable the hashing algorithm (see attached image) but I'm unsure what to use for the value field. Any help would be appreciated!

image

target folder?

Sorry if this is an obvious question, new to wildfly/keycloak -- I have ran the module add command, but I do not have any target folder on my file system. Where is this meant to come from?

Extension can't handle 2b salted hashes

I'm currently exporting userbase to Keycloak via it's API and all my hashes in Python are generated with 2b salts. That means $2b$12$jsuDs... like schema.

I wasn't able to login after uploading such hashes and I tried to research how it works. In the end of the day looks like just simple replace of 2b -> 2a on hash export.

Is it something we can fix in extension implementation? I'm not sure how exactly it works but looks like it's just version of algorythm that generated hash and it shoudn't affect validity of hash.

Error on trying to login with a PHP generated hash

Hi,

I'm importing an user like this:

curl --request POST \
  --url https://....com/auth/admin/realms/.../users \
  --header 'authorization: Bearer ...' \
  --header 'content-type: application/json' \
  --data '{
	"username": "test",
	"enabled": "true",
	"credentials": [ {
        	"algorithm": "bcrypt",
        	"hashedSaltedValue": "$2y$13$KxiLuFkSlG76vcE8Uc9Fd.EEsXBEQZi7yn/cHDELdiDbiZOhXGfkO",
		"type": "password",
		"salt": "",
		"hashIterations": -1
	} ]
}'

This succeeds. But when I try to login with that user at https://....com/auth/realms/.../account in a browser, I get an error message:

Unexpected error when handling authentication request to identity provider.

And in my KeyCloak logs, the following exception is thrown.

I'm using KeyCloak 10.0.2 with the version 1.4.0 of the plugin.

Do you have any hint how I could make this work? Would it be fixed when #19 is merged?

2020-08-20T15:27:59.764460Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 15:27:59,763 WARN  [org.keycloak.services] (default task-19) KC-SERVICES0013: Failed authentication: java.lang.IllegalArgumentException: Invalid salt revision
2020-08-20T15:27:59.764567Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at org.mindrot.jbcrypt//org.mindrot.jbcrypt.BCrypt.hashpw(BCrypt.java:665)
2020-08-20T15:27:59.764733Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at org.mindrot.jbcrypt//org.mindrot.jbcrypt.BCrypt.checkpw(BCrypt.java:764)
2020-08-20T15:27:59.764801Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at deployment.keycloak-bcrypt-1.4.0.jar//com.github.leroyguillaume.keycloak.bcrypt.BCryptPasswordHashProvider.verify(BCryptPasswordHashProvider.java:57)
2020-08-20T15:27:59.764846Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.credential.PasswordCredentialProvider.isValid(PasswordCredentialProvider.java:253)
2020-08-20T15:27:59.765005Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.credential.UserCredentialStoreManager.validate(UserCredentialStoreManager.java:187)
2020-08-20T15:27:59.765107Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.credential.UserCredentialStoreManager.isValid(UserCredentialStoreManager.java:177)
2020-08-20T15:27:59.765184Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.credential.UserCredentialStoreManager.isValid(UserCredentialStoreManager.java:112)
2020-08-20T15:27:59.765287Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.authentication.authenticators.browser.AbstractUsernameFormAuthenticator.validatePassword(AbstractUsernameFormAuthenticator.java:199)
2020-08-20T15:27:59.765327Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.authentication.authenticators.browser.AbstractUsernameFormAuthenticator.validatePassword(AbstractUsernameFormAuthenticator.java:188)
2020-08-20T15:27:59.765434Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.authentication.authenticators.browser.AbstractUsernameFormAuthenticator.validateUserAndPassword(AbstractUsernameFormAuthenticator.java:128)
2020-08-20T15:27:59.765530Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.authentication.authenticators.browser.UsernamePasswordForm.validateForm(UsernamePasswordForm.java:55)
2020-08-20T15:27:59.765577Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.authentication.authenticators.browser.UsernamePasswordForm.action(UsernamePasswordForm.java:48)
2020-08-20T15:27:59.765646Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.authentication.DefaultAuthenticationFlow.processAction(DefaultAuthenticationFlow.java:155)
2020-08-20T15:27:59.765774Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.authentication.AuthenticationProcessor.authenticationAction(AuthenticationProcessor.java:936)
2020-08-20T15:27:59.765831Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.services.resources.LoginActionsService.processFlow(LoginActionsService.java:311)
2020-08-20T15:27:59.765928Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.services.resources.LoginActionsService.processAuthentication(LoginActionsService.java:282)
2020-08-20T15:27:59.765975Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.services.resources.LoginActionsService.authenticate(LoginActionsService.java:266)
2020-08-20T15:27:59.766071Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.services.resources.LoginActionsService.authenticateForm(LoginActionsService.java:339)
2020-08-20T15:27:59.766165Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2020-08-20T15:27:59.766214Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
2020-08-20T15:27:59.766295Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2020-08-20T15:27:59.766424Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
2020-08-20T15:27:59.766461Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:138)
2020-08-20T15:27:59.766541Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:535)
2020-08-20T15:27:59.766637Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:424)
2020-08-20T15:27:59.766737Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$0(ResourceMethodInvoker.java:385)
2020-08-20T15:27:59.766869Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:356)
2020-08-20T15:27:59.766924Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:387)
2020-08-20T15:27:59.767013Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:356)
2020-08-20T15:27:59.767109Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:150)
2020-08-20T15:27:59.767176Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:104)
2020-08-20T15:27:59.767258Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:440)
2020-08-20T15:27:59.767319Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:229)
2020-08-20T15:27:59.767393Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:135)
2020-08-20T15:27:59.767479Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:356)
2020-08-20T15:27:59.767522Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:138)
2020-08-20T15:27:59.767759Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:215)
2020-08-20T15:27:59.767867Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:227)
2020-08-20T15:27:59.767916Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
2020-08-20T15:27:59.767993Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
2020-08-20T15:27:59.768072Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
2020-08-20T15:27:59.768126Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
2020-08-20T15:27:59.768248Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
2020-08-20T15:27:59.768296Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.services.filters.KeycloakSessionServletFilter.doFilter(KeycloakSessionServletFilter.java:91)
2020-08-20T15:27:59.768393Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
2020-08-20T15:27:59.768500Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
2020-08-20T15:27:59.768541Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
2020-08-20T15:27:59.768623Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
2020-08-20T15:27:59.768728Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
2020-08-20T15:27:59.768756Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
2020-08-20T15:27:59.768859Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
2020-08-20T15:27:59.768986Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
2020-08-20T15:27:59.769028Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
2020-08-20T15:27:59.769111Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132)
2020-08-20T15:27:59.769222Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
2020-08-20T15:27:59.769259Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
2020-08-20T15:27:59.769348Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
2020-08-20T15:27:59.769472Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
2020-08-20T15:27:59.769507Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
2020-08-20T15:27:59.769580Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
2020-08-20T15:27:59.769691Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
2020-08-20T15:27:59.769737Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
2020-08-20T15:27:59.769818Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
2020-08-20T15:27:59.769907Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
2020-08-20T15:27:59.769934Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
2020-08-20T15:27:59.770014Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
2020-08-20T15:27:59.770127Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
2020-08-20T15:27:59.770165Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269)
2020-08-20T15:27:59.770246Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78)
2020-08-20T15:27:59.770338Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133)
2020-08-20T15:27:59.770364Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130)
2020-08-20T15:27:59.770447Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
2020-08-20T15:27:59.770537Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
2020-08-20T15:27:59.770573Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
2020-08-20T15:27:59.770647Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
2020-08-20T15:27:59.770724Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
2020-08-20T15:27:59.774245Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
2020-08-20T15:27:59.774451Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
2020-08-20T15:27:59.774620Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249)
2020-08-20T15:27:59.774716Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78)
2020-08-20T15:27:59.774838Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99)
2020-08-20T15:27:59.774944Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.server.Connectors.executeRootHandler(Connectors.java:370)
2020-08-20T15:27:59.775040Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
2020-08-20T15:27:59.775164Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
2020-08-20T15:27:59.775221Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
2020-08-20T15:27:59.775340Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
2020-08-20T15:27:59.775423Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
2020-08-20T15:27:59.775558Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at java.base/java.lang.Thread.run(Thread.java:834)
2020-08-20T15:27:59.775585Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]:
2020-08-20T15:27:59.775671Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 15:27:59,764 WARN  [org.keycloak.events] (default task-19) type=LOGIN_ERROR, realmId=Dokulino Development, clientId=account, userId=null, ipAddress=88.130.218.108, error=invalid_user_credentials, auth_method=openid-connect, auth_type=code, redirect_uri=https://keycloak.solutions.smfhq.com/auth/realms/DokulinoDevelopment/account/login-redirect, code_id=e6772096-7bab-4ba2-bbdb-41b943620afa, username=plbtest, authSessionParentId=e6772096-7bab-4ba2-bbdb-41b943620afa, authSessionTabId=FsD6xcbpsM0
2020-08-20T15:31:56.468986Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 15:31:56,468 WARN  [org.keycloak.services] (default task-19) KC-SERVICES0013: Failed authentication: java.lang.IllegalArgumentException: Invalid salt revision
2020-08-20T15:31:56.469066Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at org.mindrot.jbcrypt//org.mindrot.jbcrypt.BCrypt.hashpw(BCrypt.java:665)
2020-08-20T15:31:56.469177Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at org.mindrot.jbcrypt//org.mindrot.jbcrypt.BCrypt.checkpw(BCrypt.java:764)
2020-08-20T15:31:56.469235Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at deployment.keycloak-bcrypt-1.4.0.jar//com.github.leroyguillaume.keycloak.bcrypt.BCryptPasswordHashProvider.verify(BCryptPasswordHashProvider.java:57)
2020-08-20T15:31:56.469258Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.credential.PasswordCredentialProvider.isValid(PasswordCredentialProvider.java:253)
2020-08-20T15:31:56.469321Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.credential.UserCredentialStoreManager.validate(UserCredentialStoreManager.java:187)
2020-08-20T15:31:56.469382Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.credential.UserCredentialStoreManager.isValid(UserCredentialStoreManager.java:177)
2020-08-20T15:31:56.469405Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.credential.UserCredentialStoreManager.isValid(UserCredentialStoreManager.java:112)
2020-08-20T15:31:56.469458Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.authentication.authenticators.browser.AbstractUsernameFormAuthenticator.validatePassword(AbstractUsernameFormAuthenticator.java:199)
2020-08-20T15:31:56.469521Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.authentication.authenticators.browser.AbstractUsernameFormAuthenticator.validatePassword(AbstractUsernameFormAuthenticator.java:188)
2020-08-20T15:31:56.469555Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.authentication.authenticators.browser.AbstractUsernameFormAuthenticator.validateUserAndPassword(AbstractUsernameFormAuthenticator.java:128)
2020-08-20T15:31:56.469615Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.authentication.authenticators.browser.UsernamePasswordForm.validateForm(UsernamePasswordForm.java:55)
2020-08-20T15:31:56.469664Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.authentication.authenticators.browser.UsernamePasswordForm.action(UsernamePasswordForm.java:48)
2020-08-20T15:31:56.469686Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.authentication.DefaultAuthenticationFlow.processAction(DefaultAuthenticationFlow.java:155)
2020-08-20T15:31:56.469751Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.authentication.AuthenticationProcessor.authenticationAction(AuthenticationProcessor.java:936)
2020-08-20T15:31:56.469806Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.services.resources.LoginActionsService.processFlow(LoginActionsService.java:311)
2020-08-20T15:31:56.469829Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.services.resources.LoginActionsService.processAuthentication(LoginActionsService.java:282)
2020-08-20T15:31:56.469889Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.services.resources.LoginActionsService.authenticate(LoginActionsService.java:266)
2020-08-20T15:31:56.469943Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.services.resources.LoginActionsService.authenticateForm(LoginActionsService.java:339)
2020-08-20T15:31:56.469967Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2020-08-20T15:31:56.470027Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
2020-08-20T15:31:56.470076Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2020-08-20T15:31:56.470100Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
2020-08-20T15:31:56.481512Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:138)
2020-08-20T15:31:56.481619Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:535)
2020-08-20T15:31:56.481685Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:424)
2020-08-20T15:31:56.481762Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$0(ResourceMethodInvoker.java:385)
2020-08-20T15:31:56.481829Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:356)
2020-08-20T15:31:56.481898Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:387)
2020-08-20T15:31:56.482048Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:356)
2020-08-20T15:31:56.482117Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:150)
2020-08-20T15:31:56.482171Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:104)
2020-08-20T15:31:56.482254Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:440)
2020-08-20T15:31:56.482313Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:229)
2020-08-20T15:31:56.482364Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:135)
2020-08-20T15:31:56.482476Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:356)
2020-08-20T15:31:56.482513Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:138)
2020-08-20T15:31:56.482604Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:215)
2020-08-20T15:31:56.482699Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:227)
2020-08-20T15:31:56.482730Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
2020-08-20T15:31:56.482864Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
2020-08-20T15:31:56.482971Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
2020-08-20T15:31:56.483010Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
2020-08-20T15:31:56.483099Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
2020-08-20T15:31:56.483164Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.keycloak.services.filters.KeycloakSessionServletFilter.doFilter(KeycloakSessionServletFilter.java:91)
2020-08-20T15:31:56.483211Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
2020-08-20T15:31:56.483298Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
2020-08-20T15:31:56.483368Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
2020-08-20T15:31:56.483415Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
2020-08-20T15:31:56.483555Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
2020-08-20T15:31:56.483585Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
2020-08-20T15:31:56.483676Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
2020-08-20T15:31:56.483753Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
2020-08-20T15:31:56.483787Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
2020-08-20T15:31:56.483855Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132)
2020-08-20T15:31:56.483960Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
2020-08-20T15:31:56.483991Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
2020-08-20T15:31:56.484064Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
2020-08-20T15:31:56.484177Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
2020-08-20T15:31:56.484220Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
2020-08-20T15:31:56.484297Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
2020-08-20T15:31:56.484394Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
2020-08-20T15:31:56.484441Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
2020-08-20T15:31:56.484519Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
2020-08-20T15:31:56.484589Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
2020-08-20T15:31:56.484662Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
2020-08-20T15:31:56.484740Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
2020-08-20T15:31:56.484812Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
2020-08-20T15:31:56.484864Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269)
2020-08-20T15:31:56.484918Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78)
2020-08-20T15:31:56.485028Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133)
2020-08-20T15:31:56.485076Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130)
2020-08-20T15:31:56.485138Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
2020-08-20T15:31:56.485241Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
2020-08-20T15:31:56.485282Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
2020-08-20T15:31:56.485361Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
2020-08-20T15:31:56.485428Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
2020-08-20T15:31:56.485499Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
2020-08-20T15:31:56.485588Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
2020-08-20T15:31:56.485634Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249)
2020-08-20T15:31:56.485731Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78)
2020-08-20T15:31:56.485795Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99)
2020-08-20T15:31:56.485852Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.server.Connectors.executeRootHandler(Connectors.java:370)
2020-08-20T15:31:56.485929Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
2020-08-20T15:31:56.486019Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
2020-08-20T15:31:56.486053Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
2020-08-20T15:31:56.486136Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
2020-08-20T15:31:56.486228Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
2020-08-20T15:31:56.486260Z app[app.ip1723136133-589057bd-e76a-490c-a428-71ff39cef0e5]: 	at java.base/java.lang.Thread.run(Thread.java:834)

Ambiguous configuration, documentation would be useful

First off, big thanks for this project, I appreciate your work on this!

This is a fairly minor issue, and could be fixed with just some documentation.

hashedSaltedValue requires a salt of the form "$2y$13$KxiLuFkSlG76vcE8Uc9Fd.EEsXBEQZi7yn/cHDELdiDbiZOhXGfkO", where the hashing algorithm and the work factor are included. But the name is misleading, as the salt+hash is actually just the part after the 3rd $, eg "KxiLuFkSlG76vcE8Uc9Fd.EEsXBEQZi7yn/cHDELdiDbiZOhXGfkO".

hashIterations is confusing to me as well - is the work factor in the hashedSaltedValue used, and hashIterations is ignored? Is hashIterations only used for setting the initial work factor in the hash string? Is the work factor in the hashedSaltedValue string ignored?

README is out of date

I was trying to install this package and I came across some issues with the README.

  • The first curl command to get jbcrypt-0.4 didn't work so I downloaded it from another source, here's what I did curl https://repo1.maven.org/maven2/org/mindrot/jbcrypt/0.4/jbcrypt-0.4.jar > jbcrypt-0.4.jar
  • I was using Keycloak version 8 so the last curl command in the README was downloading your 1.1.0 release which didn't support version 8 so I updated it to use 1.2.0 with the following curl -L https://github.com/leroyguillaume/keycloak-bcrypt/releases/download/1.2.0/keycloak-bcrypt-1.2.0.jar > keycloak-bcrypt-1.2.0.jar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.