以下是我从运行Worklight Server的WebSphere应用程序服务器自由配置文件收到的错误:
defaultOptions:onFailure Procedure invocation error. Runtime: The realm 'SingleStepAuthRealm' is not defined in authenticationConfig.xml.
这在我的本地服务器上运行良好。
我已将服务器自定义WAR文件重建并部署到服务器,然后重新启动它。
这可能是因为远程服务器的版本与本地服务器的版本不匹配吗?本地服务器版本为:5.0.5.20121129-1027
这是我的authenticationConfig.xml:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<tns:loginConfiguration xmlns:tns="http://www.worklight.com/auth/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- Licensed Materials - Property of IBM
5725-G92 (C) Copyright IBM Corp. 2006, 2012. All Rights Reserved.
US Government Users Restricted Rights - Use, duplication or
disclosure restricted by GSA ADP Schedule Contract with IBM Corp. -->
<!-- Uncomment the next element to protect the worklight console -->
<!-- <staticResources>
<resource id="worklightConsole" securityTest="WorklightConsole">
<urlPatterns>/console*</urlPatterns>
</resource>
</staticResources> -->
<!-- Sample security tests
Even if not used there will be some default webSecurityTest and mobileSecurityTest
Attention: if using <testAppAuthenticity/> test below ,<publicSigningKey> element must be added to application-descriptor.xml as well. -->
<!-- <securityTests>
<mobileSecurityTest name="mobileTests">
<testAppAuthenticity/>
<testDeviceId provisioningType="none" />
<testUser realm="myMobileLoginForm" />
</mobileSecurityTest>
<webSecurityTest name="webTests">
<testUser realm="myWebLoginForm"/>
</webSecurityTest>
<customSecurityTest name="customTests">
<test realm="wl_antiXSRFRealm" step="1"/>
<test realm="wl_authenticityRealm" step="1"/>
<test realm="wl_remoteDisableRealm" step="1"/>
<test realm="wl_anonymousUserRealm" isInternalUserID="true" step="1"/>
<test realm="wl_deviceNoProvisioningRealm" isInternalDeviceID="true" step="2"/>
</customSecurityTest>
<customSecurityTest name="WorklightConsole">
<test realm="WorklightConsole" isInternalUserID="true"/>
</customSecurityTest>
</securityTests> -->
<realms>
<realm name="SingleStepAuthRealm" loginModule="SingleStepAuthLoginModule">
<className>com.worklight.integration.auth.AdapterAuthenticator</className>
<parameter name="login-function" value="SingleStepAuthAdapter.onAuthRequired" />
<parameter name="logout-function" value="SingleStepAuthAdapter.onLogout" />
</realm>
<!-- For websphere -->
<!-- realm name="WASLTPARealm" loginModule="WASLTPAModule">
<className>com.worklight.core.auth.ext.WebSphereFormBasedAuthenticator</className>
<parameter name="login-page" value="/login.html"/>
<parameter name="error-page" value="/loginError.html"/>
</realm -->
</realms>
<loginModules>
<loginModule name="SingleStepAuthLoginModule">
<className>com.worklight.core.auth.ext.NonValidatingLoginModule</className>
</loginModule>
<!-- For websphere -->
<!-- loginModule name="WASLTPAModule">
<className>com.worklight.core.auth.ext.WebSphereLoginModule</className>
</loginModule -->
</loginModules>
</tns:loginConfiguration>
更新
感谢奥兰多的回答,我能够辨别出服务器版本:
服务器版本:5.0.5.20121130-0919
本地版本:5.0.5.20121129-1027
版本(可能是内部版本号,不确定WL版本如何工作)是不同的;但是,我怀疑次要版本不匹配不是问题。
到目前为止,我已经尝试过调试此问题:
我按照worklight文档中的步骤构建并将服务器自定义文件上传到服务器上的正确目录。
您可以在标题&#34;部署项目&#34;标题下找到这些步骤in this IC article。
我打开了WAR文件,注意到authenticationConfig.xml不在那里!所以,我想我会手动将XML推送到它驻留在本地服务器上的同一个文件夹中。就我而言,这个目录是: /opt/IBM/Worklight/server/wlp/usr/servers/worklightServer/worklight.home/app_name/conf
我认为这可能是一个权限问题,所以我在文件上设置了+ rwx。仍然没有骰子。
也许它正在寻找我本地服务器上该目录中的其他文件?我上传了所有这些并再次尝试了权限。没有运气。
我也在每个步骤之后重新启动服务器(在步骤4的情况下,重启两次,一次使用默认权限,一次使用完整烫发)。
答案 0 :(得分:3)
首先按照概述here获取(远程)服务器版本:
Worklight Server(所有版本)
如果服务器已启动并正在运行,您可以通过以下步骤找到该版本。否则继续下一部分。
如果服务器未运行,您可以通过以下步骤找到该版本。
答案 1 :(得分:1)