Uploaded image for project: 'Karaf'
  1. Karaf
  2. KARAF-6357

client sh/bat no longer working in case of specify encryption.enabled = true

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 4.2.4
    • 4.3.0, 4.2.8
    • karaf
    • None
    • Java 8

    Description

      Setting "encryption.enabled = true" and leave "encryption.name = " in the etc/org.apache.karaf.jaas.cfg, then start karaf container, try to connect it from client.sh/client.bat, then no success with these DEBUG error:

      javax.security.auth.login.LoginException: org.jasypt.exceptions.EncryptionOperationNotPossibleException
      	at org.jasypt.digest.StandardByteDigester.matches(StandardByteDigester.java:1106)
      	at org.jasypt.digest.StandardStringDigester.matches(StandardStringDigester.java:1052)
      	at org.jasypt.util.password.ConfigurablePasswordEncryptor.checkPassword(ConfigurablePasswordEncryptor.java:251)
      	at org.apache.karaf.jaas.jasypt.impl.JasyptEncryption.checkPassword(JasyptEncryption.java:82)
      	at org.apache.karaf.jaas.modules.AbstractKarafLoginModule.checkPassword(AbstractKarafLoginModule.java:135)
      	at org.apache.karaf.jaas.modules.properties.PropertiesLoginModule.login(PropertiesLoginModule.java:126)
      	at org.apache.karaf.jaas.boot.ProxyLoginModule.login(ProxyLoginModule.java:83)
      	at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at javax.security.auth.login.LoginContext.invoke(LoginContext.java:755)
      	at javax.security.auth.login.LoginContext.access$000(LoginContext.java:195)
      	at javax.security.auth.login.LoginContext$4.run(LoginContext.java:682)
      	at javax.security.auth.login.LoginContext$4.run(LoginContext.java:680)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
      	at javax.security.auth.login.LoginContext.login(LoginContext.java:587)
      	at org.apache.karaf.shell.ssh.KarafJaasAuthenticator.doLogin(KarafJaasAuthenticator.java:93)
      	at org.apache.karaf.shell.ssh.KarafJaasAuthenticator.authenticate(KarafJaasAuthenticator.java:70)
      	at org.apache.sshd.server.auth.keyboard.DefaultKeyboardInteractiveAuthenticator.authenticate(DefaultKeyboardInteractiveAuthenticator.java:92)
      	at org.apache.sshd.server.auth.keyboard.UserAuthKeyboardInteractive.doAuth(UserAuthKeyboardInteractive.java:119)
      	at org.apache.sshd.server.auth.AbstractUserAuth.next(AbstractUserAuth.java:75)
      	at org.apache.sshd.server.session.ServerUserAuthService.process(ServerUserAuthService.java:229)
      	at org.apache.sshd.common.session.helpers.AbstractSession.doHandleMessage(AbstractSession.java:614)
      	at org.apache.sshd.common.session.helpers.AbstractSession.handleMessage(AbstractSession.java:547)
      	at org.apache.sshd.common.session.helpers.AbstractSession.decode(AbstractSession.java:1498)
      	at org.apache.sshd.common.session.helpers.AbstractSession.messageReceived(AbstractSession.java:508)
      	at org.apache.sshd.common.session.helpers.AbstractSessionIoHandler.messageReceived(AbstractSessionIoHandler.java:66)
      	at org.apache.sshd.common.io.nio2.Nio2Session.handleReadCycleCompletion(Nio2Session.java:301)
      	at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:281)
      	at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:278)
      	at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.lambda$completed$0(Nio2CompletionHandler.java:38)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:37)
      	at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)
      	at sun.nio.ch.Invoker$2.run(Invoker.java:218)
      	at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at java.lang.Thread.run(Thread.java:748)
      

      It's trying to use "jasypt" to do the validation but not the "basic" as the default behaviour of Karaf 4.1.x.

      You have to set "encryption.name = basic" or "encryption.name = jasypt" definitely, then everything works. otherwize it always try to use "jasypt" and failed more silently.

      Attachments

        Issue Links

          Activity

            People

              jbonofre Jean-Baptiste Onofré
              xldai Xilai Dai
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: