You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@kylin.apache.org by 赵天烁 <zh...@meizu.com> on 2017/05/04 07:32:54 UTC

Encoded password cannot be null or empty when login into kylin's web UI

after update to 2.0 release,I got the error below when I try to login into kylin's web UI with testing security,ADMIN account.same thing happen when I try to create a jdbc connection,sometimes when I restart,the error just gone,then after a few minutes,it reappeared....
I try remote debug in kylin server,I dig into the userMap in InMemoryDaoImpl, found that the password of ADMIN instance is blank?!is there any reason will cause this problem?
java.lang.IllegalArgumentException: Encoded password cannot be null or empty
at org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder.matches(BCryptPasswordEncoder.java:77)
at org.springframework.security.authentication.dao.DaoAuthenticationProvider$1.isPasswordValid(DaoAuthenticationProvider.java:124)
at org.springframework.security.authentication.dao.DaoAuthenticationProvider.additionalAuthenticationChecks(DaoAuthenticationProvider.java:64)
at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:149)
at org.apache.kylin.rest.security.KylinAuthenticationProvider.authenticate(KylinAuthenticationProvider.java:85)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:168)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)


________________________________
赵天烁
Kevin Zhao
zhaotianshuo@meizu.com<ma...@meizu.com>

珠海市魅族科技有限公司
MEIZU Technology Co., Ltd.
广东省珠海市科技创新海岸魅族科技楼
MEIZU Tech Bldg., Technology & Innovation Coast
Zhuhai, 519085, Guangdong, China
meizu.com

Re: Encoded password cannot be null or empty when login into kylin's web UI

Posted by wooya <do...@gmail.com>.
Same issue. Even after cleaned up the hbase and restored the backup, this
exception comes up from time to time. The only solution is to restart the
kylin

--
View this message in context: http://apache-kylin.74782.x6.nabble.com/Re-Encoded-password-cannot-be-null-or-empty-when-login-into-kylin-s-web-UI-tp7879p7887.html
Sent from the Apache Kylin mailing list archive at Nabble.com.

Re: Re: Encoded password cannot be null or empty when login into kylin's web UI

Posted by flycshi <fl...@gmail.com>.
Hava the above methods are tried again, but exception still coming.
How to fix ?
thanks

--
View this message in context: http://apache-kylin.74782.x6.nabble.com/Re-Encoded-password-cannot-be-null-or-empty-when-login-into-kylin-s-web-UI-tp7879p8185.html
Sent from the Apache Kylin mailing list archive at Nabble.com.

Re: Re: Encoded password cannot be null or empty when login into kylin's web UI

Posted by ShaoFeng Shi <sh...@apache.org>.
Hi tianshuo,

Please re-download Kylin binary package, there was a mistake in building
the binary package, we uploaded a new package very soon after found that.
You might be impacted by that.

2017-05-09 9:32 GMT+08:00 赵天烁 <zh...@meizu.com>:

> samething happen after I backup, reset and restore the metastore...forced
> to downgrade to 2.0 snapshot ,so sad..
>
> ------------------------------
>
> 赵天烁
>
> Kevin Zhao
>
> *zhaotianshuo@meizu.com <zh...@meizu.com>*
>
>
>
> 珠海市魅族科技有限公司
>
> MEIZU Technology Co., Ltd.
>
> 广东省珠海市科技创新海岸魅族科技楼
>
> MEIZU Tech Bldg., Technology & Innovation Coast
>
> Zhuhai, 519085, Guangdong, China
>
> meizu.com
>
>
> *From:* 赵天烁 <zh...@meizu.com>
> *Date:* 2017-05-04 17:59
> *To:* ShaoFeng Shi <sh...@apache.org>; user <us...@kylin.apache.org>;
> dev <de...@kylin.apache.org>
> *Subject:* Re: Re: Encoded password cannot be null or empty when login
> into kylin's web UI
> ok,I'll give a shot
>
> ------------------------------
>
> 赵天烁
>
> Kevin Zhao
>
> *zhaotianshuo@meizu.com <zh...@meizu.com>*
>
>
>
> 珠海市魅族科技有限公司
>
> MEIZU Technology Co., Ltd.
>
> 广东省珠海市科技创新海岸魅族科技楼
>
> MEIZU Tech Bldg., Technology & Innovation Coast
>
> Zhuhai, 519085, Guangdong, China
>
> meizu.com
>
>
> *From:* ShaoFeng Shi <sh...@apache.org>
> *Date:* 2017-05-04 17:52
> *To:* user <us...@kylin.apache.org>; dev <de...@kylin.apache.org>
> *Subject:* Re: Encoded password cannot be null or empty when login into
> kylin's web UI
> A bug in kylin 2.0 beta might cause some dirty data. You can try this way:
>
> 1. stop Kylin, and then run "bin/metastore.sh backup"
> 2. reset metastore: "bin/metastore.sh reset"
> 3. restore: "bin/metastore.sh restore <path_of_the_latest_backup>"
> 4. start Kylin
>
> 2017-05-04 15:55 GMT+08:00 赵天烁 <zh...@meizu.com>:
>
>> think I probably found the cause,any idea how to fixed?
>>
>>
>> after the following exception, the password of ADMIN instance just
>> change to blank..
>> java.lang.ArrayIndexOutOfBoundsException
>> at java.lang.System.arraycopy(Native Method)
>> at sun.security.provider.DigestBase.engineUpdate(DigestBase.java:127)
>> at java.security.MessageDigest$Delegate.engineUpdate(Message
>> Digest.java:568)
>> at java.security.MessageDigest.update(MessageDigest.java:323)
>> at java.security.MessageDigest.digest(MessageDigest.java:398)
>> at org.apache.kylin.rest.security.KylinAuthenticationProvide
>> r.authenticate(KylinAuthenticationProvider.java:76)
>> at org.springframework.security.authentication.ProviderManag
>> er.authenticate(ProviderManager.java:156)
>> at org.springframework.security.authentication.ProviderManag
>> er.authenticate(ProviderManager.java:174)
>> at org.springframework.security.web.authentication.www.Basic
>> AuthenticationFilter.doFilter(BasicAuthenticationFilter.java:168)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.authentication.ui.Defaul
>> tLoginPageGeneratingFilter.doFilter(DefaultLoginPageGenerati
>> ngFilter.java:91)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.authentication.AbstractA
>> uthenticationProcessingFilter.doFilter(AbstractAuthenticatio
>> nProcessingFilter.java:183)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.authentication.logout.Lo
>> goutFilter.doFilter(LogoutFilter.java:105)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.context.SecurityContextP
>> ersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.FilterChainProxy.doFilte
>> rInternal(FilterChainProxy.java:192)
>> at org.springframework.security.web.FilterChainProxy.doFilte
>> r(FilterChainProxy.java:160)
>> at org.springframework.web.filter.DelegatingFilterProxy.invo
>> keDelegate(DelegatingFilterProxy.java:343)
>> at org.springframework.web.filter.DelegatingFilterProxy.doFi
>> lter(DelegatingFilterProxy.java:260)
>> at org.apache.catalina.core.ApplicationFilterChain.internalD
>> oFilter(ApplicationFilterChain.java:241)
>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
>> ApplicationFilterChain.java:208)
>> at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFi
>> lter.java:209)
>> at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFi
>> lter.java:244)
>> at org.apache.catalina.core.ApplicationFilterChain.internalD
>> oFilter(ApplicationFilterChain.java:241)
>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
>> ApplicationFilterChain.java:208)
>> at org.apache.catalina.core.StandardWrapperValve.invoke(Stan
>> dardWrapperValve.java:220)
>> at org.apache.catalina.core.StandardContextValve.invoke(Stan
>> dardContextValve.java:122)
>> at org.apache.catalina.authenticator.AuthenticatorBase.invok
>> e(AuthenticatorBase.java:505)
>> at org.apache.catalina.core.StandardHostValve.invoke(Standar
>> dHostValve.java:169)
>> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorR
>> eportValve.java:103)
>> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLo
>> gValve.java:956)
>> at org.apache.catalina.core.StandardEngineValve.invoke(Stand
>> ardEngineValve.java:116)
>> at org.apache.catalina.connector.CoyoteAdapter.service(Coyot
>> eAdapter.java:436)
>> at org.apache.coyote.http11.AbstractHttp11Processor.process(
>> AbstractHttp11Processor.java:1078)
>> at org.apache.coyote.AbstractProtocol$AbstractConnectionHand
>> ler.process(AbstractProtocol.java:625)
>> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.ru
>> n(JIoEndpoint.java:316)
>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadP
>> oolExecutor.java:1145)
>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Thread
>> PoolExecutor.java:615)
>> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnabl
>> e.run(TaskThread.java:61)
>> at java.lang.Thread.run(Thread.java:745)
>>
>> May 04, 2017 3:50:28 PM org.apache.catalina.core.StandardWra
>> pperValve invoke
>> SEVERE: Servlet.service() for servlet [kylin] in context wit
>> h path [/kylin] threw exception
>>
>> ------------------------------
>>
>> 赵天烁
>>
>> Kevin Zhao
>>
>> *zhaotianshuo@meizu.com <zh...@meizu.com>*
>>
>>
>>
>> 珠海市魅族科技有限公司
>>
>> MEIZU Technology Co., Ltd.
>>
>> 广东省珠海市科技创新海岸魅族科技楼
>>
>> MEIZU Tech Bldg., Technology & Innovation Coast
>>
>> Zhuhai, 519085, Guangdong, China
>>
>> meizu.com
>>
>>
>> *发件人:* 赵天烁 <zh...@meizu.com>
>> *发送时间:* 2017-05-04 15:32
>> *收件人:* user <us...@kylin.apache.org>
>> *主题:* Encoded password cannot be null or empty when login into kylin's
>> web UI
>> after update to 2.0 release,I got the error below when I try to login
>> into kylin's web UI with testing security,ADMIN account.same thing happen
>> when I try to create a jdbc connection,sometimes when I restart,the error
>> just gone,then after a few minutes,it reappeared....
>> I try remote debug in kylin server,I dig into the userMap in InMemoryDaoImpl,
>> found that the password of ADMIN instance is blank?!is there any reason
>> will cause this problem?
>> java.lang.IllegalArgumentException: Encoded password cannot
>> be null or empty
>> at org.springframework.security.crypto.bcrypt.BCryptPassword
>> Encoder.matches(BCryptPasswordEncoder.java:77)
>> at org.springframework.security.authentication.dao.DaoAuthen
>> ticationProvider$1.isPasswordValid(DaoAuthenticationProvider.java:124)
>> at org.springframework.security.authentication.dao.DaoAuthen
>> ticationProvider.additionalAuthenticationChecks(DaoAuthentic
>> ationProvider.java:64)
>> at org.springframework.security.authentication.dao.AbstractU
>> serDetailsAuthenticationProvider.authenticate(AbstractUserDe
>> tailsAuthenticationProvider.java:149)
>> at org.apache.kylin.rest.security.KylinAuthenticationProvide
>> r.authenticate(KylinAuthenticationProvider.java:85)
>> at org.springframework.security.authentication.ProviderManag
>> er.authenticate(ProviderManager.java:156)
>> at org.springframework.security.authentication.ProviderManag
>> er.authenticate(ProviderManager.java:174)
>> at org.springframework.security.web.authentication.www.Basic
>> AuthenticationFilter.doFilter(BasicAuthenticationFilter.java:168)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.authentication.ui.Defaul
>> tLoginPageGeneratingFilter.doFilter(DefaultLoginPageGenerati
>> ngFilter.java:91)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.authentication.AbstractA
>> uthenticationProcessingFilter.doFilter(AbstractAuthenticatio
>> nProcessingFilter.java:183)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.authentication.logout.Lo
>> goutFilter.doFilter(LogoutFilter.java:105)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.context.SecurityContextP
>> ersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.FilterChainProxy.doFilte
>> rInternal(FilterChainProxy.java:192)
>> at org.springframework.security.web.FilterChainProxy.doFilte
>> r(FilterChainProxy.java:160)
>> at org.springframework.web.filter.DelegatingFilterProxy.invo
>> keDelegate(DelegatingFilterProxy.java:343)
>> at org.springframework.web.filter.DelegatingFilterProxy.doFi
>> lter(DelegatingFilterProxy.java:260)
>> at org.apache.catalina.core.ApplicationFilterChain.internalD
>> oFilter(ApplicationFilterChain.java:241)
>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
>> ApplicationFilterChain.java:208)
>> at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFi
>> lter.java:209)
>> at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFi
>> lter.java:244)
>> at org.apache.catalina.core.ApplicationFilterChain.internalD
>> oFilter(ApplicationFilterChain.java:241)
>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
>> ApplicationFilterChain.java:208)
>> at org.apache.catalina.core.StandardWrapperValve.invoke(Stan
>> dardWrapperValve.java:220)
>> at org.apache.catalina.core.StandardContextValve.invoke(Stan
>> dardContextValve.java:122)
>> at org.apache.catalina.authenticator.AuthenticatorBase.invok
>> e(AuthenticatorBase.java:505)
>> at org.apache.catalina.core.StandardHostValve.invoke(Standar
>> dHostValve.java:169)
>> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorR
>> eportValve.java:103)
>> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLo
>> gValve.java:956)
>> at org.apache.catalina.core.StandardEngineValve.invoke(Stand
>> ardEngineValve.java:116)
>> at org.apache.catalina.connector.CoyoteAdapter.service(Coyot
>> eAdapter.java:436)
>> at org.apache.coyote.http11.AbstractHttp11Processor.process(
>> AbstractHttp11Processor.java:1078)
>> at org.apache.coyote.AbstractProtocol$AbstractConnectionHand
>> ler.process(AbstractProtocol.java:625)
>> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.ru
>> n(JIoEndpoint.java:316)
>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadP
>> oolExecutor.java:1145)
>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Thread
>> PoolExecutor.java:615)
>> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnabl
>> e.run(TaskThread.java:61)
>> at java.lang.Thread.run(Thread.java:745)
>>
>>
>> ------------------------------
>>
>> 赵天烁
>>
>> Kevin Zhao
>>
>> *zhaotianshuo@meizu.com <zh...@meizu.com>*
>>
>>
>>
>> 珠海市魅族科技有限公司
>>
>> MEIZU Technology Co., Ltd.
>>
>> 广东省珠海市科技创新海岸魅族科技楼
>>
>> MEIZU Tech Bldg., Technology & Innovation Coast
>>
>> Zhuhai, 519085, Guangdong, China
>>
>> meizu.com
>>
>>
>
>
> --
> Best regards,
>
> Shaofeng Shi 史少锋
>
>


-- 
Best regards,

Shaofeng Shi 史少锋

Re: Re: Encoded password cannot be null or empty when login into kylin's web UI

Posted by ShaoFeng Shi <sh...@apache.org>.
Hi tianshuo,

Please re-download Kylin binary package, there was a mistake in building
the binary package, we uploaded a new package very soon after found that.
You might be impacted by that.

2017-05-09 9:32 GMT+08:00 赵天烁 <zh...@meizu.com>:

> samething happen after I backup, reset and restore the metastore...forced
> to downgrade to 2.0 snapshot ,so sad..
>
> ------------------------------
>
> 赵天烁
>
> Kevin Zhao
>
> *zhaotianshuo@meizu.com <zh...@meizu.com>*
>
>
>
> 珠海市魅族科技有限公司
>
> MEIZU Technology Co., Ltd.
>
> 广东省珠海市科技创新海岸魅族科技楼
>
> MEIZU Tech Bldg., Technology & Innovation Coast
>
> Zhuhai, 519085, Guangdong, China
>
> meizu.com
>
>
> *From:* 赵天烁 <zh...@meizu.com>
> *Date:* 2017-05-04 17:59
> *To:* ShaoFeng Shi <sh...@apache.org>; user <us...@kylin.apache.org>;
> dev <de...@kylin.apache.org>
> *Subject:* Re: Re: Encoded password cannot be null or empty when login
> into kylin's web UI
> ok,I'll give a shot
>
> ------------------------------
>
> 赵天烁
>
> Kevin Zhao
>
> *zhaotianshuo@meizu.com <zh...@meizu.com>*
>
>
>
> 珠海市魅族科技有限公司
>
> MEIZU Technology Co., Ltd.
>
> 广东省珠海市科技创新海岸魅族科技楼
>
> MEIZU Tech Bldg., Technology & Innovation Coast
>
> Zhuhai, 519085, Guangdong, China
>
> meizu.com
>
>
> *From:* ShaoFeng Shi <sh...@apache.org>
> *Date:* 2017-05-04 17:52
> *To:* user <us...@kylin.apache.org>; dev <de...@kylin.apache.org>
> *Subject:* Re: Encoded password cannot be null or empty when login into
> kylin's web UI
> A bug in kylin 2.0 beta might cause some dirty data. You can try this way:
>
> 1. stop Kylin, and then run "bin/metastore.sh backup"
> 2. reset metastore: "bin/metastore.sh reset"
> 3. restore: "bin/metastore.sh restore <path_of_the_latest_backup>"
> 4. start Kylin
>
> 2017-05-04 15:55 GMT+08:00 赵天烁 <zh...@meizu.com>:
>
>> think I probably found the cause,any idea how to fixed?
>>
>>
>> after the following exception, the password of ADMIN instance just
>> change to blank..
>> java.lang.ArrayIndexOutOfBoundsException
>> at java.lang.System.arraycopy(Native Method)
>> at sun.security.provider.DigestBase.engineUpdate(DigestBase.java:127)
>> at java.security.MessageDigest$Delegate.engineUpdate(Message
>> Digest.java:568)
>> at java.security.MessageDigest.update(MessageDigest.java:323)
>> at java.security.MessageDigest.digest(MessageDigest.java:398)
>> at org.apache.kylin.rest.security.KylinAuthenticationProvide
>> r.authenticate(KylinAuthenticationProvider.java:76)
>> at org.springframework.security.authentication.ProviderManag
>> er.authenticate(ProviderManager.java:156)
>> at org.springframework.security.authentication.ProviderManag
>> er.authenticate(ProviderManager.java:174)
>> at org.springframework.security.web.authentication.www.Basic
>> AuthenticationFilter.doFilter(BasicAuthenticationFilter.java:168)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.authentication.ui.Defaul
>> tLoginPageGeneratingFilter.doFilter(DefaultLoginPageGenerati
>> ngFilter.java:91)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.authentication.AbstractA
>> uthenticationProcessingFilter.doFilter(AbstractAuthenticatio
>> nProcessingFilter.java:183)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.authentication.logout.Lo
>> goutFilter.doFilter(LogoutFilter.java:105)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.context.SecurityContextP
>> ersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.FilterChainProxy.doFilte
>> rInternal(FilterChainProxy.java:192)
>> at org.springframework.security.web.FilterChainProxy.doFilte
>> r(FilterChainProxy.java:160)
>> at org.springframework.web.filter.DelegatingFilterProxy.invo
>> keDelegate(DelegatingFilterProxy.java:343)
>> at org.springframework.web.filter.DelegatingFilterProxy.doFi
>> lter(DelegatingFilterProxy.java:260)
>> at org.apache.catalina.core.ApplicationFilterChain.internalD
>> oFilter(ApplicationFilterChain.java:241)
>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
>> ApplicationFilterChain.java:208)
>> at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFi
>> lter.java:209)
>> at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFi
>> lter.java:244)
>> at org.apache.catalina.core.ApplicationFilterChain.internalD
>> oFilter(ApplicationFilterChain.java:241)
>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
>> ApplicationFilterChain.java:208)
>> at org.apache.catalina.core.StandardWrapperValve.invoke(Stan
>> dardWrapperValve.java:220)
>> at org.apache.catalina.core.StandardContextValve.invoke(Stan
>> dardContextValve.java:122)
>> at org.apache.catalina.authenticator.AuthenticatorBase.invok
>> e(AuthenticatorBase.java:505)
>> at org.apache.catalina.core.StandardHostValve.invoke(Standar
>> dHostValve.java:169)
>> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorR
>> eportValve.java:103)
>> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLo
>> gValve.java:956)
>> at org.apache.catalina.core.StandardEngineValve.invoke(Stand
>> ardEngineValve.java:116)
>> at org.apache.catalina.connector.CoyoteAdapter.service(Coyot
>> eAdapter.java:436)
>> at org.apache.coyote.http11.AbstractHttp11Processor.process(
>> AbstractHttp11Processor.java:1078)
>> at org.apache.coyote.AbstractProtocol$AbstractConnectionHand
>> ler.process(AbstractProtocol.java:625)
>> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.ru
>> n(JIoEndpoint.java:316)
>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadP
>> oolExecutor.java:1145)
>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Thread
>> PoolExecutor.java:615)
>> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnabl
>> e.run(TaskThread.java:61)
>> at java.lang.Thread.run(Thread.java:745)
>>
>> May 04, 2017 3:50:28 PM org.apache.catalina.core.StandardWra
>> pperValve invoke
>> SEVERE: Servlet.service() for servlet [kylin] in context wit
>> h path [/kylin] threw exception
>>
>> ------------------------------
>>
>> 赵天烁
>>
>> Kevin Zhao
>>
>> *zhaotianshuo@meizu.com <zh...@meizu.com>*
>>
>>
>>
>> 珠海市魅族科技有限公司
>>
>> MEIZU Technology Co., Ltd.
>>
>> 广东省珠海市科技创新海岸魅族科技楼
>>
>> MEIZU Tech Bldg., Technology & Innovation Coast
>>
>> Zhuhai, 519085, Guangdong, China
>>
>> meizu.com
>>
>>
>> *发件人:* 赵天烁 <zh...@meizu.com>
>> *发送时间:* 2017-05-04 15:32
>> *收件人:* user <us...@kylin.apache.org>
>> *主题:* Encoded password cannot be null or empty when login into kylin's
>> web UI
>> after update to 2.0 release,I got the error below when I try to login
>> into kylin's web UI with testing security,ADMIN account.same thing happen
>> when I try to create a jdbc connection,sometimes when I restart,the error
>> just gone,then after a few minutes,it reappeared....
>> I try remote debug in kylin server,I dig into the userMap in InMemoryDaoImpl,
>> found that the password of ADMIN instance is blank?!is there any reason
>> will cause this problem?
>> java.lang.IllegalArgumentException: Encoded password cannot
>> be null or empty
>> at org.springframework.security.crypto.bcrypt.BCryptPassword
>> Encoder.matches(BCryptPasswordEncoder.java:77)
>> at org.springframework.security.authentication.dao.DaoAuthen
>> ticationProvider$1.isPasswordValid(DaoAuthenticationProvider.java:124)
>> at org.springframework.security.authentication.dao.DaoAuthen
>> ticationProvider.additionalAuthenticationChecks(DaoAuthentic
>> ationProvider.java:64)
>> at org.springframework.security.authentication.dao.AbstractU
>> serDetailsAuthenticationProvider.authenticate(AbstractUserDe
>> tailsAuthenticationProvider.java:149)
>> at org.apache.kylin.rest.security.KylinAuthenticationProvide
>> r.authenticate(KylinAuthenticationProvider.java:85)
>> at org.springframework.security.authentication.ProviderManag
>> er.authenticate(ProviderManager.java:156)
>> at org.springframework.security.authentication.ProviderManag
>> er.authenticate(ProviderManager.java:174)
>> at org.springframework.security.web.authentication.www.Basic
>> AuthenticationFilter.doFilter(BasicAuthenticationFilter.java:168)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.authentication.ui.Defaul
>> tLoginPageGeneratingFilter.doFilter(DefaultLoginPageGenerati
>> ngFilter.java:91)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.authentication.AbstractA
>> uthenticationProcessingFilter.doFilter(AbstractAuthenticatio
>> nProcessingFilter.java:183)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.authentication.logout.Lo
>> goutFilter.doFilter(LogoutFilter.java:105)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.context.SecurityContextP
>> ersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
>> at org.springframework.security.web.FilterChainProxy$Virtual
>> FilterChain.doFilter(FilterChainProxy.java:342)
>> at org.springframework.security.web.FilterChainProxy.doFilte
>> rInternal(FilterChainProxy.java:192)
>> at org.springframework.security.web.FilterChainProxy.doFilte
>> r(FilterChainProxy.java:160)
>> at org.springframework.web.filter.DelegatingFilterProxy.invo
>> keDelegate(DelegatingFilterProxy.java:343)
>> at org.springframework.web.filter.DelegatingFilterProxy.doFi
>> lter(DelegatingFilterProxy.java:260)
>> at org.apache.catalina.core.ApplicationFilterChain.internalD
>> oFilter(ApplicationFilterChain.java:241)
>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
>> ApplicationFilterChain.java:208)
>> at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFi
>> lter.java:209)
>> at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFi
>> lter.java:244)
>> at org.apache.catalina.core.ApplicationFilterChain.internalD
>> oFilter(ApplicationFilterChain.java:241)
>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
>> ApplicationFilterChain.java:208)
>> at org.apache.catalina.core.StandardWrapperValve.invoke(Stan
>> dardWrapperValve.java:220)
>> at org.apache.catalina.core.StandardContextValve.invoke(Stan
>> dardContextValve.java:122)
>> at org.apache.catalina.authenticator.AuthenticatorBase.invok
>> e(AuthenticatorBase.java:505)
>> at org.apache.catalina.core.StandardHostValve.invoke(Standar
>> dHostValve.java:169)
>> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorR
>> eportValve.java:103)
>> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLo
>> gValve.java:956)
>> at org.apache.catalina.core.StandardEngineValve.invoke(Stand
>> ardEngineValve.java:116)
>> at org.apache.catalina.connector.CoyoteAdapter.service(Coyot
>> eAdapter.java:436)
>> at org.apache.coyote.http11.AbstractHttp11Processor.process(
>> AbstractHttp11Processor.java:1078)
>> at org.apache.coyote.AbstractProtocol$AbstractConnectionHand
>> ler.process(AbstractProtocol.java:625)
>> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.ru
>> n(JIoEndpoint.java:316)
>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadP
>> oolExecutor.java:1145)
>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Thread
>> PoolExecutor.java:615)
>> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnabl
>> e.run(TaskThread.java:61)
>> at java.lang.Thread.run(Thread.java:745)
>>
>>
>> ------------------------------
>>
>> 赵天烁
>>
>> Kevin Zhao
>>
>> *zhaotianshuo@meizu.com <zh...@meizu.com>*
>>
>>
>>
>> 珠海市魅族科技有限公司
>>
>> MEIZU Technology Co., Ltd.
>>
>> 广东省珠海市科技创新海岸魅族科技楼
>>
>> MEIZU Tech Bldg., Technology & Innovation Coast
>>
>> Zhuhai, 519085, Guangdong, China
>>
>> meizu.com
>>
>>
>
>
> --
> Best regards,
>
> Shaofeng Shi 史少锋
>
>


-- 
Best regards,

Shaofeng Shi 史少锋

Re: Re: Encoded password cannot be null or empty when login into kylin's web UI

Posted by 赵天烁 <zh...@meizu.com>.
samething happen after I backup, reset and restore the metastore...forced to downgrade to 2.0 snapshot ,so sad..

________________________________
赵天烁
Kevin Zhao
zhaotianshuo@meizu.com<ma...@meizu.com>

珠海市魅族科技有限公司
MEIZU Technology Co., Ltd.
广东省珠海市科技创新海岸魅族科技楼
MEIZU Tech Bldg., Technology & Innovation Coast
Zhuhai, 519085, Guangdong, China
meizu.com

From: 赵天烁<ma...@meizu.com>
Date: 2017-05-04 17:59
To: ShaoFeng Shi<ma...@apache.org>; user<ma...@kylin.apache.org>; dev<ma...@kylin.apache.org>
Subject: Re: Re: Encoded password cannot be null or empty when login into kylin's web UI
ok,I'll give a shot

________________________________
赵天烁
Kevin Zhao
zhaotianshuo@meizu.com<ma...@meizu.com>

珠海市魅族科技有限公司
MEIZU Technology Co., Ltd.
广东省珠海市科技创新海岸魅族科技楼
MEIZU Tech Bldg., Technology & Innovation Coast
Zhuhai, 519085, Guangdong, China
meizu.com

From: ShaoFeng Shi<ma...@apache.org>
Date: 2017-05-04 17:52
To: user<ma...@kylin.apache.org>; dev<ma...@kylin.apache.org>
Subject: Re: Encoded password cannot be null or empty when login into kylin's web UI
A bug in kylin 2.0 beta might cause some dirty data. You can try this way:

1. stop Kylin, and then run "bin/metastore.sh backup"
2. reset metastore: "bin/metastore.sh reset"
3. restore: "bin/metastore.sh restore <path_of_the_latest_backup>"
4. start Kylin

2017-05-04 15:55 GMT+08:00 赵天烁 <zh...@meizu.com>>:
think I probably found the cause,any idea how to fixed?


after the following exception, the password of ADMIN instance just change to blank..
java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at sun.security.provider.DigestBase.engineUpdate(DigestBase.java:127)
at java.security.MessageDigest$Delegate.engineUpdate(MessageDigest.java:568)
at java.security.MessageDigest.update(MessageDigest.java:323)
at java.security.MessageDigest.digest(MessageDigest.java:398)
at org.apache.kylin.rest.security.KylinAuthenticationProvider.authenticate(KylinAuthenticationProvider.java:76)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:168)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net<http://org.apache.tomcat.util.net>.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

May 04, 2017 3:50:28 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [kylin] in context with path [/kylin] threw exception

________________________________
赵天烁
Kevin Zhao
zhaotianshuo@meizu.com<ma...@meizu.com>

珠海市魅族科技有限公司
MEIZU Technology Co., Ltd.
广东省珠海市科技创新海岸魅族科技楼
MEIZU Tech Bldg., Technology & Innovation Coast
Zhuhai, 519085, Guangdong, China
meizu.com<http://meizu.com>

发件人: 赵天烁<ma...@meizu.com>
发送时间: 2017-05-04 15:32
收件人: user<ma...@kylin.apache.org>
主题: Encoded password cannot be null or empty when login into kylin's web UI
after update to 2.0 release,I got the error below when I try to login into kylin's web UI with testing security,ADMIN account.same thing happen when I try to create a jdbc connection,sometimes when I restart,the error just gone,then after a few minutes,it reappeared....
I try remote debug in kylin server,I dig into the userMap in InMemoryDaoImpl, found that the password of ADMIN instance is blank?!is there any reason will cause this problem?
java.lang.IllegalArgumentException: Encoded password cannot be null or empty
at org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder.matches(BCryptPasswordEncoder.java:77)
at org.springframework.security.authentication.dao.DaoAuthenticationProvider$1.isPasswordValid(DaoAuthenticationProvider.java:124)
at org.springframework.security.authentication.dao.DaoAuthenticationProvider.additionalAuthenticationChecks(DaoAuthenticationProvider.java:64)
at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:149)
at org.apache.kylin.rest.security.KylinAuthenticationProvider.authenticate(KylinAuthenticationProvider.java:85)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:168)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net<http://org.apache.tomcat.util.net>.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)


________________________________
赵天烁
Kevin Zhao
zhaotianshuo@meizu.com<ma...@meizu.com>

珠海市魅族科技有限公司
MEIZU Technology Co., Ltd.
广东省珠海市科技创新海岸魅族科技楼
MEIZU Tech Bldg., Technology & Innovation Coast
Zhuhai, 519085, Guangdong, China
meizu.com<http://meizu.com>



--
Best regards,

Shaofeng Shi 史少锋


Re: Re: Encoded password cannot be null or empty when login into kylin's web UI

Posted by 赵天烁 <zh...@meizu.com>.
samething happen after I backup, reset and restore the metastore...forced to downgrade to 2.0 snapshot ,so sad..

________________________________
赵天烁
Kevin Zhao
zhaotianshuo@meizu.com<ma...@meizu.com>

珠海市魅族科技有限公司
MEIZU Technology Co., Ltd.
广东省珠海市科技创新海岸魅族科技楼
MEIZU Tech Bldg., Technology & Innovation Coast
Zhuhai, 519085, Guangdong, China
meizu.com

From: 赵天烁<ma...@meizu.com>
Date: 2017-05-04 17:59
To: ShaoFeng Shi<ma...@apache.org>; user<ma...@kylin.apache.org>; dev<ma...@kylin.apache.org>
Subject: Re: Re: Encoded password cannot be null or empty when login into kylin's web UI
ok,I'll give a shot

________________________________
赵天烁
Kevin Zhao
zhaotianshuo@meizu.com<ma...@meizu.com>

珠海市魅族科技有限公司
MEIZU Technology Co., Ltd.
广东省珠海市科技创新海岸魅族科技楼
MEIZU Tech Bldg., Technology & Innovation Coast
Zhuhai, 519085, Guangdong, China
meizu.com

From: ShaoFeng Shi<ma...@apache.org>
Date: 2017-05-04 17:52
To: user<ma...@kylin.apache.org>; dev<ma...@kylin.apache.org>
Subject: Re: Encoded password cannot be null or empty when login into kylin's web UI
A bug in kylin 2.0 beta might cause some dirty data. You can try this way:

1. stop Kylin, and then run "bin/metastore.sh backup"
2. reset metastore: "bin/metastore.sh reset"
3. restore: "bin/metastore.sh restore <path_of_the_latest_backup>"
4. start Kylin

2017-05-04 15:55 GMT+08:00 赵天烁 <zh...@meizu.com>>:
think I probably found the cause,any idea how to fixed?


after the following exception, the password of ADMIN instance just change to blank..
java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at sun.security.provider.DigestBase.engineUpdate(DigestBase.java:127)
at java.security.MessageDigest$Delegate.engineUpdate(MessageDigest.java:568)
at java.security.MessageDigest.update(MessageDigest.java:323)
at java.security.MessageDigest.digest(MessageDigest.java:398)
at org.apache.kylin.rest.security.KylinAuthenticationProvider.authenticate(KylinAuthenticationProvider.java:76)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:168)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net<http://org.apache.tomcat.util.net>.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

May 04, 2017 3:50:28 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [kylin] in context with path [/kylin] threw exception

________________________________
赵天烁
Kevin Zhao
zhaotianshuo@meizu.com<ma...@meizu.com>

珠海市魅族科技有限公司
MEIZU Technology Co., Ltd.
广东省珠海市科技创新海岸魅族科技楼
MEIZU Tech Bldg., Technology & Innovation Coast
Zhuhai, 519085, Guangdong, China
meizu.com<http://meizu.com>

发件人: 赵天烁<ma...@meizu.com>
发送时间: 2017-05-04 15:32
收件人: user<ma...@kylin.apache.org>
主题: Encoded password cannot be null or empty when login into kylin's web UI
after update to 2.0 release,I got the error below when I try to login into kylin's web UI with testing security,ADMIN account.same thing happen when I try to create a jdbc connection,sometimes when I restart,the error just gone,then after a few minutes,it reappeared....
I try remote debug in kylin server,I dig into the userMap in InMemoryDaoImpl, found that the password of ADMIN instance is blank?!is there any reason will cause this problem?
java.lang.IllegalArgumentException: Encoded password cannot be null or empty
at org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder.matches(BCryptPasswordEncoder.java:77)
at org.springframework.security.authentication.dao.DaoAuthenticationProvider$1.isPasswordValid(DaoAuthenticationProvider.java:124)
at org.springframework.security.authentication.dao.DaoAuthenticationProvider.additionalAuthenticationChecks(DaoAuthenticationProvider.java:64)
at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:149)
at org.apache.kylin.rest.security.KylinAuthenticationProvider.authenticate(KylinAuthenticationProvider.java:85)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:168)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net<http://org.apache.tomcat.util.net>.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)


________________________________
赵天烁
Kevin Zhao
zhaotianshuo@meizu.com<ma...@meizu.com>

珠海市魅族科技有限公司
MEIZU Technology Co., Ltd.
广东省珠海市科技创新海岸魅族科技楼
MEIZU Tech Bldg., Technology & Innovation Coast
Zhuhai, 519085, Guangdong, China
meizu.com<http://meizu.com>



--
Best regards,

Shaofeng Shi 史少锋


Re: Re: Encoded password cannot be null or empty when login into kylin's web UI

Posted by 赵天烁 <zh...@meizu.com>.
ok,I'll give a shot

________________________________
赵天烁
Kevin Zhao
zhaotianshuo@meizu.com<ma...@meizu.com>

珠海市魅族科技有限公司
MEIZU Technology Co., Ltd.
广东省珠海市科技创新海岸魅族科技楼
MEIZU Tech Bldg., Technology & Innovation Coast
Zhuhai, 519085, Guangdong, China
meizu.com

From: ShaoFeng Shi<ma...@apache.org>
Date: 2017-05-04 17:52
To: user<ma...@kylin.apache.org>; dev<ma...@kylin.apache.org>
Subject: Re: Encoded password cannot be null or empty when login into kylin's web UI
A bug in kylin 2.0 beta might cause some dirty data. You can try this way:

1. stop Kylin, and then run "bin/metastore.sh backup"
2. reset metastore: "bin/metastore.sh reset"
3. restore: "bin/metastore.sh restore <path_of_the_latest_backup>"
4. start Kylin

2017-05-04 15:55 GMT+08:00 赵天烁 <zh...@meizu.com>>:
think I probably found the cause,any idea how to fixed?


after the following exception, the password of ADMIN instance just change to blank..
java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at sun.security.provider.DigestBase.engineUpdate(DigestBase.java:127)
at java.security.MessageDigest$Delegate.engineUpdate(MessageDigest.java:568)
at java.security.MessageDigest.update(MessageDigest.java:323)
at java.security.MessageDigest.digest(MessageDigest.java:398)
at org.apache.kylin.rest.security.KylinAuthenticationProvider.authenticate(KylinAuthenticationProvider.java:76)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:168)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net<http://org.apache.tomcat.util.net>.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

May 04, 2017 3:50:28 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [kylin] in context with path [/kylin] threw exception

________________________________
赵天烁
Kevin Zhao
zhaotianshuo@meizu.com<ma...@meizu.com>

珠海市魅族科技有限公司
MEIZU Technology Co., Ltd.
广东省珠海市科技创新海岸魅族科技楼
MEIZU Tech Bldg., Technology & Innovation Coast
Zhuhai, 519085, Guangdong, China
meizu.com<http://meizu.com>

发件人: 赵天烁<ma...@meizu.com>
发送时间: 2017-05-04 15:32
收件人: user<ma...@kylin.apache.org>
主题: Encoded password cannot be null or empty when login into kylin's web UI
after update to 2.0 release,I got the error below when I try to login into kylin's web UI with testing security,ADMIN account.same thing happen when I try to create a jdbc connection,sometimes when I restart,the error just gone,then after a few minutes,it reappeared....
I try remote debug in kylin server,I dig into the userMap in InMemoryDaoImpl, found that the password of ADMIN instance is blank?!is there any reason will cause this problem?
java.lang.IllegalArgumentException: Encoded password cannot be null or empty
at org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder.matches(BCryptPasswordEncoder.java:77)
at org.springframework.security.authentication.dao.DaoAuthenticationProvider$1.isPasswordValid(DaoAuthenticationProvider.java:124)
at org.springframework.security.authentication.dao.DaoAuthenticationProvider.additionalAuthenticationChecks(DaoAuthenticationProvider.java:64)
at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:149)
at org.apache.kylin.rest.security.KylinAuthenticationProvider.authenticate(KylinAuthenticationProvider.java:85)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:168)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net<http://org.apache.tomcat.util.net>.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)


________________________________
赵天烁
Kevin Zhao
zhaotianshuo@meizu.com<ma...@meizu.com>

珠海市魅族科技有限公司
MEIZU Technology Co., Ltd.
广东省珠海市科技创新海岸魅族科技楼
MEIZU Tech Bldg., Technology & Innovation Coast
Zhuhai, 519085, Guangdong, China
meizu.com<http://meizu.com>



--
Best regards,

Shaofeng Shi 史少锋


Re: Re: Encoded password cannot be null or empty when login into kylin's web UI

Posted by 赵天烁 <zh...@meizu.com>.
ok,I'll give a shot

________________________________
赵天烁
Kevin Zhao
zhaotianshuo@meizu.com<ma...@meizu.com>

珠海市魅族科技有限公司
MEIZU Technology Co., Ltd.
广东省珠海市科技创新海岸魅族科技楼
MEIZU Tech Bldg., Technology & Innovation Coast
Zhuhai, 519085, Guangdong, China
meizu.com

From: ShaoFeng Shi<ma...@apache.org>
Date: 2017-05-04 17:52
To: user<ma...@kylin.apache.org>; dev<ma...@kylin.apache.org>
Subject: Re: Encoded password cannot be null or empty when login into kylin's web UI
A bug in kylin 2.0 beta might cause some dirty data. You can try this way:

1. stop Kylin, and then run "bin/metastore.sh backup"
2. reset metastore: "bin/metastore.sh reset"
3. restore: "bin/metastore.sh restore <path_of_the_latest_backup>"
4. start Kylin

2017-05-04 15:55 GMT+08:00 赵天烁 <zh...@meizu.com>>:
think I probably found the cause,any idea how to fixed?


after the following exception, the password of ADMIN instance just change to blank..
java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at sun.security.provider.DigestBase.engineUpdate(DigestBase.java:127)
at java.security.MessageDigest$Delegate.engineUpdate(MessageDigest.java:568)
at java.security.MessageDigest.update(MessageDigest.java:323)
at java.security.MessageDigest.digest(MessageDigest.java:398)
at org.apache.kylin.rest.security.KylinAuthenticationProvider.authenticate(KylinAuthenticationProvider.java:76)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:168)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net<http://org.apache.tomcat.util.net>.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

May 04, 2017 3:50:28 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [kylin] in context with path [/kylin] threw exception

________________________________
赵天烁
Kevin Zhao
zhaotianshuo@meizu.com<ma...@meizu.com>

珠海市魅族科技有限公司
MEIZU Technology Co., Ltd.
广东省珠海市科技创新海岸魅族科技楼
MEIZU Tech Bldg., Technology & Innovation Coast
Zhuhai, 519085, Guangdong, China
meizu.com<http://meizu.com>

发件人: 赵天烁<ma...@meizu.com>
发送时间: 2017-05-04 15:32
收件人: user<ma...@kylin.apache.org>
主题: Encoded password cannot be null or empty when login into kylin's web UI
after update to 2.0 release,I got the error below when I try to login into kylin's web UI with testing security,ADMIN account.same thing happen when I try to create a jdbc connection,sometimes when I restart,the error just gone,then after a few minutes,it reappeared....
I try remote debug in kylin server,I dig into the userMap in InMemoryDaoImpl, found that the password of ADMIN instance is blank?!is there any reason will cause this problem?
java.lang.IllegalArgumentException: Encoded password cannot be null or empty
at org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder.matches(BCryptPasswordEncoder.java:77)
at org.springframework.security.authentication.dao.DaoAuthenticationProvider$1.isPasswordValid(DaoAuthenticationProvider.java:124)
at org.springframework.security.authentication.dao.DaoAuthenticationProvider.additionalAuthenticationChecks(DaoAuthenticationProvider.java:64)
at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:149)
at org.apache.kylin.rest.security.KylinAuthenticationProvider.authenticate(KylinAuthenticationProvider.java:85)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:168)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.St<http://org.apache.catalina.core.St>andardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net<http://org.apache.tomcat.util.net>.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)


________________________________
赵天烁
Kevin Zhao
zhaotianshuo@meizu.com<ma...@meizu.com>

珠海市魅族科技有限公司
MEIZU Technology Co., Ltd.
广东省珠海市科技创新海岸魅族科技楼
MEIZU Tech Bldg., Technology & Innovation Coast
Zhuhai, 519085, Guangdong, China
meizu.com<http://meizu.com>



--
Best regards,

Shaofeng Shi 史少锋


Re: Encoded password cannot be null or empty when login into kylin's web UI

Posted by ShaoFeng Shi <sh...@apache.org>.
A bug in kylin 2.0 beta might cause some dirty data. You can try this way:

1. stop Kylin, and then run "bin/metastore.sh backup"
2. reset metastore: "bin/metastore.sh reset"
3. restore: "bin/metastore.sh restore <path_of_the_latest_backup>"
4. start Kylin

2017-05-04 15:55 GMT+08:00 赵天烁 <zh...@meizu.com>:

> think I probably found the cause,any idea how to fixed?
>
>
> after the following exception, the password of ADMIN instance just change
> to blank..
> java.lang.ArrayIndexOutOfBoundsException
> at java.lang.System.arraycopy(Native Method)
> at sun.security.provider.DigestBase.engineUpdate(DigestBase.java:127)
> at java.security.MessageDigest$Delegate.engineUpdate(Message
> Digest.java:568)
> at java.security.MessageDigest.update(MessageDigest.java:323)
> at java.security.MessageDigest.digest(MessageDigest.java:398)
> at org.apache.kylin.rest.security.KylinAuthenticationProvide
> r.authenticate(KylinAuthenticationProvider.java:76)
> at org.springframework.security.authentication.ProviderManag
> er.authenticate(ProviderManager.java:156)
> at org.springframework.security.authentication.ProviderManag
> er.authenticate(ProviderManager.java:174)
> at org.springframework.security.web.authentication.www.Basic
> AuthenticationFilter.doFilter(BasicAuthenticationFilter.java:168)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.authentication.ui.Defaul
> tLoginPageGeneratingFilter.doFilter(DefaultLoginPageGenerati
> ngFilter.java:91)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.authentication.AbstractA
> uthenticationProcessingFilter.doFilter(AbstractAuthenticatio
> nProcessingFilter.java:183)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.authentication.logout.Lo
> goutFilter.doFilter(LogoutFilter.java:105)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.context.SecurityContextP
> ersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.FilterChainProxy.doFilte
> rInternal(FilterChainProxy.java:192)
> at org.springframework.security.web.FilterChainProxy.doFilte
> r(FilterChainProxy.java:160)
> at org.springframework.web.filter.DelegatingFilterProxy.invo
> keDelegate(DelegatingFilterProxy.java:343)
> at org.springframework.web.filter.DelegatingFilterProxy.doFi
> lter(DelegatingFilterProxy.java:260)
> at org.apache.catalina.core.ApplicationFilterChain.internalD
> oFilter(ApplicationFilterChain.java:241)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:208)
> at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209)
> at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244)
> at org.apache.catalina.core.ApplicationFilterChain.internalD
> oFilter(ApplicationFilterChain.java:241)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:208)
> at org.apache.catalina.core.StandardWrapperValve.invoke(Stan
> dardWrapperValve.java:220)
> at org.apache.catalina.core.StandardContextValve.invoke(Stan
> dardContextValve.java:122)
> at org.apache.catalina.authenticator.AuthenticatorBase.invok
> e(AuthenticatorBase.java:505)
> at org.apache.catalina.core.StandardHostValve.invoke(Standar
> dHostValve.java:169)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorR
> eportValve.java:103)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLo
> gValve.java:956)
> at org.apache.catalina.core.StandardEngineValve.invoke(Stand
> ardEngineValve.java:116)
> at org.apache.catalina.connector.CoyoteAdapter.service(Coyot
> eAdapter.java:436)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(
> AbstractHttp11Processor.java:1078)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHand
> ler.process(AbstractProtocol.java:625)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.ru
> n(JIoEndpoint.java:316)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadP
> oolExecutor.java:1145)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Thread
> PoolExecutor.java:615)
> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnabl
> e.run(TaskThread.java:61)
> at java.lang.Thread.run(Thread.java:745)
>
> May 04, 2017 3:50:28 PM org.apache.catalina.core.StandardWra
> pperValve invoke
> SEVERE: Servlet.service() for servlet [kylin] in context wit
> h path [/kylin] threw exception
>
> ------------------------------
>
> 赵天烁
>
> Kevin Zhao
>
> *zhaotianshuo@meizu.com <zh...@meizu.com>*
>
>
>
> 珠海市魅族科技有限公司
>
> MEIZU Technology Co., Ltd.
>
> 广东省珠海市科技创新海岸魅族科技楼
>
> MEIZU Tech Bldg., Technology & Innovation Coast
>
> Zhuhai, 519085, Guangdong, China
>
> meizu.com
>
>
> *发件人:* 赵天烁 <zh...@meizu.com>
> *发送时间:* 2017-05-04 15:32
> *收件人:* user <us...@kylin.apache.org>
> *主题:* Encoded password cannot be null or empty when login into kylin's
> web UI
> after update to 2.0 release,I got the error below when I try to login into
> kylin's web UI with testing security,ADMIN account.same thing happen when I
> try to create a jdbc connection,sometimes when I restart,the error just
> gone,then after a few minutes,it reappeared....
> I try remote debug in kylin server,I dig into the userMap in InMemoryDaoImpl,
> found that the password of ADMIN instance is blank?!is there any reason
> will cause this problem?
> java.lang.IllegalArgumentException: Encoded password cannot
> be null or empty
> at org.springframework.security.crypto.bcrypt.BCryptPassword
> Encoder.matches(BCryptPasswordEncoder.java:77)
> at org.springframework.security.authentication.dao.DaoAuthen
> ticationProvider$1.isPasswordValid(DaoAuthenticationProvider.java:124)
> at org.springframework.security.authentication.dao.DaoAuthen
> ticationProvider.additionalAuthenticationChecks(DaoAuthentic
> ationProvider.java:64)
> at org.springframework.security.authentication.dao.AbstractU
> serDetailsAuthenticationProvider.authenticate(AbstractUserDe
> tailsAuthenticationProvider.java:149)
> at org.apache.kylin.rest.security.KylinAuthenticationProvide
> r.authenticate(KylinAuthenticationProvider.java:85)
> at org.springframework.security.authentication.ProviderManag
> er.authenticate(ProviderManager.java:156)
> at org.springframework.security.authentication.ProviderManag
> er.authenticate(ProviderManager.java:174)
> at org.springframework.security.web.authentication.www.Basic
> AuthenticationFilter.doFilter(BasicAuthenticationFilter.java:168)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.authentication.ui.Defaul
> tLoginPageGeneratingFilter.doFilter(DefaultLoginPageGenerati
> ngFilter.java:91)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.authentication.AbstractA
> uthenticationProcessingFilter.doFilter(AbstractAuthenticatio
> nProcessingFilter.java:183)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.authentication.logout.Lo
> goutFilter.doFilter(LogoutFilter.java:105)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.context.SecurityContextP
> ersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.FilterChainProxy.doFilte
> rInternal(FilterChainProxy.java:192)
> at org.springframework.security.web.FilterChainProxy.doFilte
> r(FilterChainProxy.java:160)
> at org.springframework.web.filter.DelegatingFilterProxy.invo
> keDelegate(DelegatingFilterProxy.java:343)
> at org.springframework.web.filter.DelegatingFilterProxy.doFi
> lter(DelegatingFilterProxy.java:260)
> at org.apache.catalina.core.ApplicationFilterChain.internalD
> oFilter(ApplicationFilterChain.java:241)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:208)
> at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209)
> at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244)
> at org.apache.catalina.core.ApplicationFilterChain.internalD
> oFilter(ApplicationFilterChain.java:241)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:208)
> at org.apache.catalina.core.StandardWrapperValve.invoke(Stan
> dardWrapperValve.java:220)
> at org.apache.catalina.core.StandardContextValve.invoke(Stan
> dardContextValve.java:122)
> at org.apache.catalina.authenticator.AuthenticatorBase.invok
> e(AuthenticatorBase.java:505)
> at org.apache.catalina.core.StandardHostValve.invoke(Standar
> dHostValve.java:169)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorR
> eportValve.java:103)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLo
> gValve.java:956)
> at org.apache.catalina.core.StandardEngineValve.invoke(Stand
> ardEngineValve.java:116)
> at org.apache.catalina.connector.CoyoteAdapter.service(Coyot
> eAdapter.java:436)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(
> AbstractHttp11Processor.java:1078)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHand
> ler.process(AbstractProtocol.java:625)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.ru
> n(JIoEndpoint.java:316)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadP
> oolExecutor.java:1145)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Thread
> PoolExecutor.java:615)
> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnabl
> e.run(TaskThread.java:61)
> at java.lang.Thread.run(Thread.java:745)
>
>
> ------------------------------
>
> 赵天烁
>
> Kevin Zhao
>
> *zhaotianshuo@meizu.com <zh...@meizu.com>*
>
>
>
> 珠海市魅族科技有限公司
>
> MEIZU Technology Co., Ltd.
>
> 广东省珠海市科技创新海岸魅族科技楼
>
> MEIZU Tech Bldg., Technology & Innovation Coast
>
> Zhuhai, 519085, Guangdong, China
>
> meizu.com
>
>


-- 
Best regards,

Shaofeng Shi 史少锋

Re: Encoded password cannot be null or empty when login into kylin's web UI

Posted by ShaoFeng Shi <sh...@apache.org>.
A bug in kylin 2.0 beta might cause some dirty data. You can try this way:

1. stop Kylin, and then run "bin/metastore.sh backup"
2. reset metastore: "bin/metastore.sh reset"
3. restore: "bin/metastore.sh restore <path_of_the_latest_backup>"
4. start Kylin

2017-05-04 15:55 GMT+08:00 赵天烁 <zh...@meizu.com>:

> think I probably found the cause,any idea how to fixed?
>
>
> after the following exception, the password of ADMIN instance just change
> to blank..
> java.lang.ArrayIndexOutOfBoundsException
> at java.lang.System.arraycopy(Native Method)
> at sun.security.provider.DigestBase.engineUpdate(DigestBase.java:127)
> at java.security.MessageDigest$Delegate.engineUpdate(Message
> Digest.java:568)
> at java.security.MessageDigest.update(MessageDigest.java:323)
> at java.security.MessageDigest.digest(MessageDigest.java:398)
> at org.apache.kylin.rest.security.KylinAuthenticationProvide
> r.authenticate(KylinAuthenticationProvider.java:76)
> at org.springframework.security.authentication.ProviderManag
> er.authenticate(ProviderManager.java:156)
> at org.springframework.security.authentication.ProviderManag
> er.authenticate(ProviderManager.java:174)
> at org.springframework.security.web.authentication.www.Basic
> AuthenticationFilter.doFilter(BasicAuthenticationFilter.java:168)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.authentication.ui.Defaul
> tLoginPageGeneratingFilter.doFilter(DefaultLoginPageGenerati
> ngFilter.java:91)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.authentication.AbstractA
> uthenticationProcessingFilter.doFilter(AbstractAuthenticatio
> nProcessingFilter.java:183)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.authentication.logout.Lo
> goutFilter.doFilter(LogoutFilter.java:105)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.context.SecurityContextP
> ersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.FilterChainProxy.doFilte
> rInternal(FilterChainProxy.java:192)
> at org.springframework.security.web.FilterChainProxy.doFilte
> r(FilterChainProxy.java:160)
> at org.springframework.web.filter.DelegatingFilterProxy.invo
> keDelegate(DelegatingFilterProxy.java:343)
> at org.springframework.web.filter.DelegatingFilterProxy.doFi
> lter(DelegatingFilterProxy.java:260)
> at org.apache.catalina.core.ApplicationFilterChain.internalD
> oFilter(ApplicationFilterChain.java:241)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:208)
> at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209)
> at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244)
> at org.apache.catalina.core.ApplicationFilterChain.internalD
> oFilter(ApplicationFilterChain.java:241)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:208)
> at org.apache.catalina.core.StandardWrapperValve.invoke(Stan
> dardWrapperValve.java:220)
> at org.apache.catalina.core.StandardContextValve.invoke(Stan
> dardContextValve.java:122)
> at org.apache.catalina.authenticator.AuthenticatorBase.invok
> e(AuthenticatorBase.java:505)
> at org.apache.catalina.core.StandardHostValve.invoke(Standar
> dHostValve.java:169)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorR
> eportValve.java:103)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLo
> gValve.java:956)
> at org.apache.catalina.core.StandardEngineValve.invoke(Stand
> ardEngineValve.java:116)
> at org.apache.catalina.connector.CoyoteAdapter.service(Coyot
> eAdapter.java:436)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(
> AbstractHttp11Processor.java:1078)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHand
> ler.process(AbstractProtocol.java:625)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.ru
> n(JIoEndpoint.java:316)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadP
> oolExecutor.java:1145)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Thread
> PoolExecutor.java:615)
> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnabl
> e.run(TaskThread.java:61)
> at java.lang.Thread.run(Thread.java:745)
>
> May 04, 2017 3:50:28 PM org.apache.catalina.core.StandardWra
> pperValve invoke
> SEVERE: Servlet.service() for servlet [kylin] in context wit
> h path [/kylin] threw exception
>
> ------------------------------
>
> 赵天烁
>
> Kevin Zhao
>
> *zhaotianshuo@meizu.com <zh...@meizu.com>*
>
>
>
> 珠海市魅族科技有限公司
>
> MEIZU Technology Co., Ltd.
>
> 广东省珠海市科技创新海岸魅族科技楼
>
> MEIZU Tech Bldg., Technology & Innovation Coast
>
> Zhuhai, 519085, Guangdong, China
>
> meizu.com
>
>
> *发件人:* 赵天烁 <zh...@meizu.com>
> *发送时间:* 2017-05-04 15:32
> *收件人:* user <us...@kylin.apache.org>
> *主题:* Encoded password cannot be null or empty when login into kylin's
> web UI
> after update to 2.0 release,I got the error below when I try to login into
> kylin's web UI with testing security,ADMIN account.same thing happen when I
> try to create a jdbc connection,sometimes when I restart,the error just
> gone,then after a few minutes,it reappeared....
> I try remote debug in kylin server,I dig into the userMap in InMemoryDaoImpl,
> found that the password of ADMIN instance is blank?!is there any reason
> will cause this problem?
> java.lang.IllegalArgumentException: Encoded password cannot
> be null or empty
> at org.springframework.security.crypto.bcrypt.BCryptPassword
> Encoder.matches(BCryptPasswordEncoder.java:77)
> at org.springframework.security.authentication.dao.DaoAuthen
> ticationProvider$1.isPasswordValid(DaoAuthenticationProvider.java:124)
> at org.springframework.security.authentication.dao.DaoAuthen
> ticationProvider.additionalAuthenticationChecks(DaoAuthentic
> ationProvider.java:64)
> at org.springframework.security.authentication.dao.AbstractU
> serDetailsAuthenticationProvider.authenticate(AbstractUserDe
> tailsAuthenticationProvider.java:149)
> at org.apache.kylin.rest.security.KylinAuthenticationProvide
> r.authenticate(KylinAuthenticationProvider.java:85)
> at org.springframework.security.authentication.ProviderManag
> er.authenticate(ProviderManager.java:156)
> at org.springframework.security.authentication.ProviderManag
> er.authenticate(ProviderManager.java:174)
> at org.springframework.security.web.authentication.www.Basic
> AuthenticationFilter.doFilter(BasicAuthenticationFilter.java:168)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.authentication.ui.Defaul
> tLoginPageGeneratingFilter.doFilter(DefaultLoginPageGenerati
> ngFilter.java:91)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.authentication.AbstractA
> uthenticationProcessingFilter.doFilter(AbstractAuthenticatio
> nProcessingFilter.java:183)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.authentication.logout.Lo
> goutFilter.doFilter(LogoutFilter.java:105)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.context.SecurityContextP
> ersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
> at org.springframework.security.web.FilterChainProxy$Virtual
> FilterChain.doFilter(FilterChainProxy.java:342)
> at org.springframework.security.web.FilterChainProxy.doFilte
> rInternal(FilterChainProxy.java:192)
> at org.springframework.security.web.FilterChainProxy.doFilte
> r(FilterChainProxy.java:160)
> at org.springframework.web.filter.DelegatingFilterProxy.invo
> keDelegate(DelegatingFilterProxy.java:343)
> at org.springframework.web.filter.DelegatingFilterProxy.doFi
> lter(DelegatingFilterProxy.java:260)
> at org.apache.catalina.core.ApplicationFilterChain.internalD
> oFilter(ApplicationFilterChain.java:241)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:208)
> at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209)
> at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244)
> at org.apache.catalina.core.ApplicationFilterChain.internalD
> oFilter(ApplicationFilterChain.java:241)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:208)
> at org.apache.catalina.core.StandardWrapperValve.invoke(Stan
> dardWrapperValve.java:220)
> at org.apache.catalina.core.StandardContextValve.invoke(Stan
> dardContextValve.java:122)
> at org.apache.catalina.authenticator.AuthenticatorBase.invok
> e(AuthenticatorBase.java:505)
> at org.apache.catalina.core.StandardHostValve.invoke(Standar
> dHostValve.java:169)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorR
> eportValve.java:103)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLo
> gValve.java:956)
> at org.apache.catalina.core.StandardEngineValve.invoke(Stand
> ardEngineValve.java:116)
> at org.apache.catalina.connector.CoyoteAdapter.service(Coyot
> eAdapter.java:436)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(
> AbstractHttp11Processor.java:1078)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHand
> ler.process(AbstractProtocol.java:625)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.ru
> n(JIoEndpoint.java:316)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadP
> oolExecutor.java:1145)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Thread
> PoolExecutor.java:615)
> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnabl
> e.run(TaskThread.java:61)
> at java.lang.Thread.run(Thread.java:745)
>
>
> ------------------------------
>
> 赵天烁
>
> Kevin Zhao
>
> *zhaotianshuo@meizu.com <zh...@meizu.com>*
>
>
>
> 珠海市魅族科技有限公司
>
> MEIZU Technology Co., Ltd.
>
> 广东省珠海市科技创新海岸魅族科技楼
>
> MEIZU Tech Bldg., Technology & Innovation Coast
>
> Zhuhai, 519085, Guangdong, China
>
> meizu.com
>
>


-- 
Best regards,

Shaofeng Shi 史少锋

回复: Encoded password cannot be null or empty when login into kylin's web UI

Posted by 赵天烁 <zh...@meizu.com>.
think I probably found the cause,any idea how to fixed?


after the following exception, the password of ADMIN instance just change to blank..
java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at sun.security.provider.DigestBase.engineUpdate(DigestBase.java:127)
at java.security.MessageDigest$Delegate.engineUpdate(MessageDigest.java:568)
at java.security.MessageDigest.update(MessageDigest.java:323)
at java.security.MessageDigest.digest(MessageDigest.java:398)
at org.apache.kylin.rest.security.KylinAuthenticationProvider.authenticate(KylinAuthenticationProvider.java:76)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:168)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

May 04, 2017 3:50:28 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [kylin] in context with path [/kylin] threw exception

________________________________
赵天烁
Kevin Zhao
zhaotianshuo@meizu.com<ma...@meizu.com>

珠海市魅族科技有限公司
MEIZU Technology Co., Ltd.
广东省珠海市科技创新海岸魅族科技楼
MEIZU Tech Bldg., Technology & Innovation Coast
Zhuhai, 519085, Guangdong, China
meizu.com

发件人: 赵天烁<ma...@meizu.com>
发送时间: 2017-05-04 15:32
收件人: user<ma...@kylin.apache.org>
主题: Encoded password cannot be null or empty when login into kylin's web UI
after update to 2.0 release,I got the error below when I try to login into kylin's web UI with testing security,ADMIN account.same thing happen when I try to create a jdbc connection,sometimes when I restart,the error just gone,then after a few minutes,it reappeared....
I try remote debug in kylin server,I dig into the userMap in InMemoryDaoImpl, found that the password of ADMIN instance is blank?!is there any reason will cause this problem?
java.lang.IllegalArgumentException: Encoded password cannot be null or empty
at org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder.matches(BCryptPasswordEncoder.java:77)
at org.springframework.security.authentication.dao.DaoAuthenticationProvider$1.isPasswordValid(DaoAuthenticationProvider.java:124)
at org.springframework.security.authentication.dao.DaoAuthenticationProvider.additionalAuthenticationChecks(DaoAuthenticationProvider.java:64)
at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:149)
at org.apache.kylin.rest.security.KylinAuthenticationProvider.authenticate(KylinAuthenticationProvider.java:85)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:168)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)


________________________________
赵天烁
Kevin Zhao
zhaotianshuo@meizu.com<ma...@meizu.com>

珠海市魅族科技有限公司
MEIZU Technology Co., Ltd.
广东省珠海市科技创新海岸魅族科技楼
MEIZU Tech Bldg., Technology & Innovation Coast
Zhuhai, 519085, Guangdong, China
meizu.com