При запуске ИС выдается следующий журнал ошибок от ИС WSO2.
TID: [-1234] [Framework Event Dispatcher: Equinox Container: d811a5a1-f0c4-4281-a1db-ce17d0928da4] ERROR {org.wso2.carbon.user.core.config.UserStoreConfigXMLProcessor} - [] encryption of Property=password failed
org.bouncycastle.jcajce.provider.util.BadBlockException: unable to decrypt block
at org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi.getOutput(Unknown Source) ~[bcprov-jdk15on-1.70.jar:1.70.0]
at org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi.engineDoFinal(Unknown Source) ~[bcprov-jdk15on-1.70.jar:1.70.0]
at javax.crypto.Cipher.doFinal(Cipher.java:2164) ~[?:1.8.0_191]
at org.wso2.carbon.user.core.config.UserStoreConfigXMLProcessor.decryptProperty(UserStoreConfigXMLProcessor.java:469) ~[org.wso2.carbon.user.core_4.6.0.87.jar:?]
at org.wso2.carbon.user.core.config.UserStoreConfigXMLProcessor.resolveEncryption(UserStoreConfigXMLProcessor.java:338) [org.wso2.carbon.user.core_4.6.0.87.jar:?]
...
В журнале ошибок написано, что пароль не зашифрован. Итак, какие шаги можно предпринять, чтобы решить эту проблему?
Чтобы решить эту проблему, выполните шаги, указанные ниже.
1-й сценарий (для пользовательских хранилищ JDBC)
Во-первых, попытайтесь выяснить, упоминается ли ошибочное хранилище пользователей в
файл wso2carbon.log
.
Если да, то заходите в <IS_HOME>/repository/deployment/server/userstores
и откройте файл хранилища пользователей .xml
.
Затем найдите <Property name = "password">****</Property>
Это может
даже содержат дополнительный атрибут, например encrypted = "true"
Здесь вы найдете зашифрованный пароль.
Затем измените его на это и сохраните. <Property name = "password" encrypted = "false">the non encrypted password</Property>
Обязательно добавьте незашифрованный пароль между <Property name = "password">...</Property>
с зашифрованным, установите для него значение false.
И проверьте wso2carbon.log
, выдает ли он ошибку. Если не,
проблема исправлена.
2-й сценарий
Изменение файла .xml
не сработало.
Затем запустите Консоль управления и перейдите к хранилищам пользователей, перечислите хранилище пользователей и обновите там пароль (вы должны ввести незашифрованный пароль).
И проверьте wso2carbon.log
, чтобы увидеть, выдает ли он ошибку. Если нет, проблема исправлена.
3-й сценарий
Проблема все еще существует, даже если хранилище пользователя, упомянутое в wso2carbon.log
, исчезло в 1-м и 2-м сценариях.
Затем откройте консоль управления и выведите список пользовательских хранилищ, чтобы проверить, есть ли все пользовательские хранилища.
Если пользовательское хранилище отсутствует, то ошибка связана с ним, а не с той, что упомянута в wso2carbon.log
. wso2carbon.log
показывает только журнал, относящийся к последнему пользовательскому хранилищу.
Выполните шаги из сценария 2, чтобы обновить пароль хранилища пользователей, которого нет в списке.
4-й сценарий
Сценарий 1 и 2 не сработали, и все пользовательские хранилища отображаются в консоли управления.
Затем перечислите пользователей и роли и перечислите там хранилища пользователей. Если там нет пользовательского хранилища, проблема связана с этим.
Затем выполните шаги сценария 2, чтобы исправить это.
5-й сценарий
В файле <Property name = "password">***</Property>
нет .xml
.
Тогда пользовательское хранилище, связанное с этим пользовательским хранилищем, может быть LDAP или AD.
Попробуйте найти <Property name = "ConnectionPassword">****</Property>
в файле .xml
и выполните шаги с 1 по 4.
Если все сценарии не работают и есть пользовательское хранилище в действии, получите исходный код этого пользовательского хранилища и отладьте его.
Даже если в действии есть пользовательское хранилище пользователей, вышеупомянутые шаги должны помочь сузить проблему.