Ошибка при загрузке apk в IBM Application Center
У меня есть Центр приложений MobileFirst с безопасностью LDAP и ACL Active. Я не могу загрузить файлы (например, apk) в консоль Application Center. Когда я отключаю ACL (ibm.appcenter.ldap.active=false), он запускается. Другая информация: WebSphere Application Server 8.5.5.4 java.version = 1.7.0_79 os = Windows Server 2008 R2 (6.1; amd64) (en_US)
Messages.log:
...
[28/05/15 18:28:17:470 CEST] 000000dd com.ibm.puremeap.services.UploadService I file uploaded
[28/05/15 18:28:17:470 CEST] 000000dd com.ibm.puremeap.services.UploadService E Exception during resource upload. FWLAC0401W: No user appears to be logged. Check the Application Center security configuration.
[28/05/15 18:28:17:470 CEST] 000000dd com.ibm.puremeap.services.UploadService E {
"id": "a41fe71a-5800-47f6-a844-0dde0fc5decd",
"message": "FWLAC0000E: A server error was detected.",
"params": [
],
"productVersion": "7.0.0.00-20150312-0731"
}
com.ibm.puremeap.resources.exceptions.AccessControlException: FWLAC0401W: No user appears to be logged. Check the Application Center security configuration.
at com.ibm.puremeap.resources.exceptions.AccessControlException.principalNotLogged(AccessControlException.java:47)
at com.ibm.puremeap.services.BaseService.getUserPrincipal(BaseService.java:134)
at com.ibm.puremeap.services.UploadService.fileUploaded(UploadService.java:147)
at com.ibm.puremeap.services.UploadService.__fileUploadedJSON__(UploadService.java:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.wink.server.internal.handlers.InvokeMethodHandler.handleRequest(InvokeMethodHandler.java:63)
at org.apache.wink.server.handlers.AbstractHandler.handleRequest(AbstractHandler.java:33)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:67)
at org.apache.wink.server.internal.handlers.CreateInvocationParametersHandler.handleRequest(CreateInvocationParametersHandler.java:54)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:67)
at org.apache.wink.server.handlers.AbstractHandler.handleRequest(AbstractHandler.java:34)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:67)
at org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleSubResourceMethod(FindResourceMethodHandler.java:183)
at org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleRequest(FindResourceMethodHandler.java:110)
at org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleSubResourceLocator(FindResourceMethodHandler.java:230)
at org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleRequest(FindResourceMethodHandler.java:115)
at org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleSubResourceLocator(FindResourceMethodHandler.java:230)
at org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleRequest(FindResourceMethodHandler.java:115)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:67)
at org.apache.wink.server.internal.handlers.FindRootResourceHandler.handleRequest(FindRootResourceHandler.java:95)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:67)
at org.apache.wink.server.internal.handlers.HeadMethodHandler.handleRequest(HeadMethodHandler.java:53)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:67)
at org.apache.wink.server.internal.handlers.OptionsMethodHandler.handleRequest(OptionsMethodHandler.java:46)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:67)
at org.apache.wink.server.internal.handlers.SearchResultHandler.handleRequest(SearchResultHandler.java:33)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:67)
at org.apache.wink.server.internal.log.ResourceInvocation.handleRequest(ResourceInvocation.java:92)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:67)
at org.apache.wink.server.internal.log.Requests.handleRequest(Requests.java:76)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)
at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)
at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:67)
at org.apache.wink.server.handlers.AbstractHandlersChain.run(AbstractHandlersChain.java:52)
at org.apache.wink.server.internal.RequestProcessor.handleRequestWithoutFaultBarrier(RequestProcessor.java:207)
at org.apache.wink.server.internal.RequestProcessor.handleRequest(RequestProcessor.java:154)
at org.apache.wink.server.internal.servlet.RestServlet.service(RestServlet.java:133)
at com.ibm.puremeap.services.RestServlet.service(RestServlet.java:56)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1275)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:766)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:472)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:135)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:89)
at com.ibm.puremeap.services.RestFilter.doFilter(RestFilter.java:60)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:192)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:86)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:975)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1097)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:4797)
at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.handleRequest(DynamicVirtualHost.java:297)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:981)
at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.run(DynamicVirtualHost.java:262)
at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink$TaskWrapper.run(HttpDispatcherLink.java:938)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
[28/05/15 18:28:52:548 CEST] 0000007a com.worklight.core.ilmt.WorklightILMTLogger I FWLSE0277I: Creating an ILMT record in the file 'C:\Program Files\ibm\common\slm\982ad181584dffbb683680e2caa3ca7f.slmtag'.
Отредактировано: Конфигурация безопасности в server.xml является LDAP и для этого приложения:
<!-- Declare the IBM Application Center Console application. -->
<application id="appcenterconsole" name="appcenterconsole" location="appcenterconsole.war" type="war">
<application-bnd>
<security-role name="appcenteradmin">
<group name="WL_Admins"/>
</security-role>
</application-bnd>
</application>
<!-- Declare the IBM Application Center Services application. -->
<application id="applicationcenter" name="applicationcenter" location="applicationcenter.war" type="war">
<application-bnd>
<security-role name="appcenteradmin">
<group name="WL_Admins"/>
</security-role>
<security-role name="appcenteruser">
<group name="WL_Users"/>
</security-role>
</application-bnd>
<classloader delegation="parentLast">
<commonLibrary>
<fileset dir="${wlp.install.dir}/lib" includes="com.ibm.ws.crypto.passwordutil_1.0.1.jar"/>
</commonLibrary>
</classloader>
</application>
<!-- Appcenter direct LDAP. -->
<jndiEntry jndiName="ibm.appcenter.ldap.active" value="true"/>
<jndiEntry jndiName="ibm.appcenter.ldap.connectionURL" value="ldap://10.28.136.123:389"/>
<jndiEntry jndiName="ibm.appcenter.ldap.user.loginName" value="sAMAccountName"/>
<jndiEntry jndiName="ibm.appcenter.ldap.security.binddn" value="DOMAIN\AdminWorklight"/>
<jndiEntry jndiName="ibm.appcenter.ldap.security.bindpwd" value="*******"/>
<jndiEntry jndiName="ibm.appcenter.ldap.user.base" value="cn=Users,dc=mahou,dc=local"/>
<jndiEntry jndiName="ibm.appcenter.ldap.group.base" value="OU=Grupos,dc=domain,dc=local"/>
<jndiEntry jndiName="ibm.appcenter.ldap.user.displayName" value="displayName"/>
<jndiEntry jndiName="ibm.appcenter.ldap.group.name" value="cn"/>
<jndiEntry jndiName="ibm.appcenter.ldap.group.uniquemember" value="member"/>
<jndiEntry jndiName="ibm.appcenter.ldap.user.groupmembership" value="memberOf"/>
<jndiEntry jndiName="ibm.appcenter.ldap.cache.expiration.seconds" value="43200"/>
<jndiEntry jndiName="ibm.appcenter.ldap.referral" value='"follow"'/>
<jndiEntry jndiName="ibm.appcenter.ldap.user.filter" value='"(&(sAMAccountName=%v)(objectClass=user))"'/>
<jndiEntry jndiName="ibm.appcenter.ldap.group.filter" value='"(&(cn=%v)(objectcategory=group))"'/>
<!-- End of Appcenter direct LDAP. -->
1 ответ
Исключение говорит, что ни один пользователь не найден в контексте безопасности, а это означает, что аутентификация неверна, а не ACL. Возможно, вы перепутали BasicRegistry с настройками LDAP ACL, что не имеет смысла.
Это Либерти, не так ли? Вы этого не говорите, но фрагмент server.xml выглядит как Liberty. Если это Liberty, проверьте элемент
Смотрите раздел Конфигурирование аутентификации LDAP (профиль Liberty) в Информационном центре IBM (Руководство пользователя).
Столкнулся с той же проблемой, и после того, как я скачал две библиотеки zlib.i686 и libstdC++. I686, он работает нормально.
ням установить zlib.i686 libstdC++.i686
С уважением, Махди.